클래스의 특정 정보를 클래스 내부에 숨기고, 외부 프로그램에서 직접 접근을 허용하지 않고, 대신 숨겨진 정보를 클래스에서 제공하는 메소드를 통해 조작하고 접근합니다.
캡슐화가 필요한 이유는 무엇인가요?
클래스의 객체를 생성한 후 "object.properties"를 통해 객체의 속성에 값을 할당할 수 있습니다. 여기서 할당 작업은 속성의 데이터 유형 및 저장 범위에 따라 제한됩니다. 이 외에 다른 제약은 없습니다. 그러나 실제 문제에서는 속성 할당에 추가적인 제약을 추가해야 하는 경우가 많습니다. 이 조건은 속성 선언에 반영될 수 없습니다. 메서드를 통해서만 제한적인 조건을 추가할 수 있습니다. 동시에 사용자가 속성에 값을 할당하기 위해 "object.property" 메서드를 사용하는 것을 방지해야 하므로 해당 속성을 비공개로 선언해야 합니다.
포장의 장점:
1. 좋은 포장은 커플링을 줄일 수 있습니다.
2. 수업 내부 구조는 자유롭게 수정 가능합니다.
3. 멤버 변수를 더욱 정밀하게 제어할 수 있습니다.
4. 정보를 숨기고 세부정보를 구현합니다.
encapsulation 구현 단계
(1) 속성을 private으로 수정
(2) getter/setter 메소드를 생성하고 이 두 가지 메소드를 통해 데이터를 얻고 설정하며 객체는 이 두 가지 전송 메소드를 호출하여 상호 작용을 구현합니다. 데이터 읽기 및 쓰기.
class person{ private int age;//修改属性为private public int getAge(){ return age; } public void setAge(int a){ age = a; } }
캡슐화는 객체의 내부 복잡성을 숨기고 외부 호출을 용이하게 하기 위해 간단한 인터페이스만 노출합니다. 캡슐화를 구현하려면 일치하는 권한 수정자가 필요합니다.
Java의 패키지는 프로젝트의 클래스를 더 잘 관리하고 동일한 이름을 가진 파일과의 충돌을 해결하기 위한 것입니다. Java에서 패키지를 사용할 때 일반적으로 패키지 선언에 사용하는 package 키워드를 언급해야 합니다. 클래스 또는 인터페이스가 속한 패키지입니다(예: java.lang 패키지). 각 .는 파일 디렉토리의 레이어를 나타냅니다. 동일한 패키지를 사용하려면 import 키워드를 사용해야 합니다. 일반적으로 import 문은 패키지 선언 사이에 있습니다. Java에서는 패키지 이름이 모두 소문자로 표기됩니다.
모든 클래스에는 객체를 생성하고 속성을 초기화하는 데 사용되는 생성자가 있습니다. 클래스의 객체를 생성하는 방법: new+constructor, 예를 들어Person p = new Person();
if 클래스의 명시적으로 정의된 생성자가 없는 경우 시스템은 기본적으로 빈 매개변수가 있는 생성자를 제공합니다.
형식을 정의합니다. 생성자
권한 수정자 클래스 이름(공식 매개변수 목록) {}
요약: 속성 할당 순서:
1 기본 초기화
2 명시적 초기화
3 생성자에서 초기화
4 "object.method" 또는 "object.property" 메소드
이 키워드는 속성, 메소드 생성자를 수정하는 데 사용할 수 있습니다. 이는 현재 객체 또는 현재 생성 중인 객체로 이해됩니다.
In 클래스 메소드의 경우 "this.property" 또는 "this.method" 메소드를 사용하여 현재 객체 속성이나 메소드를 호출할 수 있습니다. 하지만 일반적으로 우리는 "this"를 생략합니다. 특별한 경우, 메소드의 형식 매개변수가 클래스의 속성과 동일한 이름을 갖는 경우 명시적으로 "this.variable"을 사용하여 변수가 속성임을 나타내야 합니다.
클래스 생성자의 경우에도 마찬가지입니다. 빈 매개변수를 사용하여 생성자를 호출합니다. this(); public Person(int age)과 같은 매개변수가 있는 매개변수를 호출할 때 this(age)를 사용하여 호출할 수 있습니다. 하지만 생성자에서 직접 호출할 수는 없습니다. 생성자가 n개인 경우 이 메서드를 사용하면 n-1개의 생성자만 호출할 수 있으며 이 호출을 첫 번째 줄에 선언해야 합니다. 생성자의 크기를 비교하는 데에도 사용할 수 있습니다.
아아아아위 내용은 Java 캡슐화의 개념은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!