티스토리 뷰

▶getter와 setter - 데이터를 보호한다 단축키는 alt+shift+s, r

오늘은 자바를 배운지 얼마 되지 않게 알게된 getter와 setter에 대해 정리해 보려고 합니다.

 

Getters and Setters in Java Explained

Getters and setters are used to protect your data, particularly when creating classes. For each instance variable, a getter method returns its value while a setter method sets or updates its value. Given this, getters and setters are also known as accessor

www.freecodecamp.org

 

🔎 getter, setter는 데이터를 보호하기 위해 사용! 특히 클래스를 생성할 때


💡 getter는 인스턴스 변수를 반환하고 setter는 인스턴스 변수를 대입하거나 수정합니다.

관습에 따라 getter는 변수 앞에 get, setter은 변수 앞에 set이 붙고 그 변수들의 앞글자는 대문자로 합니다.

public class Vehicle {
    private String color;
    
    // Getter
    public String getColor() {
        return color;
    }
    
    // Setter;
    pubic void setColor(String c) {
        this.color = c;
    }
}

getter는 객체의 변수를 반환하고

setter는 파라미터를 받아서 변수에 할당합니다.

 

getter와 setter가 정의되면 main 메소드에서는 다음과 같이 사용할 수 있습니다.

public static void main(String[] args) {
    Vehicle v1 = new Vehicle();
    v1.setColor("Red");
    System.out.prinln(v1.getColor()); // Red
}

getter와 setter로 값들을 처리할 수 있습니다.

 

🔎 그래서 getter와 setter를 사용하는 이유?


getter와 setter를 통해 값에 대해 얼마나 중요하게 다룰지 조절할 수 있습니다.

간단하게 아래의 예제를 살펴봅시다.

public void setNumber(int number) {
    if (number < 1 || number > 10) {
        throw new IllegalArgumentException();
    }
    this.number = num;
}

위의 setter을 통해 1과 10 사이의 숫자들만 number 변수에 할당할 수 있다.

아래와 같이 직접 수정하는 것보다 훨씬 나은 방식입니다.

obj.number = 13;

1과 10 사이의 값만을 원하는데 13을 할당한 경우입니다.

이렇게 값을 대입하면 원치 않은 에러나 결과가 나올 수 있겠죠?

 

number 변수를 private으로 지정하고 setNumber 메소드를 이용하면 이와 같은 문제를 예방할 수 있습니다.

 

number이 private이므로 number을 불러오면서 자연스럽게 getter 메소드가 있어야 합니다.

public int getNumber() {
    return this.number;
}
728x90
LIST
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함