IT 연구소

getter 와 setter

ron_nie 2023. 6. 29. 17:09
728x90

1. 사용이유

내부 상태를 캡슐화 하고 개체에 대한 액세스를 제어한다.

  • get : 변수 값 검색
  • set : 값 수정

2. 이점

  1. 캡슐화
  2. 데이터 유효성 검사
  3. 유연성

3. 활용

게임에서 스탯을 찍을 때 -1로 만들 수 있다면 문제가 생길 것. 만약 -1로 만든다고 할 때 0으로 자동 초기화시켜주는 코드를 만들어보자.

public class stat {
	int dex;
	
    int getDex(){
    	return dex;
    }
    
    void setDex(int dex){
    	if(dex < 0){
        	this.dex = 0;
        }else{
        	this.dex = dex;
        }
    }
}

이렇게 validation을 설정하고 main으로 가서

public class main {
	stat character = new stat();
    
    character.setDex(-9999);
    
    System.out.println(chracter.getDex()); // 0
}

이상한 숫자를 입력하더라도 set에서 수정해서 get으로 출력하기 때문에 이상한 버그를 제어할 수 있다.

반응형