패키지와 접근 제한자
프로젝트 개발 시 클래스를 체계적으로 관리하기 위해 패키지를 사용합니다.
클래스와 클래스 멤버를 사용 범위에 맞게 접근 제한자를 활용합니다.
- 패키지
패키지의 물리적인 형태는 파일 시스템의 폴더입니다. 패키지는 클래스의 일부분으로, 클래스를 유일하게 만들어주는 식별자 역할을 합니다. 즉 클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식합니다.
클래스의 전체 이름은 패키지 + 클래스 를 사용해서 다음과 같이 표현합니다.
- 상위패키지.하위패키지.클래스
ex) com.mycompany.A
또한, 패키지명은 모두 소문자로 작성하는 것이 관례입니다.

다음과 같이 같은 폴더 안에 같은 이름의 파일을 만드는것은 불가능하지만,

하위 폴더에 같은 이름의 파일을 만드는것은 가능한 원리와 같습니다.
import문
사용하고자 하는 클래스 또는 인터페이스가 다른 패키지에 소속된 경우에 해당 패키지 클래스 또는 인터페이스 가져와 사용할 것임을 컴파일러에 통지하는 역할을 합니다.
접근 제한자
접근 제한자는 클래스와 인터페이스 및 이들이 가진 멤버의 접근을 제한하는데 사용합니다.
- public 접근 제한자: 외부 클래스가 자유롭게 사용할 수 있도록 합니다.
- protected 접근 제한자: 같은 패키지 또는 자식 클래스에서 사용할 수 있도록 합니다.
- private 접근 제한자: 외부에서 사용할 수 없도록 합니다.
- default 접근 제한자: 같은 패키지에 소속된 클래스에서만 사용할 수 있도록 합니다.
Getter 와 Setter 메소드
외부에서 객체 필드에 마음대로 접근할 경우 객체의 무결성이 깨질 수 있습니다.
- Setter 메소드
Setter 메소드는 외부의 값을 받아 필드의 값을 변경하는 것이 목적입니다.
매개값 검증하여 유효한 값만 필드로 저장할 수 있습니다.
void setSpeed(double speed){
if(speed < 0){
this.speed = 0;
return; // 매개값이 음수일 경우 speed 필드에 0으로 저장하고, 메소드 실행 종료.
} else {
this.speed = speed;
}
}
- Getter 메소드
Getter 메소드는 외부로 필드값을 전달하는 것이 목적입니다.
필드값을 가공해서 외부로 전달할 수도 있습니다.
double getSpeed(){
double km = speed*1.6;
return km; // 필드값인 마일을 km단위로 환산 후 외부로 리턴
}
'🧮Programming > Java' 카테고리의 다른 글
| [Java] 추상 클래스, 인터페이스 (1) | 2024.02.06 |
|---|---|
| [Java] 상속, 다형성 (0) | 2024.02.06 |
| [Java] 객체와 클래스 (0) | 2024.02.06 |
| [Java] 배열(Array) (0) | 2024.02.05 |
| [Java] 참조 타입 (1) | 2024.02.04 |