ch7-3 포함(composite) 관계 1. 클래스의 멤버로 참조변수를 선언하는 것 클래스의 관계에는 1.상속 2.포함, 2가지가 있다. 포함은 클래스의 멤버로 참조 변수를 선언하는 것이다. Circle class는 Point class를 상속받지 않고 포함한다. 왼쪽, 오른쪽 모두 저장공간은 3개이다. 하지만 왼쪽 x에 접근하려면 c.x이고, 오른쪽 x에 접근하려면 c.c.x를 써야 한다. ①의 x, y, r -> c.x, c.y, c.r ②의 r은 c.r이고 x, y -> c.c.x, c.c.y 2. 작은 단위의 클래스를 만들고, 이들을 조합해서 클래스를 만든다. class Car는 Engine, Door를 포함했다. 자동차를 만들 때, 멤버들을 다쓰기보다는 Engine과 Door class를 만들..
ch7-1 상속(Inheritance) Parent라는 class가 있다. Child class를 만들 때 Parent를 부모로 한다. Parent와 Child는 상속관계에 있다. 자손은 조상의 모든 멤버를 상속받기 때문에 부모의 멤버만 받는 것이 아니라 부모의 부모 것도 받는다. 단 생성자, 초기화 블록은 제외한다. 코드를 보면 Parent 멤버 1개, 자식의 멤버는 없고 상속 받은 멤버 1개가 있다. class Child extends Parent { }에 맴버가 하나도 없는 거 같지만 부모를 모두 물려받아 int age가 들어있다. 자신의 멤버는 없고 상속받는 멤버가 있다. Parent 멤버 1개, Child 멤버 1개 이므로 두 class 멤버 개수가 같아 조건을 만족한다. 자손 클래스의 새로운 ..
ch7-32 추상 메서드(abstract method) 추상메서드는 구현부({})가 없는 메서드 이기 때문에, play 메서드에 오류가 발생한다. play 메서드에 제어자 abstract를 작성한다. play 메서드에 abstract를 작성해도 오류가 발생한다. 추상 클래스는 추상메서드를 갖고 있는 클래스로 추상메서드와 같이 제어자 abstract를 작성해야한다. 오류가 사라졌다. void stop(); 메서드를 추가하면 오류가 발생한다. 구현부를 만들어주면 오류가 사라지지만, 앞에 제어자 abstract를 적어주면 된다. ✅ cannot instantiate the type Player 오류에서 instantiate의 뜻은 인스턴스화 할 수 없다는 뜻이고, 즉 Player type의 인스턴스를 생성하지..