본문 바로가기
Java Study

게터(getter)와 세터(setter) 메서드

by xogns93 2024. 7. 15.

getter와 setter는 데이터 캡슐화를 구현하는 데 사용되는 메서드입니다. 주로 private으로 선언된 인스턴스 변수의 값을 읽거나 설정하는 역할을 합니다. 이 메서드들은 객체 지향 프로그래밍에서 정보 은닉(information hiding)을 실현하는 데 중요한 역할을 합니다.

 

Getter  메서드

Getter 메서드는 주로 인스턴스 변수의 값을 반환하는 역할을 합니다. 일반적으로 다음과 같은 특징을 가집니다:

  • 접근 제어자: 대부분 public으로 선언되어야 합니다. 외부에서 접근할 수 있어야 변수 값을 읽을 수 있습니다.
  • 메서드 이름: 보통 get으로 시작하며, 그 뒤에 변수명의 첫 글자를 대문자로 시작한 이름을 붙입니다. 예를 들어, getName() 메서드는 name 변수의 값을 반환합니다.
  • 반환 값: 메서드가 읽어야 할 변수의 데이터 타입과 일치하는 값을 반환합니다.
public class Person {
    private String name;

    // Getter 메서드
    public String getName() {
        return name;
    }
}

 

Setter  메서드

 

Setter 메서드는 주로 인스턴스 변수의 값을 설정하는 역할을 합니다. 일반적으로 다음과 같은 특징을 가집니다:

  • 접근 제어자: 대부분 public으로 선언되어야 합니다. 외부에서 접근하여 변수 값을 설정할 수 있어야 합니다.
  • 메서드 이름: 보통 set으로 시작하며, 그 뒤에 변수명의 첫 글자를 대문자로 시작한 이름을 붙입니다. 예를 들어, setName(String name) 메서드는 name 변수의 값을 설정합니다.
  • 매개변수: 메서드가 설정해야 할 변수의 데이터 타입과 일치하는 매개변수를 받습니다.
  • 역할: 주로 입력된 매개변수의 값을 인스턴스 변수에 대입하여 설정합니다.
public class Person {
    private String name;

    // Setter 메서드
    public void setName(String name) {
        this.name = name;
    }
}

 

 

public class Main {
    public static void main(String[] args) {
        Person person = new Person();

        // Setter를 사용하여 변수 설정
        person.setName("Alice");

        // Getter를 사용하여 변수 읽기
        String personName = person.getName();
        System.out.println("Person's name: " + personName); // 출력: Person's name: Alice
    }
}

위 예제에서 Person 클래스의 setName() 메서드는 name 변수의 값을 설정하고, getName() 메서드는 name 변수의 값을 반환합니다. 이렇게 하면 외부에서 Person 객체의 name 변수에 접근하거나 값을 설정할 수 있지만, 직접적으로 변수에 접근할 수 없기 때문에 데이터 캡슐화를 실현할 수 있습니다.

Getter와 setter는 객체의 상태를 캡슐화하고, 외부에 안전하게 접근할 수 있는 인터페이스를 제공하여 객체 지향 프로그래밍의 캡슐화 원칙을 지원합니다.

 

데이터 캡슐화의 장점

  • 데이터 보호: 외부에서 데이터에 직접 접근하는 것을 제한하여 데이터 무결성을 유지합니다.
  • 유지보수 용이: 클래스의 내부 구현을 변경하더라도 외부 인터페이스는 동일하게 유지할 수 있습니다.
  • 코드의 가독성 및 재사용성 향상: 명확한 인터페이스를 제공하여 코드를 더 쉽게 이해하고 재사용할 수 있습니다.

 

 

게터(getter)와 세터(setter)는 객체 지향 프로그래밍에서 캡슐화 원칙을 구현하기 위해 사용되는 메서드입니다. 이 메서드들은 클래스의 멤버 변수에 접근하고 수정할 수 있는 방법을 제공합니다. 일반적으로 멤버 변수는 private으로 선언하여 직접 접근을 제한하고, 대신 public으로 선언된 게터와 세터 메서드를 통해 간접적으로 접근하도록 합니다.