티스토리 뷰

Java+Spring/Java

[Java]Getter/Setter 메서드

Vagabund.Gni 2022. 7. 15. 22:36
728x90
반응형

앞선 글에서 캡슐화의 목적이

 

  1. 데이터의 은닉
  2. 데이터의 보호

라는 것을 언급했다. Getter와 Setter 메서드는 이 캡슐화의 목적을 달성하면서도

 

클래스 내부의 변수에 접근하고 싶을 때 사용하는 방법이다.

 

즉, 외부에서 데이터로의 직접 접근이 아닌 메서드를 통한 간접 접근을 가능하게 만들어주는 메서드라 할 수 있다.

 

아래의 예를 보자.

public class GetterSetterTest {
    public static void main(String[] args) {
        Worker w = new Worker();
        w.setName("김코딩");
        w.setAge(30);
        w.setId(5);

        String name = w.getName();
        System.out.println("근로자의 이름은 " + name);
        int age = w.getAge();
        System.out.println("근로자의 나이는 " + age);
        int id = w.getId();
        System.out.println("근로자의 ID는 " + id);
        
        //System.out.println(Worker.name); //에러
    }
}

class Worker {
    private String name; // 변수의 은닉화. 외부로부터 접근 불가
    private int age;
    private int id;

    public String getName() { // 멤버변수의 값 
        return name;
    }

    public void setName(String name) { // 멤버변수의 값 변경
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if(age < 1) return;
        this.age = age;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}

// 출력 결과
근로자의 이름은 김코딩
근로자의 나이는 30
근로자의 ID는 5

먼저 아래의 Worker 클래스를 보면, 모든 필드가 private으로 보호되고 있어서

 

직접적인 접근이 불가능함을 알 수 있다.

 

이와 같이 캡슐화가 잘 이루어진 필드로의 접근을 위해 아래의 public 메서드들을 정의하게 된다.

 

먼저 Setter 메서드는 외부에서 메서드에 접근하여 조건이 맞을 경우 데이터 값을 변경하게 도와주며

 

관행적으로 메서드 이름 앞에 set-을 붙여 정의한다(setName, setAge, setId).

 

이어서 Getter 메서드는 이렇게 변경한 값을 외부에서 읽어올 수 있게 도와주는 메서드이다.

 

관행적으로 메서드 이름 앞에 get-을 붙여 정의한다(getName, getAge, getId).

 

Getter/Setter 메서드가 정의되었다면 메인 메서드에서 Worker 클래스를 이용해 w 인스턴스를 생성한 후,

 

getter 메서드를 이용해 데이터 값을 불러와 변수에 할당해줄 수 있게 된다.

 

그리고 Worker 클래스의 필드에 바로 접근을 하면 에러가 나며, 캡슐화가 잘 된 상태임도 확인할 수 있다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
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
글 보관함