네로개발일기

개발자 네로의 개발 일기, 자바를 좋아합니다 !

반응형

객체 지향의 4대 특성

1. 캡슐화: 정보 은닉

2. 상속: 재사용

3. 추상화: 모델링

4. 다형성: 사용편의

 

추상화: 모델링

객체 지향의 추상화는 곧 모델링이다.

추상화란, 구체적인 것을 분해해서 관찰자가 관심있는 특성만 가지고 재조합하는 것이다.

 

  • 객체: 세상에 존재하는 유일무이한 사물
  • 클래스: 같은 속성과 기능을 가진 객체를 총칭하는 개념

개발자가 필요한 객체는 Context(애플리케이션 경계)에 따라 달라질 수 있다.

=> 추상화란, 구체적인 것을 분해해서 관심 영역(애플리케이션)에 있는 특성만 가지고 재조합하는 것을 말한다. (모델링)

자바는 이러한 객체 지향의 추상화를 class 키워드를 통해 지원하고 있다.

 

상속: 재사용 + 확장 (extends)

상속은 계층적인 개념이 아닌 재사용과 확장으로 이해하는 것이 맞다.

상속은 분류도다.

상위 클래스로 갈수록 추상화/일반화가 되고, 하위 클래스로 갈수록 구체화/특수화가 진행된다.

 

리스코프 치환 법칙

  • 하위 클래스는 상위 클래스이다.
  • is a kind of 

상속과 인터페이스

인터페이스는 be able to 와 같이 '무엇을 할 수 있는' 형태로 만드는 것이 좋다.

 

자바 API 예시

  • Comparable 인터페이스: 비교할 수 있는
  • Runnable 인터페이스: 실행할 수 있는

 

인터페이스는 클래스가 무엇을 할 수 있다는 기능을 구현하도록 강제하게 된다.

 

  • 리스코프 치환 원칙에 의해 상위 클래스가 풍성할수록 좋다.
  • 인터페이스 분할 원칙에 의해 인터페이스 메서드는 적을수록 좋다.

 

다형성: 사용편의성

객체지향에서 다형성은 오버라이딩오버로딩이다.

 

  • 오버라이딩: 같은 메서드 이름, 같은 인자 목록으로 상위 클래스의 메서드를 재정의
  • 오버로딩: 같은 메서드 이름, 다른 인자 목록으로 다수의 메서드를 중복 정의

 

상위 클래스 타입의 객체 참조 변수를 사용하더라도 하위 클래스에서 오버라이딩한 메서드가 호출된다.

 

캡슐화: 정보 은닉

접근 제어자: private, protected, public

  • public: 모두가 접근 가능
  • protected: 상속/ 같은 패키지 내의 클래스에서 접근 가능
  • [default]: 같은 패키지 내의 클래스에서 접근 가능
  • private: 본인만 접근 가능
728x90
반응형
blog image

Written by ner.o

개발자 네로의 개발 일기, 자바를 좋아합니다 !