<객체지향(Object-Oriented) 프로그래밍 키워드>
클래스, 객체, 메서드(메시지), 추상화, 캡슐화, 상속, 다형성
객체지향이란?
실제 세계를 가상 세계로 구현하기 위해 실제 사물을 추상화해 객체를 만들고, 그 객체들 간의 유기적인 상호작용을
통해 로직을 구성하는 프로그래밍 방법.
추상화란?
실제 사물의 속성과 기능을 분석한 다음, 공통적인 속성(변수)과 기능(메서드)을 추출해 정의하는 것.
ex) 벤츠, 아우디, BMW --> 자동차 / 장미, 해바라기, 히아신스 --> 꽃
클래스란?
사물을 추상화하여 속성과 기능을 정의해 놓은 것으로, 간단히 객체를 정의한 틀 또는 설계도라 할 수 있다.
ex) 자동차 클래스 --> 속성: 모델명, 색상, 제조사, 최고속도, 소유자 등 / 기능: 시동, 주행, 브레이크 등
객체란?
클래스의 인스턴스. 클래스의 속성과 기능을 가지고 있다.
ex) 자동차 클래스 --> 벤츠, 아우디, BMW : 객체 별로 각기 다른 특징을 가지고 있다.
중간 정리
객체들과 그 객체들 간의 상호작용(메시지를 주고 받음)을 통해 로직을 구성하는 프로그래밍 방법.
cf) 절차지향 프로그래밍
객체지향의 특징 4가지
1. 추상화
-실제 사물의 속성과 기능을 분석한 다음, 공통적인 속성(변수)과 기능(메서드)을 추출해 정의하는 것.
2. 캡슐화
-객체가 내부적으로 기능을 어떻게 구현하는지 감추는 것으로 낮은 결합도를 유지할 수 있도록 설계하는 것.
-캡슐화를 통해서 한곳의 변화가 다른 곳에 미치는 영향을 최소화한다.
-변수를 private으로 하고 getter와 setter 등을 사용하는 이유도 캡슐화에서 찾을 수 있다.
3. 상속
-기존의 작성된 클래스를 재사용하여 새로운 클래스를 작성하는 것.
-상속을 사용하여 클래스 작성시 적은 양의 클래스로 새로운 클래스를 작성할 수 있고, 코드를 공통적으로
관리할 수 있기 때문에 코드의 추가 및 변경이 용이하다.
-상속해주는 클래스를 부모, 조상, 상위 클래스, 상속 받는 클래스를 자식, 자손, 하위 클래스 등이라 부른다.
4. 다형성
-서로 다른 클래스의 객체가 같은 메시지를 받았을 때, 각자의 방식으로 동작하는 능력
-동일한 명령의 해석을 연결된 객체에 의존
-객체지향의 핵심
객체지향의 장점과 단점
-장점: 코드의 재활용성이 높고, 확장과 수정에 유연하다.
-단점: 설계에 많은 시간이 소요되며, 절차지향에 비해 다소 처리속도가 느리다.
+)
객체지향의 설계 원칙 : SOLID
'자소서 및 면접' 카테고리의 다른 글
SSAFY 6기 인터뷰 후기 (0) | 2021.06.30 |
---|