개발 일지/Java

[Java] getter과 setter 메서드

미숫가루설탕많이 2022. 12. 29. 19:51

 객체 지향 프로그래밍에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막는다. 데이터는 외부에서 접근하지 않도록 막고 메서드는 공개해서 외부에서 메서드를 통해 데이터에 접근하도록 유도한다.

 

 대표적으로 private 접근 제어자가 포함되어 있는 객체 변수의 데이터 값을 추가하거나 수정하고 싶을 때 사용하는 메서드가 getter과 setter 메서드이다.

 

class Animal {
    private String name;
    private int age;
    private String 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 String getId() {
        return id;
    }

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

public class HelloJava {
    public static void main(String[] args) {
        Animal a = new Animal();
        a.setName("재윤");
        a.setAge(20);
        a.setId("jaeyun");

        String name = a.getName();
        System.out.println("동물의 이름은 " + name);
        int age = a.getAge();
        System.out.println("동물의 나이는 " + age);
        String id = a.getId();
        System.out.println("동물의 ID는 " + id);
    }
}

/* 출력값
동물의 이름은 재윤
동물의 나이는 20
동물의 ID는 jaeyun
*/

 

 위 코드를 통해 자바 객체 지향 프로그래밍에서 캡슐화를 통해 데이터를 보호하면서도 어떻게 데이터를 변경할 수 있는지 알 수 있다.

 

 setter 메서드는 외부에서 메서드에 접근하여 조건에 맞을 경우 데이터 값을 변경하게 해주고 일반적으로 메서드명 앞에 set- 을 붙여서 정의한다.

 

 getter 메서드는 이렇게 설정한 변수 값을 읽어오는 데 사용하는 메서드이다. setter 메서드와 마찬가지로 메서드명 앞에 get- 을 붙여서 사용한다.

 

 코드를 다시 살펴보면, a의 setter 메서드를 사용해서 이름, 나이, ID에 대한 데이터 값을 저장하고 getter 메서드를 통해 해당 데이터 값을 불러와 변수에 담아서 출력하고 있다.

 

 결과적으로 setter과 getter 메서드를 활용하면 데이터를 효과적으로 보호하면서도 원하는 값으로 변경할 수 있어 캡슐화를 보다 효과적으로 달성할 수 있다.

'개발 일지 > Java' 카테고리의 다른 글

[Java] 참조 변수의 타입 변환  (0) 2022.12.30
[Java] 다형성(Polymorphis)  (0) 2022.12.30
[Java] 캡슐화(Encapsulation)  (0) 2022.12.29
[Java] Object 클래스  (0) 2022.12.29
[Java] super과 super()  (0) 2022.12.29