패키지란
@ 클래스를 기능별로 묶어서 그룹 이름을 붙여 놓은 것을 말합니다.
- 파일들을 관리하기 위해 사용하는 폴더(디렉토리)와 비슷한 개념입니다.
- 패키지의 물리적인 형태는 파일 시스템의 폴더입니다.
@ 패키지는 클래스 이름의 일부입니다.
- 전체 클래스 이름 = 상위패키지.하위패키지.클래스
- 클래스명이 같아도 패키지명이 다르면 다른 클래스로 취급합니다.
@클래스를 선언할 때 패키지가 결정됩니다.
- 클래스를 선언할 때 포함될 패키지를 선언해야 합니다.
- 클래스 파일(~.class) 선언된 패키지와 동일한 폴더안에서만 동작합니다.
- 클래스 파일은 다른 폴더안에 넣으면 동작하지 않습니다.
패키지 선언
@ 패키지 선언은 클래스 선언 첫 줄에 해야합니다.
@ 상위 패키지와 하위 패키지는 도트(.)로 구분합니다.
@ 패키지 이름 규칙
- 전부 알파벳 소문자로 작성하는 것이 관례적입니다.
- 숫자로 시작해서은 안됩니다.
- _ , $ 를 제외한 특수문자를 사용해서는 안됩니다.
- 회사 도메인의 역순으로 패키지 이름을 보통 만듭니다. ex) org.apache.projectname
접근 제한자 (Access Modifier)
@ 클래스 및 클래스 구성 멤버에 대한 접근을 제한하는 역할을 합니다.
- 다른 패키지에서 클래스를 사용하지 못하도록 막는다.(클래스 제한)
- 클래스로부터 객체를 생성하지 못하도록 막는다.(생성자 제한)
- 특정 필드와 메소드를 숨김 처리한다.(필드와 메소드 제한)
§ 접근 제한자의 종류
접근 제한 |
적용 대상 |
접근할 수 없는 클래스 |
public |
클래스, 필드, 생성자, 메소드 |
없음 |
protected |
필드, 생성자, 메소드 |
자식 클래스가 아닌 다른 패키지에 소속된 클래스 |
default |
클래스,필드, 생성자, 메소드 |
다른 패키지에 소속된 클래스 |
private |
필드, 생성자, 메소드 |
모든 외부 클래스 |
Getter 와 Setter
@ 클래스를 선언할 대 필드는 일반적으로 private 접근 제한을 합니다
- 읽기 전용 필드가 있을 수 있다(Getter 의 필요성)
- 외부에서 엉뚱한 값으로 변경할 수 없도록 합니다.(Setter 의 필요성)
필드를 일반적으로 private 접근 제한을 하면 외부에서 접근 제한이 안되기 때문에 외부에서 절대 값을 읽을 수가 없기 때문에 읽기만 가능하도록 구성할 수 있으며 (Getter) 외부에서 올바른 값만 저장할 수 있도록 Setter 를 사용할 수 있습니다.
Getter
@ private 필드의 값을 리턴하는 역할을 합니다.
- 필요할 경우 필드의 값을 가공해서 리턴합니다.
@ getFieldName() 또는 isFieldName() 메소드를 일컫습니다.
- 필드 타입이 boolean 일 경우 isFieldName() 이라고 일반적으로 작성합니다.
Setter
@ 외부에서 주어진 값을 필드값으로 수정합니다.
- 필요할 경우 외부의 값을 유효성을 검사합니다.
@ setFiildName(타입 변수) 메소드를 말합니다.
- 매개 변수 타입을 필드의 타입과 동일합니다.
'Dev Environment' 카테고리의 다른 글
디바이스별 픽셀 밀도 이해하기 (0) | 2019.01.22 |
---|---|
Java/JSP 기본 개발 환경 구축 (0) | 2015.07.27 |
[Mac용] webStorm 단축키 정리 (0) | 2015.02.13 |