http://www.yes24.com/Product/Goods/17350624
(스프링 입문을 위한 자바 객체 지향의 원리와 이해, 2015)을 학습하고 개인 학습용으로 정리한 내용입니다.
객체지향 4대 특성
- 캡슐화(Encapsulation)
- 상속(Inheritance -> extends)
- 추상화(Abstraction)
- 다형성(Polymorphism)
추상화
추상화: 구체적인 것을 분해해서 관심 영역에 있는 특성만을 가지고 재조합하는 것 = 모델링
객체: 세상에 존재하는 유일무이한 사물
클래스: 같은 속성과 기능을 가진 객체를 총칭하는 개념
클래스의 static 변수는 스태틱 영역에 클래스와 같이 저장된다.
상속
상위 클래스의 특성을 확장해 나가는 것이다.
상속은 다음과 관계를 만족한다.
하위 클래스 is a kind of 상위클래스
인터페이스의 경우, be able to(= 어떤 것을 할 수 있는) 형태로 나타내는 것이 좋다.
다형성
public class Animal{
public void print1(){}
public void print2(){}
}
public class Bird extends Animal{
public void print2(){}
public void print3(){}
}
Animal a = new Animal();
Animal b = new Bird();
Bird c = new Bird();
위와 같은 경우
a는 힙 영역에 Animal 객체의 인스턴스를 가지고 있기 때문에, print1과 Animal의 print2를 호출 가능하다
b는 힙 영역에 Animal + Bird 객체 중 Animal의 인스턴스를 가지고 있기 때문에, print1과 오버라이딩된 Bird의 print2를 호출 가능하다.
c는 힙 영역에 Animal + Bird 객체 중 Bird의 인스턴스를 가지고 있기 때문에, print1, 오버라이딩된 Bird의 print2, print3를 호출 가능하다.
캡슐화
public: 모두 접근 가능
protected: 상속이나 같은 패키지 내 접근 가능
default: 같은 패키지 내 접근 가능
private: 본인만 가능
'책 > 기술 관련' 카테고리의 다른 글
자바 객체지향의 원리와 이해 07. 스프링 삼각형과 설정 정보 (0) | 2022.02.19 |
---|---|
자바 객체지향의 원리와 이해 06. 디자인 패턴 (0) | 2022.02.10 |
자바 객체지향의 원리와 이해 05. SOLID (0) | 2022.02.10 |
자바 객체지향의 원리와 이해 02. 자바와 절차적/구조적 프로그래밍 (0) | 2022.02.07 |