java
2022.09.06 java 캡슐화 패키지 접근 제어자 getter/setter
Han_5ung
2022. 9. 9. 15:22
🐧캡슐화
👉 객체 안의 속성과 기능을 하나로 묶고 구현 내용 일부를 감추어 은닉한다.
- 외부에서 내부의 정보에 직접 접근하거나 변경할 수 없음
- 객체가 제공하는 필드와 메소드를 통해서만 접근 가능
- 정보은닉
🐧패키지
👉 클래스와 인터페이스의 집합
- 물리적으로 하나의 디렉터리
- 패키지에 속한 클래스, 인터페이스는 모두 해당 패키지 안에 속해있음
- 클래스 충돌문제 해결
- 모든 클래스는 하나 이상의 패키지에 포함
패키지 선언
package 패키지이름;
- .(포인트)를 사용하여 하위 패키지를 생성할 수 있음
- 패키지를 따로 생성하지 않을 경우 이름 없는 패키지에 포함이 됨
import문
👉 다른 패키지 속한 클래스를 사용하기 위해 사용
improt문 선언
import 패키지이름.클래스이름; //해당 패키지의 특정 클래스만 사용
import 패키지이름.*; //패키지내의 모든 클래스
🐧접근 제어자
👉 정보 은닉을 위해 외부에서 직접적은 접근을 컨트롤
- public
- 접근 제한 없음
- 다른 패키지에서도 접근이 가능
- protected
- 다른 패키지의 자식 클래스까지 허용
- 같은 클래스, 패키지 내에서 사용 가능
- 다른 패키지의 일반 클래스에는 접근 제한
- default
- 같은 클래스, 패키지 내에서만 사용 가능
- private
- 같은 클래스에서만 사용 가능
접근 제어자 | 같은 클래스의 멤버 | 같은 패키지의 멤버 | 자식 클래스의 멤버 | 그 외 |
public | O | O | O | O |
protected | O | O | O | X |
default | O | O | X | X |
private | O | X | X | X |
🐧getter / setter
👉 객체지향에서는 메서드를 통해 데이터를 변경하는 방법을 선호
getter
👉 설정한 변수 값을 읽어옴
stter
👉 변수 값을 변경
메서드 선언
private 타입 변수이름; //선언
public 타입 get변수이름(){ //변수 호출
return 변수이름
}
public void set변수이름(타입 변수이름){ //변수 값 설정
this.변수이름;
}
⛄ex)
pirvate String name;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public class Example {
public static void main(String[] args) {
Peng peng = new Peng();
peng.setName("펭귄"); //변수name에 펭귄
System.out.println(peng.getName()); // name 호출
}
}
//출력값
펭귄