05. 기술면접 - 자바 - OOP 의 4가지 특징과 OOP 설계 원칙

05. 기술면접 - 자바 - OOP 의 4가지 특징과 OOP 설계 원칙

공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다

OOP 란

- OOP는 현실 세계의 사물들을 객체로 보고, 그 객체들을 조립하여 프로그래밍 하는 기법이다

- 절차지향적 프로그래밍에서 있었던 코드의 재사용성과 중복제거가 가장 큰 목적으로 만들어진 기법

1. 추상화

- 목적과 관련이 없는 부분을 제외해서 필요한 부분을 포착하는 기법

- 객체의 공통된 속성들 중 필요한 부분을 포착해서 클래스로 정의하는 설계 기법

- 구체적인 사물들의 공통적인 특징을 파악해서 이를 하나의 개념(집합)으로 다루는 것

2. 캡슐화

- 외부에 노출할 필요가 없는 정보들은 은닉 (정보은닉)

- 정보 은닉(information hiding): 필요가 없는 정보는 외부에서 접근하지 못하도록 제한하는 것

- 높은 응집도, 낮은 결합도를 유지하여 유연함과 유지보수성 증가

- ex) 마트에서 구매자는 상품명과 가격만 알면될 뿐, 뒤에 원재료와 재질각 종 다양한 정보는 몰라도 된다

필요한 정보만 보여주게끔 설계해야 된다는 의미

3. 상속화

- 부모 클래스가 자손 클래스에게 속성을 물려주는 것

- 코드의 재사용

- 여러 개체들이 가진 공통된 특성을 부각시켜 하나의 개념이나 법칙으로 성립시키는 과정

4. 다형화

- 같은 형태이지만 다른 기능을 하는 것

- 서로 다른 클래스의 객체가 같은 메시지를 받았을 때 각자의 방식으로 동작하는 능력

- 오버라이딩(Overriding) 은 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용

- 오버로딩(Overloading) 은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술

https://private.tistory.com/25

객체지향(OOP)의 단점

1. 객체지향은 객체와 클래스를 사용하여 각 모듈의 높은 독립성을 권장합니다.

그래서 여러 클래스를 상속해서 사용해 중복코드를 최소화하고, 유지보수확장성을 높입니다. -> 실행 속도가 느리다.

2. 객체가 많으면 프로그램 용량이 커질 수도 있다.

3. 설계에 많은 시간이 투자된다.

4. 설계 실패 시, 다시 처음부터 시작해야 한다.

참고

https://trello.com/c/MujQDOvD/36-oop%EB%9E%80

https://mangkyu.tistory.com/88

https://mangkyu.tistory.com/88

from http://theheydaze.tistory.com/603 by ccl(A) rewrite - 2021-10-20 15:26:16

댓글