13~16챕터 배열 + 클래스와 상속
배열 선언
int[] arr1 = new int[] {1,2,3};
String[][] arr2 = new String[4][5];
for each문 - python의 in과 유사함.
for(int i : arr){ ~ }
3.protected는 상속받은 곳에서도 접근가능.
변수를 private로 함수를 protected로 해서 사용하는 예시
4.CBD(Component Based Development)
패키지 혹은 그 이상의 단위로 재사용하는 것을 말함.
클래스 단위는 너무 작기 때문에 상속 개념이 재활용에 큰 의미가 있지 않음.
5.상속 관계
IS-A : Notebook is a Computer.
Notebook이 Computer를 상속 받는 관계 적절.
HAS-A : Police has a Gun.
HAS-A관계는 상속보다는 변수로 가지는 것이 좋다.
JAVA에선 다중 상속을 못하기 때문에, 상속으로는 여러 무기를 소유할 경우를 표현할 수 없다.
또한 해당 무기를 안가지고 있을 경우도 표현해줘야 하기 때문.
7.CCC extends BBB, BBB extends AAA 관계 일때
CCC ref1 = .. ;
BBB ref2 = ref1; //가능
AAA ref3 = ref1; //가능
큰 곳에 작은 값 넣는 것 가능!!
8.상속관계에서 어떤 함수가 불리는가?
오버라이딩에선 마지막꺼
ex) 7번의 경우 AAA ref1 = new CCC(); 이면
CCC의 메소드 가져와짐!!
단, 파라미터 다른 경우는 오버로딩이기 때문에 조심! 오버로딩, 오버라이딩 구분 잘하기!
9.instanceof 연산자
== 형변환 가능하다면
ex) if(computer1 instanceof notebook1){computer1.openNoteBook();}