logo

Java의 접근자와 Mutator

객체 지향 프로그래밍에서 캡슐화는 객체의 구현 세부 정보를 숨기고 해당 속성과 동작에 액세스할 수 있는 인터페이스를 제공하는 방식을 나타내는 기본 개념입니다. Accessor 및 mutator 메서드는 Java의 캡슐화와 관련된 두 가지 중요한 개념입니다.

접속자

getter 메소드라고도 알려진 접근자 메소드는 객체의 전용 인스턴스 변수 값을 검색할 수 있는 메소드입니다. 이러한 메서드는 객체 상태에 대한 읽기 전용 액세스를 제공합니다. 접근자 메서드를 사용하면 객체의 상태가 외부 코드에 의해 실수로 또는 악의적으로 수정되지 않도록 할 수 있습니다.

돌연변이원

setter 메소드라고도 알려진 Mutator 메소드는 객체의 전용 인스턴스 변수 값을 수정할 수 있는 메소드입니다. 이러한 메서드는 객체 상태에 대한 쓰기 전용 액세스를 제공합니다. mutator 메소드를 사용하면 제어된 인터페이스를 통해서만 객체의 상태가 수정되도록 할 수 있습니다.

Java의 접근자(accessor) 및 변경자(mutator) 메소드의 개념을 이해하기 위해 예제를 살펴보겠습니다. 이름, 나이, 이메일이라는 세 가지 프라이빗 인스턴스 변수가 있는 Person이라는 클래스가 있다고 가정합니다. 우리는 accessor 및 mutator 메서드를 사용하여 이러한 변수에 대한 액세스를 제공하려고 합니다.

 public class Person { private String name; private int age; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } 

이 예에서는 getName(), getAge() 및 getEmail()의 세 가지 접근자 메서드와 setName(), setAge() 및 setEmail()의 세 가지 변경자 메서드를 정의했습니다. 접근자 메서드는 해당 인스턴스 변수의 값을 반환하고, mutator 메서드는 해당 인스턴스 변수의 값을 설정합니다.

명명 규칙

접근자 및 변경자 메서드의 명명 규칙은 Java에서 중요합니다. 접근자 메서드의 이름은 'get'으로 시작하고 그 뒤에 변수 이름이 와야 하며 첫 글자는 대문자로 표시되어야 합니다. Mutator 메소드의 이름은 'set'으로 시작하고 그 뒤에 변수 이름이 와야 하며 첫 글자는 대문자로 표시되어야 합니다. 이 명명 규칙을 사용하면 각 메서드의 기능이 명확해지고 코드를 더 읽기 쉽고 유지 관리하기 쉬워집니다.

접근자 및 변경자 메서드는 Java 캡슐화의 필수 부분입니다. 이를 통해 객체의 상태에 대한 액세스를 제어할 수 있으므로 제어된 인터페이스를 통해서만 객체에 액세스하고 수정할 수 있습니다. accessor 및 mutator 메서드에 대한 명명 규칙을 따르면 코드를 더 읽기 쉽고 유지 관리하기 쉽게 만들 수 있습니다.

다음은 Java에서 접근자 및 변경자 메서드의 사용을 보여주는 예제 프로그램입니다.

Person.java

 import java.util.Scanner; public class Person { private String name; private int age; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Person person = new Person(); System.out.print('Enter name: '); String name = scanner.nextLine(); person.setName(name); System.out.print('Enter age: '); int age = scanner.nextInt(); person.setAge(age); scanner.nextLine(); // Consume the newline character left by nextInt() System.out.print('Enter email: '); String email = scanner.nextLine(); person.setEmail(email); System.out.println('
Name: ' + person.getName()); System.out.println('Age: ' + person.getAge()); System.out.println('Email: ' + person.getEmail()); } } 

산출:

 Name: Manoj Age: 21 Email: [email protected] 

이 예제에서 기본 메소드는 Person 클래스의 새 인스턴스를 생성하고 mutator 메소드(setName, setAge 및 setEmail)를 사용하여 객체의 전용 인스턴스 변수 값을 설정합니다. 그런 다음 접근자 메서드(getName, getAge 및 getEmail)를 사용하여 인스턴스 변수의 값을 검색하고 이를 콘솔에 표시합니다.

Accessor와 Mutator 사용의 장점

접근자 및 변경자 메서드를 사용하면 개체 상태를 가져오고 설정하는 프로세스에 유효성 검사 및 기타 처리 논리를 추가할 수 있다는 이점이 있습니다. 예를 들어 'setAge(int age)' 메서드에 유효성 검사를 추가하여 연령 값이 특정 범위 내에 있는지 확인하거나 'getName()' 메서드에 형식 지정 논리를 추가하여 나이의 첫 글자를 대문자로 표시할 수 있습니다. 사람의 이름.