Java 에서 mutator 메소드는 무엇입니까?
java 에서 mutator 메소드가 무엇인지,그리고 mutators 및 accessor 메소드 사용의 이점에 대해 알아보십시오. 모든 설명은 설명 할 예제를 포함합니다.
이 문서에서,당신은 무엇을 배울 것이 변경자 방법에 자바와 접근 방법입니다. 또한 mutator 및 accessor 메서드 사용의 이점을 이해하고 몇 가지 java 예제를 볼 수 있습니다.
mutator 및 accessor 메소드 개념은 객체 지향 프로그래밍 및 캡슐화와 밀접한 관련이 있습니다. 객체 지향 프로그래밍에 익숙하지 않은 경우를 대비하여. 나는 아래에 간단한 소개를 포함했다;그러나 더 자세한 내용을 원한다면 설명서를 확인하십시오.
테이블의 내용.
객체-지향 프로그래밍 개괄
객체 지향 프로그래밍을 의미하는 문제를 해결하는 대표하는 엔티티의 문제로 클래스입니다. 클래스는 상태가 우리의 표현에 관련 데이터를 포함하는 변수 집합 인 상태 및 메소드를 가지고 있습니다. 그리고 메소드는 우리 클래스가 수행 할 수있는 작업을 결정합니다.
예를 들어,정의할 수 없습니다 클래스 원형
public class Circle {private float radius; public Circle(float newRadius) { this.radius = newRadius; } public double area(){ return Math.PI * Math.pow(radius, 2); } }
이 클래스는 나타내는 원형 개념입니다. 서클 클래스 상태에는 반지름과area()
라는 메서드가 있으며 서클 영역을 반환합니다.
추가할 수 있습니다 다음 코드를Circle
등은 그것을 테스트하기 위해
public static void main(String args){ Circle circle1 = new Circle(3); System.out.println(circle1.area()); }
출력:
28.274333882308138
캡슐화 정리해
우리는 우리 정의한 클래스를 사용하여 객체-지향 프로그래밍 개체를 만든circle1
Circle
circle1
radius
변수에 액세스하는 방법이 없으므로 변경할 수 없습니다. 내가 할 수있는 일은 반경이 다른 새로운 원 객체를 만드는 것입니다. 이것을 바로 잡기 위해 무엇을 할 수 있습니까?
두 가지를 할 수 있습니다; 중 하나로 이어질 것이 잘 설계되는 클래스고,다른 하나는 가난한 도전을 유지하는 디자인이다. 하나의 옵션은radius
필드를 공용 필드로 선언하므로 클래스 외부에서 액세스 할 수 있습니다. 변경 사항을 참조 아래
public class Circle {public float radius; public Circle(float newRadius) { this.radius = newRadius; } public double area(){ return Math.PI * Math.pow(radius, 2); } public static void main(String args){ Circle circle1 = new Circle(3); System.out.println(circle1.radius); circle1.radius = 5; System.out.println(circle1.radius); } }
출력:
3.05.0
기타 옵션을 만드는 방법에 액세스 및 수정 radius 필드를 숨길 수 있습니다 이행 상세정보. 이 메커니즘은 캡슐화라고도합니다.
Java 의 Mutator 메소드 정의
java 의 mutator 메소드 및 모든 객체 지향 프로그래밍 언어는 클래스 내부의 변수를 변경할 수있는 메소드입니다. Private 는 변수에 대한 액세스 수준이며 변수를 변경하는 유일한 방법은 mutator 메서드를 사용하는 것입니다. 이 방법으로 뮤 테이터 메소드는 클래스에 저장된 데이터의 유효성과 품질을 제어 할 수 있습니다.
예를 들어 이전 코드 스 니펫에서setRadius()
메서드는 mutator 메서드입니다. 이 방법을 수정하여 일부 데이터 유효성 검사를 추가 할 수 있습니다. 예를 들어,데이터 유효성 검사의 예는 새 반경이 음수인지 확인하는 것일 수 있습니다.
접근 방법의 정의에서 Java
접근 방법을 할 수 있도록 방법을 읽는 등 필드를 다른 방법이나 클래스 클래스 외부에 있습니다. 이 방법을 사용하면 클라이언트 코드가 클래스 필드에 액세스 할 수있는 방법을 제어 할 수 있습니다.
Mutators 및 Accessors 예제
mutator 및 accessor 메서드를 설명하기 위해 몇 가지 예를 살펴 보겠습니다. 세터와 게터는 접근 자와 뮤 테이터 메소드를 참조하는 또 다른 방법입니다.
아래에는 클래스에 게터를 추가하는 방법의 예가 있습니다. 클래스라는Product
getPrice()
getName()
price
name
.이 매개 변수는 클래스 변수에 액세스하고 수정할 수 있도록 추가해야합니다.
import java.math.BigDecimal;public class Product { private BigDecimal price; private String name; public BigDecimal getPrice() { return price; } public String getName() { return name; } // mutator or setter methods public void setPrice(BigDecimal price) { if(price.compareTo(BigDecimal.ZERO)<0 )throw new IllegalArgumentException("Empty product name"); this.price = price; } public void setName(String name) { if(name.isEmpty()) throw new IllegalArgumentException("Empty product name"); this.name = name; }}
위에서 볼 수 있듯이,설정 방법은setPrice()
setName()
포함한 검증을 확인하고,데이터 전달되는 일부를 충족 기준입니다. 예를 들어,요구 사항 중 하나는 가격이 항상 0 이상이어야한다는 것입니다. 매개 변수가 유효하지 않은 경우 코드는 예외를 throw 합니다. 그렇지 않으면 새 값을 할당합니다.
Mutators 의 명명 규칙
java 에서 이러한 메서드,접근 자 및 mutators 의 이름은 특정 명명 규칙을 따라야합니다. 이러한 규칙은 완전히 안정화되므로 따라야 할 필수 요소입니다. 이러한 규칙을 따르지 않으면 다른 사람들이 귀하의 코드를 읽고있을 때 좌절감과 혼란을 야기 할 수 있습니다.mutators 의 명명 규칙부터 시작하겠습니다. 이 방법은 공개로 선언하고 무효로 반환해야합니다. 또한 메소드 이름은 소문자로set
age
라는 변수가있는 경우 mutator 메서드는 다음과 같이 보일 것입니다:
public void setAge(int age){...}
이름 지정 규칙에 대한 접근
와 함께 뮤 테이터,우리가 본 접근자는 또한 비슷한 이름을 사용합니다. 규칙은 메소드가 공개로 선언되어야한다는 것입니다. 또한 메서드 이름이 시작해get
age
변수에 대한 접근 자 메서드를 만들어 보겠습니다:
public int getAge(){...}
혜택의 뮤 테이터 및 접근
지금까지,우리는 보 접근 및 변경자 방법에 자바와 함께 몇 가지 예입니다. 그리고 이러한 메소드를 선언 할 때 따라야 할 명명 규칙을 숙지하십시오. 그러나 이러한 방법은 어떻게 유용합니까? 주요 이점은 캡슐화입니다. 이것은 기본적으로 이러한 메소드를 생성함으로써 클래스의 내부 세부 사항을 다른 구성 요소에서 숨기고 있음을 의미합니다. 다른 구성 요소는 API 를 통해서만 통신 할 수 있습니다.따라서 클래스가 분리됩니다; 그들은하지 않는 서로에 의존할 수 있도록 개발 격리에 이르게하는,빠르게 개발한 이후 팀 구성원을 만들 수 있습 다른 클래스고에서 구성 요소를 병행합니다. 게 완화 유지보수 이후,구성 요소를 수정할 수 있으로 작은 충격에 따라 구성 요소입니다.
결론
을 요약하자면,이 문서에서,우리가 볼 수 있는 변경자 방법 및 접근 방법에 java 는 방법은 사용을 읽고 쓰는 등 변수가 있습니다. 그들의 주요 목적은 우리가 잘 캡슐화되고 서로 분리 된 클래스를 설계하도록 돕는 것입니다.
이 기사가 유용하기를 바라며,이 블로그를 읽고 지원해 주셔서 너무 감사드립니다! 행복한 코딩!
Leave a Reply