객체의 관계성과 주석(Annotation)
자바 클래스 및 객체 관계성
-
상속 관계
- is a 관계
- 논리적으로 일반화가 가능할 경우 상속 가능
-
포함 관계
- has a 관계
- 객체를 소유하는 개념
- 단일 상속의 한계를 극복
- 2개 이상의 클래스에서 특징을 가져오기 위해서는 하나의 클래스는 상속을 받고, 나머지 클래스는 멤버 변수로 사용(객체를 생성하여 활용)할 수 있음
Java
public class SpiderMan extends Person { // 상속 관계
Spider spider; // 포함 관계
boolean isSpider;
void fireWeb(){
if (isSpider) spider.fireWeb(); // 객체를 소유하여 활용함
else System.out.println("Person은 거미줄 발사 불가능");
}
}
-
사용 관계
- use a 관계
- 일시적으로 의존해야하는 관계
- 사용해야할 객체를 인자로 받거나 지역변수로 생성함
Java
public class SpiderMan { // 상속 관계
void jump(Moving moving) { // 사용 관계 - 객체를 인자로 사용
...
}
Save saveWorld() {
Save save = new Save(); // 사용 관계 - 객체를 지역변수로 사용
...
return save;
}
}
주석(Annotation)
- 컴파일러, JVM, 프레임워크가 볼 수 있는 주석
- 메타 데이터가 삽입된 주석
@Deprecated
컴파일러에게 해당 메서드가 오래되어 사용을 권장하지 않는다고 알림
@Override
- 컴파일러에게 해당 메서드가 오버라이드한 메서드임을 알림
- 반드시 부모 클래스에 선언된 메서드이어야 함
@SuppressWarnings
컴파일러에게 사소한 warning의 경우 신경쓰지 말라고 알림