인터페이스는 상수와 추상 메소드만 가지고 있다!
중간 역할을 하는 인터페이스를 만들어라
같은 성질을 갖고 있는 것끼리 최대한 잘게잘게 쪼개라
Inner class는 4가지가 있다
1. member inner class : 외부의 멤버를 마음대로 접근 가능
2. static inner class : 잘 안씀
3. local inner class : 메소드 안에다가 클래스를 만들 수 있다(제한)
4. anonymous class : 주로 1회용으로 쓸 때
클래스 안에 클래스를 선언하는 방식
has-a 방식이 아니라 nested loop를 짜듯이 짠다
inner class의 장점? 목적?
Outer class의 멤버를 자유롭게 쓰기 위해서 만듦
inner class는 항상 outer 클래스를 통해서 만든다
한 파트를 처리할 때 많이 쓴다(inner class)
이너 클래스는 클래스지만 메소드처럼 쓰는 것
instanceof operator
참조변수가 참조하고 있는 인스턴스의 실제 타입을 알아보기 위해 instanceof 연산자를 사용합니다. 주로 조건문에 사용되며, instanceof의 왼쪽에는 참조변수를 오른쪽에는 타입(클래스명)이 피연산자로 위치합니다. 그리고 연산의 결과로 boolean값인 true, false 중의 하나를 반환 합니다.
instanceof를 이용한 연산결과로 true를 얻었다는 것은 참조변수가 검사한 타입으로 형변환이 가능하다는 것을 뜻합니다.
[참고] 값이 null인 참조변수에 대해 instanceof 연산을 수행하면 flase를 결과로 얻는다.
<정리>
1) 인스턴스 멤버보다 참조변수가 사용할 수 있는 멤버수가 더 많으면 사용할 수 없다.
2) 인스턴스 멤버보다 참조변수가 사용할 수 있는 멤버수가 적으면 사용할 수 있다. (같아도 O)
그러므로 조상의 참조변수로는 모든 자손의 인스턴스를 참조 할 수 있다.
조상 참조변수 instanceof 자손 인스턴스 (무조건 O)
Object o instanceof 자손 인스턴스 (무조건 O)
2)번 예제처럼 빈 자손 Class를 만든다면
자손 참조변수 instanceof 조상 인스턴스 (가능함 O)
출처: http://arabiannight.tistory.com/entry/301 [아라비안나이트]