9. 패키지
패키지(package)란?
- 자바에서 클래스를 체계적으로 관리하기 위해 사용하는 것
- 물리적인 형태는 파일 시스템
- 폴더 기능만 하는 것이 아니라 클래스의 일부분
- 클래스를 유일하게 만들어주는 식별자 역할
- 패키지가 다르면 다른 클래스
패키지의 선언
- 숫자로 시작해서는 안 되고, _, $를 제외한 특수 문자를 사용해서는 안 된다.
- java로 시작하는 패키지는 자바 표준 API에서만 사용하므로 사용해서는 안된다.
- 모두 소문자로 작성하는 것이 관례이다.
번외)
- 회사들 간에 패키지가 서로 중복되지 않도록 회사의 도메인 이름으로 패키지를 만든다.
10. 어노테이션
- Annotation은 메타데이터(metadata)라고 볼 수 있다.
- 메타데이터?
- 애플리케이션이 처리해야 할 데이터가 아니라, 컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일하고 처리할 것인지 알려주는 정보.
@Annotation
- 메타데이터?
Annotation의 용도
- 컴파일러에게 코드 문법 에러를 체크하도록 정보 제공
- 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공
- 실행 시(런타임 시) 특정 기능을 실행하도록 정보 제공
- @Override : 메소드가 오버라이드 된 것임을 컴파일러에게 알려주어 컴파일러가 오버라이드 검사를 하도록 해줌.
- 빌드 시 자동으로 XML 설정 파일을 생성하거나 배포를 위해 JAR 압축 파일을 생성하는데에도 사용된다.
- 실행 시 클래스의 역할을 정의하기도 한다.
어노테이션 타입 정의와 적용
- 어노테이션 타입을 정의하는 방법은 인터페이스 정의와 유사.
public @interface AnnotationName{
}
@AnnotationName
- 어노테이션은 엘리먼트(element)를 멤버로 가질 수 있다.
public @interface AnnotationName{
String elementName1();
int elementName2() default 5;
}
- 이렇게 정의한 어노테이션을 사용하는 방법
@AnnotationName(elementName1="값", elementName2=3);
또는
@AnnotationName(elementName1="값1");
- 어노테이션이 적용될 대상 지정 : @Target
@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD})
public @interface AnnotationName{
}
- 클래스, 필드, 메소드만 어노테이션을 적용할 수 있다.
@AnnotationName
public class ClassName{
@AnnotationName
private String fieldName;
//@AnnotationName (x) -----> @Target에 CONSTRUCT가 없어 생성자에는 적용 못함
public ClassName(){}
@AnnotationName
public void methodName(){}
}
'CS > 이것이 자바다' 카테고리의 다른 글
[CS] 이것이 자바다 - 클래스(1) - 객체와 클래스 (0) | 2023.09.21 |
---|---|
[CS] 이것이 자바다 - 클래스(2) (0) | 2023.09.21 |
[CS] 이것이 자바다 - 참조 타입 (0) | 2023.09.16 |
[CS] 이것이 자바다 - 자바, 변수와 타입 (1) | 2023.08.23 |