방구석 상상코딩

[JAVA] get(getter) / set(setter) 본문

Spring Boot/JAVA

[JAVA] get(getter) / set(setter)

구석탱 2022. 1. 6. 20:32

캡슐화

get(getter), set(setter)을 하는 이유는 중요한 데이터를 보존 또는 보호하기 위함이다.

클래스에 담는 내용(예를들어 변수) 중 중요한 데이터나 기능을 외부에서 직접적으로 접근하지 못하게 (private / protected) 막고, 해당 내용을 외부에서 변경 혹은 가져오기 위해 get(getter), set(setter) 를 통해 값을 전달받고 전달함으로써 데이터의 무결성을 지킨다.

 

아래와 같이 userId와 userPw에 대한 정보를 캡슐화 한 클래스를 만든다.

public class TestA {
    private String userId;
    private String userPw;
    
    // userId에 대한 get(getter)
    public String getUserId(){
    	return userId;
    }
    
    // userId에 대한 set(setter)
    public String setUserId(String userId){
    	this.userId = userId;
    }
    
    // userPw 대한 get(getter)
    public String getUserPw(){
    	return userPw;
    }
    
    // userPw 대한 set(setter)
    public String setUserPw(String userPw){
    	this.userPw = userPw;
    }
}

 

다른 클래스에서 TestA 클래스에 있는 값에 새로운 값을 넣거나, 저장되어있는 값을 불러오고 싶을 경우에는 get(getter), set(setter) 를 사용하여 값을 저장하고, 불러온다.

public class TestB{
    public void test(){
        // TestA 클래스 생성
        TestA a = new TestA();
        
        // userId 셋팅하기
        a.setUserId("RoomKok"); 
        
        // userId 가져오기
        a.getUserId(); 
        
        // userPw 셋팅하기
        a.setUserPw("1234"); 
        
        // userPw 가져오기
        a.getUserPw(); 
    }
}