본문 바로가기

Java/Base

[JAVA] getter(), setter()

private

 

객체지향 프로그램은 정보은닉이 중요하다.

Field를 잘 숨기기 위해서는 객체의 데이터에 외부에서 직접적으로 접근하는 것을 막아야한다.

예를 들어, 최고 기록에 대한 객체일 경우, 현재까지의 최대값을 넘기지 않으면 값이 변해서는 안된다.

그러니까 외부에서 주어진 값의 유효여부 등을 확인할 수 있도록 해주는 것이다.

 

public int i;

이와 같은 선언 방식은 객체를 보호해줄 수 없다.

다른 클래스에서 해당 필드에 접근해 값을 직접적으로 변경하여도 그대로 값이 변해버리기 때문이다.

이를 위해 사용하는 것이 private 접근제한자 이다.

 

private int i;

이와 같이 선언할 경우 다른 클래스에서는 직접적인 접근이 불가해진다.

즉, 정보를 안전하게 보호할 수 있는 것이다.

 

그렇다면 이렇게 선언된 객체에는 어떻게 접근하여야 할까?

 

이럴때 사용되는 것이 바로 getter(), setter() 프로퍼티이다.

 

getter() / setter()

 

다음과 같이 사용할 수 있다.

 

public class Value{
	private int max;
    
    public int getMax(){
    	return this.max;
    }
    
    public void setMax(int x){
    	if(x > max) this.max = x;
        else this.max = max;
    }
}

이때 사용된 this.은 자신의 인스턴스를 참조하는 예약어이다.

메소드가 길어지면 해당 변수가 지역변수인지 필드인지 헷갈릴 수 있기 때문에 사용한다.

 

추가적으로 static 메소드에서는 사용이 불가하다. (static 클래스에서는 인스턴스 생성이 필요하지 않기 때문)

'Java > Base' 카테고리의 다른 글

[JAVA] 배열  (0) 2023.09.05
[JAVA] 생성자  (0) 2023.08.17
[JAVA] 다형성 - 메소드 오버라이딩(Method Overridng)  (0) 2023.08.08
[JAVA] 상속  (0) 2023.08.03
[JAVA] 클래스 다이어그램  (0) 2023.08.01