본문 바로가기

프로그래밍/Java

[Java]Getter와 Setter

 자바에서 private 지정자를 사용하게되면 같은 클래스 내부에서는 접근할 수 있지만 다른 클래스나 패키지에서는 접근 및 데이터 수정이 불가능하게된다. 하지만 프로그램에 따라서 외부 클래스나 패키지에서 접근을 하게 될 경우가 생기는데, 이때 외부에서 private 지정자에 접근 할 수 있도록 한것이 Getter와 Setter이다.

 

Setter란

 private로 외부의 접근이 차단된 자료에 접근하여 값을 설정하게 해주는 메소드이다.

 

 

Getter란

 Setter메소드를 통해 값이 설정된 private 변수를 반환하여 사용하는 메소드이다.

 

 

사용 예시

아주 간단한 예시를 통해 Getter와 Setter의 용도를 알아보자.

class A {
	 private int x;
	 private String s;
	 
	public int getX() {
		return x;
	}
	public void setX(int x) {
		this.x = x;
	}
	public String getS() {
		return s;
	}
	public void setS(String s) {
		this.s = s;
	}
	 
}

 Class A에서 private 접근지정자를 통해 int형 변수 x와 String형 변수 s를 생성하였다.

 

 private 접근지정자 특성상 클래스 내부에서는 변수 x와 s의 값을 설정 할 수 있지만, 우리는 외부 클래스에서 x와 s의 값을 설정하고 사용하고 싶다.

 

 때문에 값을 설정할 수 있는 Setter메소드, 값을 반환해주는 Getter메소드를 생성해주었다.

 

public class Test {

	public static void main(String[] args) {
		
		A a = new A(); // A클래스의 객체 a 생성
		
		// private에 대한 접근으로 오류가 뜬다.
		// a.s = "홍길동";
		// a.x = 1;
		
		a.setX(10);
		a.setS("홍길동");
		
		System.out.println("x의 값은 : " + a.getX() + ", " + "s의 값은 : " + a.getS());

	}

}

 외부 클래스인 Test클래스이다. 클래스 A의 변수인 x와 s를 사용하기 위해 먼저 클래스 A의 객체를 생성하여 변수 a에 지정해준다.

 

a.s와 a.x로 변수의 값을 설정 하려고 했으나 private 접근지정자로 인해 외부클래스에서는 접근이 막힌 상태이다.

 

때문에 미리 생성해둔 setX, setS을 통해 먼저 각각의 변수에 값을 저장하자. set메소드에 값을 넣으면 매개변수로 넘어가 Class A의 변수에 저장되는 것을 볼 수있다.

 

그렇게 변수에 저장된 값들을 get메소드의 retrun을 통해 반환 받아 사용한다.

 

 

 * alt + shift + s -> r 단축키로 간단하고 빠르게 Getter, Setter 메소드를 생성할 수 있다.

'프로그래밍 > Java' 카테고리의 다른 글

[Java] 업캐스팅, 다운캐스팅  (0) 2021.04.09
[Java]접근 지정자  (0) 2021.04.06
[Java]상속  (0) 2021.04.02
[Java]static  (0) 2021.03.30
[Java]import  (0) 2021.03.30