Language/JAVA
[JAVA 기초 이론] 캡슐화 private / getter / setter
오류나면꽥꽥
2023. 5. 18. 17:48
캡슐화
"민감한" 데이터를 사용자에게 비노출
캡슐화 장점
클래스 안 데이터의 직접 수정을 막고 메서드로만 변경 허용
1. 데이터 보호
2. 내부적으로만 작동하는 코드 숨김
캡슐화 방법
1. 클래스 안 속성(=변수)을 private으로 설정.
※ private 수정자 :동일 클래스에서만 접근 가능.
2. private 설정된 속성에 접근 방법 :
public 설정된 get/set 메서드 통해서만 허용.
자바는 클래스 등을 생성할 때, 일반적으로 public을 디폴트 되어있다.
public class Test{
String name;
int age;
}
public
모든 곳에서 접근 가능
public class Test{
private String name;
private int age;
}
private
자기 자신 클래스에서만 접근 가능
클래스의 멤버 변수의 접근제어자를 private로 변경하게 된다면 클래스의 외부에서 직접적 접근이 불가해진다
✅ private
해당클래스 내부에서만 접근 가능
public class Test{
private String name;
private int age;
}
public String getName(){
}
public String setName(){
}
public int getAge(){
}
public int setAge(){
}
대신, 멤버변수의 getter, setter를 만들어줌
해당 클래스에서 마우스 우클릭(alt+shift+s) ▶ source ▶ getter,setter 선택
// setter : 멤버변수에 값을 설정
// getter : 멤버변수로부터 값을 받아올 수 있도록 해줌
외부에서 직접적으로 멤버변수의 값에 접근할 수는 없으나,
getter,setter를 인지하고 있으면 값을 바꿀 수 있다!
=> 제어자 == "캡슐화"
private을 하는 이유
하나의 코드를 여러 개발자들이 동시에 작업
=> 오류 발생 시 어떤 액션 + 어떤 기능에서 발생했는지를 기록해주기 때문에