Java : Getter and Setter

m_ngyeong·2024년 10월 16일
0

Java

목록 보기
13/14
post-thumbnail

☕️ Java


Getter and Setter

게터(Getter)와 세터(Setter)는 객체 지향 프로그래밍에서 캡슐화(Encapsulation)를 구현하는 방법 중 하나이다. 클래스의 필드(속성)에 직접 접근하는 대신, 간접적으로 접근하고 수정할 수 있도록 만들어진 메서드들이다. 이를 통해 데이터의 무분별한 접근을 방지하고, 외부에서 객체의 상태를 제어할 수 있다.

Getter 메서드

  • 역할: 클래스의 private 필드 값을 외부에서 읽을 수 있도록 함.
  • 이름 규칙: 일반적으로 get으로 시작하고 필드의 이름을 붙여서 메서드 이름을 만듦.
    예를 들어, name 필드의 getter는 getName()이 됨.
  • 리턴 타입: 필드의 데이터 타입과 일치해야 하며, 필드 값을 반환.

예시

public class Person {
    private String name;
    private int age;

    // Getter for name
    public String getName() {
        return name;
    }

    // Getter for age
    public int getAge() {
        return age;
    }
}

Setter 메서드

  • 역할: 클래스의 private 필드 값을 외부에서 수정할 수 있도록 함.
  • 이름 규칙: set으로 시작하고 필드의 이름을 붙여서 메서드 이름을 만듦.
    예를 들어, name 필드의 setter는 setName()이 됨.
  • 매개변수 타입: 필드의 데이터 타입과 일치하는 매개변수를 받아서 필드 값을 설정.

예시

public class Person {
    private String name;
    private int age;

    // Setter for name
    public void setName(String name) {
        this.name = name;
    }

    // Setter for age
    public void setAge(int age) {
        this.age = age;
    }
}

게터와 세터를 사용하는 이유:

Getter와 Setter 메서드를 사용하여 객체의 필드 값을 읽고, 수정할 수 있다. 이때 필드는 private로 설정되어 직접 접근이 불가능하지만, 게터와 세터를 통해 안전하게 값을 관리할 수 있기 때문이다.

🦷 캡슐화(Encapsulation):

필드를 private으로 설정하면 외부에서 직접 접근할 수 없다. 필드의 무분별한 수정이나 읽기를 방지하고, 객체의 무결성을 유지할 수 있다.

🦷 데이터 검증:

Setter 메서드에서 필드 값을 설정하기 전에 유효성 검사를 추가할 수 있다. 잘못된 값이 설정되는 것을 방지할 수 있다.

public void setAge(int age) {
    if (age > 0) {
        this.age = age;
    } else {
        System.out.println("Invalid age");
    }
}

추후 변경의 유연성:

외부에서 Getter와 Setter만 사용하고 있다면 클래스의 내부 구현을 바뀌더라도 외부 코드에 큰 영향을 미치지 않는다.

예제:

public class Person {
    private String name;
    private int age;

    // Getter and Setter for name
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    // Getter and Setter for age
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public static void main(String[] args) {
        // 객체 생성
        Person person = new Person();

        // Setter를 사용해 필드 값 설정
        person.setName("Alice");
        person.setAge(30);

        // Getter를 사용해 필드 값 읽기
        System.out.println("Name: " + person.getName()); // Name: Alice
        System.out.println("Age: " + person.getAge());   // Age: 30
    }
}


profile
사용자 경험 향상과 지속적인 성장을 추구하는 프론트엔드 개발자 ʚȉɞ

0개의 댓글