본문 바로가기

Programming/JAVA

(139)
상속(1) - 상속의 기본 개념 상속(Inheritance)은 객체 지향 프로그램 언어에서 부모(상위) 클래스를 상속한 자식(하위, 파생) 클래스를 생성하여 부모 클래스의 필드나 메서드를 그대로 사용하는 성질을 의미합니다. 기존에 개발되어 있는 클래스를 재사용함으로써 코드의 중복을 줄여줄 수 있고, 유지보수 리소스를 최소화할 수 있게 되죠. 부모 클래스를 수정하게 되면 자동으로 자식 클래스에서 상속받아 사용하고 있는 메서드 등도 자동으로 수정이 되는 효과를 누리게 되니까요. 물론 접근 제한자에 따라서 모든 요소들이 무조건 상속되지는 않습니다. 기본적으로 private속성을 갖는 필드와 메서드는 해당 클래스에서만 사용하는 것이기 때문에 자식 클래스에 상속이 되지 않습니다. 또한, default속성일 경우에는 자식 클래스라고 하더라도 패키..
어노테이션(Annotation) - 런타임 시 어노테이션 정보 사용하기 어노테이션의 경우 원래 아무런 동작을 하지 않는 단순한 표식 혹은 정보 값에 지나지 않을 수 있지만, 앞서 살펴본 리플렉션(Reflextion)을 통해서 정보를 획득하고, 일정한 처리를 진행할 수 있도록 지원하고 있습니다. 일단 클래스 / 필드 / 생성자 / 메서드에 적용된 어노테이션 정보를 획득해야 합니다. 클래스에 적용된 어노테이션 정보 획득을 위해서는 java.lang.Class를 이용하면 되는데 필드 / 생성자 / 메서드에 적용된 어노테이션 정보 획득을 위해서는 Class의 메서드를 통해서 java.lang.reflect 패키지의 Field, Constructor, Method 타입의 배열을 얻어야 합니다. Class (Java Platform SE 8 ) Determines if the spec..
어노테이션(Annotation) - 어노테이션 유지(Retention) 정책 어노테이션을 정의하는 경우 사용하는 정책과 관련해서, 적용 대상 정책 말고도 어느 '범위'까지 사용해야 할 지에 대해서도 정의가 가능합니다. 이 어노테이션 리텐션 정책은 java.lang.annotation.RetentionPolicy에 enum(열거 상수)로 정의되어 있습니다. RetentionPolicy (Java Platform SE 7 ) docs.oracle.com 우선 이 리텐션 정책에 대한 정의는 소스 상에서만 유지 - 컴파일 클래스까지 - 런타임 시에도 유지 할지를 지정하게 됩니다. 이 세 가지 정책에 대한 이해가 필요한데, 이를 설명하기 전에 우선 리플렉션(Reflection)의 개념을 먼저 이해하고 있어야 합니다. 리플렉션은 런타임 시점에 해당 클래스의 메타 정보를 얻는 기능을 의미합니..