개발천재

[JAVA] getter와 setter 본문

개발 준비/JAVA

[JAVA] getter와 setter

세리블리 2024. 12. 12. 21:56
반응형

 

객체지향의 목적 중 하나가 은닉화인데 은닉화는 모든 변수를 private로 만드는 것이다. private로 만드는 이유는 외부에서 쉽게 수정하지 못하도록 하기 위함인데 멤버변수들은 퍼블릭으로 쓰지 않고 private로 선언한다.

 

getter

getter는 private변수의 값을 외부에서 읽을 수 있도록 하는 메서드이다. 외부에서 접근할 수 없는 private 변수를 외부에서 조회할 수 있도록 getter를 사용한다. 

 

getter는 변수의 값을 반환하는 역할을 하기 때문에 반환하려는 변수의 타입과 메서드의 타입이 일치해야한다. 그래서 getter 메서드는 return 받을 값의 타입을 반드시 지정해야한다.

private String model;

public String getModel() {
    retuen this.model
}

 

 

setter

Setter는 외부로부터 값을 받아서 private 변수에 값을 설정하는 메서드이다.


private로 변수를 선언하면 외부에서 이 변수에 직접 접근할 수 없다. 만약 모든 변수를 public으로 지정하게 된다면 누구나 변수의 값을 수정할 수 있기 때문에 프로그램의 안정성이 떨어진다. 그래서 변수를 private로 선언하고 setter를 통해서 수정하게 함으로써 데이터를 더 안전하게 관리하는 것이다. 

priveate String model;

public void setModel() {
	this.modet = model;
}

 

클래스를 만들때 getter와 setter가 둘 다 동시에 다 존재해야하는 것은 아니다.

 

필요에 따라서 getter와 setter가 같이 있을 수도 있고, getter만 존재해야 할 수도 있다. 예를 들어 변수의 값을 수정해야할 때에는 getter와 setter를 둘 다 넣어야 하지만, 변수의 값을 수정할 필요가 없는 경우에는 getter만 넣을 수도 있다.

 

 

예제

public class ChickenMain {
    public static void main(String[] args) {
        Chicken jadam = new Chicken();
        jadam.setModel("권은비");

        jadam.brand = "자담치킨";
        jadam.menu = "간장순살치킨";
        jadam.price = 19000;
        System.out.println(jadam.brand + " " + jadam.menu + "을 " + jadam.price + "에 주문했습니다.");
        System.out.println(jadam.brand + " 모델은 " + jadam.getModel());
        
        // 출력
        // 자담치킨 모델은 권은비

    Chicken 교촌 = new
            Chicken("교촌", "간장치킨", 21000);
    Chicken bbq = new
            Chicken("BBQ", "황금올리브치킨", 23000);
        System.out.println(bbq.brand + " " + bbq.menu + "을 " + bbq.price + "에 주문했습니다.");
    }

 

 

 

인텔리제이에서 getter/setter 만들기

화면에서 마우스 오른쪽 버튼 클릭하고 [Generate]를 클릭한다.

 

 

[Getter and Setter]를 클릭한다.

 

 

무엇을 getter와 setter로 만들것인지 선택하고 [OK]버튼을 클릭한다.

반응형