class getter_setter_v1 {
public static void main(String[] args) {
사람 a사람 = new 사람();
a사람.id = 20;
System.out.println("제 번호는 " + a사람.id + " 입니다.");
// 출력 : 제 번호는 20 입니다.
}
}
class 사람 {
public int id;
}
먼저, a사람.id = 20; -> a사람.id = -5;
마음대로 변경이 가능하다. (-5라는 사람 아이디는 존재하면 안되는데)
class 사람 {
// private => 외부로 공개되지 않는다., 리모콘에 노출되지 않는다.
private int id;
public void setId(){
id = 20;
}
}
따라서 외부에서 마음대로 접근하지 못하게, private으로 바꿔 주고 메소드를 하나 만들어준다. 또 -5를 사용할 수 없게 하려면 메소드니깐 조건문을 걸어 줄 수 있다!
(20이 아닌 다른 번호도 받을 수 있게 아래와 같이 메소드를 수정해 준다.)
class getter_setter_v1 {
public static void main(String[] args) {
사람 a사람 = new 사람();
a사람.setId();
System.out.println("제 번호는 " + a사람.id + " 입니다.");
// 출력 : 제 번호는 20 입니다.
}
}
class 사람 {
// private => 외부로 공개되지 않는다., 리모콘에 노출되지 않는다.
private int id;
public void setId(int id){
this.id = id;
}
}
그 다음은 설정한 내용을 받아야한다.
출력 부분의 a사람.id 은 외부에서 접근이 불가능하기 때문에 이 부분도 메소드로 만들어 준다. 메인 클래스와 함께 고치면,
class getter_setter_v1 {
public static void main(String[] args) {
사람 a사람 = new 사람();
a사람.setId(20);
System.out.println("제 번호는 " + a사람.getId() + " 입니다.");
// 출력 : 제 번호는 20 입니다.
}
}
class 사람 {
// private => 외부로 공개되지 않는다., 리모콘에 노출되지 않는다.
private int id;
public void setId(int id){
this.id = id;
}
public int getId(){
return id;
}