그냥
Published 2023. 3. 18. 01:12
5. 상속 (2) JAVA 공부/객체지향 공부

protected 접근 제어자

외부에서 접근할 수 없다.

클래스 내부, 같은 패키지에 속한 클래스, 자식 클래스만 접근이 가능하다.

컴포지션과 상속

둘 다 재사용성을 위한 방법이다.

상속으로 해결할 수 있는 문제들 컴포지션으로도 가능하다.

포함 (compostion) : 컴포지션

한 클래스의 멤버 변수로 다른 클래스를 선언하는 것이다.

작은 단위의 클래스를 먼저 만들고, 이 들을 조합해서 하나의 클래스로 만든다.

class battery {
    int capacity;
}

class mouse {
    battery newb = new battery();
    public void Click() {}
}

has-a 관계와 is-a 관계

컴포지션과 상속을 어디에다가 적용해야 할 지 모르겠으면

has-a 관계와 is-a 관계를 생각하면 편하다.

 

컴포지션(포함)은 has-a 관계이다.

~~는 ~~를 포함하고 있다.

~~는 ~~를 가지고 있다.

ex) 마우스는 배터리를 가지고 있다.

 

상속은 is-a 관계이다.

~~는 ~~이다

ex) 고양이는 동물이다.

 

메모리에서 상속과 컴포지션은?

상속은 객체 생성 시 메모리가 하나의 덩어리

Box box = new Box (10, 20, 30);

한 덩어리로 생성한다.

컴포지션은 객체 생성 시 메모리가 여러 덩어리

Rectangle rectangle = new Rectangle(10, 20);

Box box = new Box(rectangle, 30);

 

 

new를 통해 인스턴스를 계속 만들 경우 실행 성능에 영향을 미친다.

'JAVA 공부 > 객체지향 공부' 카테고리의 다른 글

7. 다형성  (0) 2023.03.26
6. 상속(3)  (0) 2023.03.18
4. 상속 (1)  (0) 2023.03.18
4. getter와 setter  (0) 2023.03.13
3. 생성자  (0) 2023.03.13
profile

그냥

@Ticketpaper

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그