객체의 관계성과 주석(Annotation)

자바 클래스 및 객체 관계성

  1. 상속 관계

    • is a 관계
    • 논리적으로 일반화가 가능할 경우 상속 가능
  2. 포함 관계

    • has a 관계
    • 객체를 소유하는 개념
    • 단일 상속의 한계를 극복
    • 2개 이상의 클래스에서 특징을 가져오기 위해서는 하나의 클래스는 상속을 받고, 나머지 클래스는 멤버 변수로 사용(객체를 생성하여 활용)할 수 있음
Java
public class SpiderMan extends Person {   // 상속 관계
    Spider spider;  // 포함 관계
    boolean isSpider;

    void fireWeb(){
        if (isSpider) spider.fireWeb();   // 객체를 소유하여 활용함
        else System.out.println("Person은 거미줄 발사 불가능");
    }
}
  1. 사용 관계

    • use a 관계
    • 일시적으로 의존해야하는 관계
    • 사용해야할 객체를 인자로 받거나 지역변수로 생성함
Java
public class SpiderMan {   // 상속 관계

    void jump(Moving moving) {   // 사용 관계 - 객체를 인자로 사용
        ...
    }

    Save saveWorld() {
        Save save = new Save();  // 사용 관계 - 객체를 지역변수로 사용
        ...
        return save;
    }
}

주석(Annotation)

  • 컴파일러, JVM, 프레임워크가 볼 수 있는 주석
  • 메타 데이터가 삽입된 주석

@Deprecated

컴파일러에게 해당 메서드가 오래되어 사용을 권장하지 않는다고 알림

@Override

  • 컴파일러에게 해당 메서드가 오버라이드한 메서드임을 알림
  • 반드시 부모 클래스에 선언된 메서드이어야 함

@SuppressWarnings

컴파일러에게 사소한 warning의 경우 신경쓰지 말라고 알림