[Java] Getter, Setter 쓰는 이유

고동이의 IT·2021년 11월 4일
0

Java

목록 보기
17/37
post-thumbnail

private와 public의 차이점

  • public이면 객체변수를 이용해 변수를 직접사용할 수 있다.
  • private일때는 Value 클래스에서만 사용가능하고 Value 클래스에 감쳐줘서 = 캡슐화 되어서 다른 클래스에서 직접 사용불가

getter, setter를 쓰는 이유는 private에서 발생한다.

class Value{

public int num1; //  아무곳에서나 접근
private int num2; // 자기자신 클래스안에서만 접근


}

value 클래스에 있는 변수를 메인클래스에서 사용하려면

public class Test {
	public static void main(String[] args) {
		Value v= new Value();
		
// Value에 있는 값을 가져오려면
v.num1 = 200; //public이면 객체변수를 이용해 변수를 직접사용할 수 있다.
//v.num2 = 200; 오류발생. private일때는 Value 클래스에서만 사용가능하고 Value 클래스에 감쳐줘서 = 캡슐화 되어서 다른 클래스에서 직접 사용불가
// 데이터를 써야하는데 왜감추냐? 외부에서 사용못하게 보호 = 엉뚱한 값이 못들어가게 . num2에 데이터를 넣거나 데이터를 가져오고 싶으면? getter/setter
//데이터를 넣고 싶으면? 
v.setNum2(200);
System.out.println("num1 : "+ v.num1 );
System.out.println("num2 : "+ v.getNum2() );		
		
}

}

getter, setter를 안쓰면 public 변수인 num1만 쓸수있음

그래서 getter, setter 설정

class Value{
	//getter setter 왜쓰냐????????
	public int num1; //  아무곳에서나 접근
	private int num2; // 자기자신 클래스안에서만 접근
	
public int getNum2() { // getter, setter는 public이라 외부에서 쓸 수 있음. 
		return num2;
	}
	public void setNum2(int num2) { // getter, setter를 내가 필요한데로 재정의 가능.
		if(num2<0 || num2>100){
			System.out.println("num2 자료 오류");
		}else{
		this.num2 = num2;
		}
	}	
}
profile
삐약..뺙뺙

0개의 댓글