Java에서 속성과 필드의 차이점은 무엇인가요?
Java의 속성은 일반적으로 get 및 set 메서드로 이해될 수 있습니다.
필드는 일반적으로 "클래스 멤버" 또는 "클래스 멤버 변수"라고 하며 때로는 "도메인"이라고도 하며 "데이터 멤버"로 이해되고 데이터를 전달하는 데 사용됩니다.
Field(필드)
클래스 멤버(필드), 일반적으로 클래스에 정의된 클래스 멤버 변수,
예:
public class A{ private String s = "123"; }
멤버 변수가 있다고 말할 수 있습니다. 클래스 A s라고 불리는 클래스 A에는 필드 s가 있습니다.
필드는 일반적으로 데이터를 전달하는 데 사용되므로 보안을 위해 일반적으로 비공개로 정의됩니다.
필드와 상수는 클래스의 데이터(도메인)를 설명합니다. 이러한 데이터 중 일부가 외부 세계에서 접근이 허용되지 않는 경우
"객체 캡슐화" 원칙에 따라 제공을 피해야 합니다. 공개 방식으로 유형의 필드를 외부로 보냅니다. 최종 수정된 상수는 제외됩니다.
일반적으로 비공개 유형으로 설정합니다. 비공개인데 어떻게 외부 세계에서 액세스할 수 있습니까? 물론 Java의 속성 메서드를 통해서입니다!
Property(속성)
Property는 클래스 내 메소드 선언으로 제한되며 클래스 내 다른 멤버와 관련이 없으며 JavaBean의 범주에 속합니다.
예:
void setA(String s){} String getA(){}
클래스에 이러한 메서드 쌍이 있으면 이 클래스에 읽기 및 쓰기 가능한 속성이 있다고 말할 수 있습니다(소문자 a에 유의하세요). set 메소드가 제거되면 읽기 가능한 속성이 되며 그 반대의 경우도 마찬가지입니다.
규칙은 다음과 같습니다. get 또는 set 후에 나머지 문자열을 제거합니다
요약:
속성과 필드를 구별하는 목적은 데이터 보안을 더 잘 달성하는 것입니다(예: 속성에 값을 할당하려는 경우). class 또는 other 클래스를 사용하는 경우 이 필드를 public으로 설정해야 합니다. 그러나 이렇게 하면 필드에 대한 임의의 읽기 및 쓰기 작업이 허용되므로 데이터 보안에 매우 해롭습니다. 간단히 말해서 속성은 필드의 캡슐화를 실현합니다. 속성에는 필드를 제어하기 위한 get 및 set 메소드가 있습니다. 이 필드의 속성에는 get 메소드만 있고 할당 작업만 수행할 수 있습니다. 그 반대의 경우에는 읽기 작업이 없습니다. 즉, 필드에 대한 작업은 속성을 통해 제어됩니다.
속성을 생성하고 필드와 속성을 함께 캡슐화할 수 있습니다. 속성을 통해 필드와 같은 데이터 멤버에 액세스하고, 데이터 캡슐화를 실현하고, 불법 데이터 할당 사용을 방지하고, 데이터 무결성을 보장하고, 클래스 내에서 수정이 발생할 때 전체 프로그램의 수정을 방지할 수 있습니다.
get 및 set 메서드를 기반으로 한 리플렉션은 개체 데이터를 파괴하지 않으며 IDE는 규칙을 통해 스마트 프롬프트를 만들 수 있습니다. 리플렉션을 직접 사용하고 각 필드를 순회하기 위해 몇 가지 일반적인 처리를 수행하려는 경우 어느 필드를 쓸 수 있고 어떤 필드를 읽을 수 있는지 아무도 알려주지 않으므로 처리할 수 없습니다.
위 내용은 자바 필드가 뭐야?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!