티스토리 뷰

객체지향 프로그래밍


객체지향 프로그래밍이란?

  • 프로그램을 설계하는 개념이자 방법론
  • 실세계에 존재하는 사물들을 객체라는 기본 단위로 나눔
  • 객체는 상태(멤버변수)와 행위(메소드)를 가지고 이 객체들은 서로 상호작용함

 

객체지향 프로그래밍의 장점

  1. 코드 재사용이 용이
  2. 유지보수가 쉬움
  3. 대형 프로젝트에 적합

 

객체지향 프로그래밍의 단점

  1. 처리속도가 절차지향에 비해 상대적으로 느림
  2. 객체가 많아지면 용량이 커질 수 있음
  3. 설계 시 많은 시간과 노력이 필요함

 

객체지향 프로그래밍의 5가지 키워드


1. 클래스, 인스턴스(객체)

  • 클래스는 객체를 생성하기 위한 설계도로 속성(attribute)과 행위(behavior)를 변수와 메서드로 정의한 것이다.
  • 인스턴스(객체)는 클래스에서 정의한 것을 바탕으로 실제 메모리상에 할당된 것으로 실제 프로그램에서 사용되는 데이터이다.

2. 캡슐화

  • 외부에서 접근할 필요가 없는 멤버들을 private으로 지정하여 외부에 노출시키지 않는 것을 가리켜 캡슐화 라고 한다. (외부로부터 데이터를 보호할 수 있다.)

3. 상속

  • 부모클래스의 변수와 메서드를 그대로 이어받에 자식클래스에서도 사용하거나 일부분을 변경할 수 있도록 확장시키는 것을 상속이라고 한다.
  • 자식클래스의 멤버는 부모클래스의 멤버보다 항상 같거나 많아야 한다.
  • 자바의 경우 다중상속은 불가하다. (C++은 가능)

4. 추상화

  • 추상화는 서로 연관있는 클래스간의 공통점을 찾아내서 공통의 조상을 만드는 작업을 말한다.
  • 추상클래스란 추상메서드를 하나 이상 포함한 클래스를 말한다. (추상 메서드는 선언부에 abstract 제어자를 붙여서 서 선언한다)

5. 다형성

  • 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 하는 것 (두 타입이 서로 상속관계일 경우)
  • 참조변수가 사용할 수 있는 멤버의 개수는 인스턴스 멤버 개수보다 같거나 적어야 한다. (즉, 참조변수의 타입이 참조하고 있는 인스턴스에서 사용할 수 있는 멤버의 개수를 결정한다.)

 

참고자료


https://jeong-pro.tistory.com/95?category=793347

'면접대비' 카테고리의 다른 글

싱클톤 패턴에 대해  (0) 2019.09.09
REST API에 대해  (0) 2019.09.06
웹 서버와 웹 어플리케이션 서버(WAS)에 대해  (0) 2019.09.04
쿠키와 세션에 대해  (0) 2019.09.03
HTTP에 대해  (0) 2019.08.27