이것
클래스의 현재 대상을 나타내는 것이 항상 있어야합니다. C ++ 의이 포인터와 마찬가지로 Java 의이 키워드는 현재 객체에 대한 참조를 나타냅니다.
세 가지 주요 기능이 있습니다.
1. 생성자의 다른 생성자를 호출하십시오.
예를 들어, 세 가지 생성자가있는 학생 수업이 있습니다. 특정 생성자에서 다른 생성자를 호출하는 경우이 ()가 필요하며 Student ()를 직접 사용할 수 없습니다.
2. 현재 객체에 대한 참조를 반환합니다.
3. 멤버 변수 이름과 매개 변수 이름을 구별하십시오.
다음 예를 참조하십시오.
공개 클래스 학생 {개인 문자열 이름; 사적인 int 연령; 개인 문자열 대학; 공개 학생 () {age = 20; } 공개 학생 (문자열 이름) {this (); // 전화가 될 수 없으며이 () 메소드 만 사용하십시오. this.name = 이름; System.out.println ( "이 학생 이름은"+name); } 공개 학생 (String Name, String College) {this (이름); // c ++ 당신은 다른 생성자에게 직접 호출 할 수 있습니다 .college = College; System.out.println ( "이 학생 이름은"+name+"College입니다. } 공개 학생 업그레이드 () {age ++; 이것을 반환하십시오; } public void print () {system.out.println ( "이름은 다음과 같습니다. } public static void main (String [] args) {Student Student1 = 새로운 학생 ( "linc"); 학생 2 = 신입생 ( "Linc", "Shenyang College"); Student2.Upgrade (). print (); }}방대한 물체의 바다에서 길을 잃었을 때, 이것을 사용하여 자신을 찾는 것을 잊지 마십시오.
감독자
슈퍼는이 아버지입니다. 얼굴 대상의 관점에서 볼 때,이 두 개념은 이해하기 쉽습니다.
서브 클래스는 부모 클래스에서 상속됩니다. 부모 클래스의 보호 및 위의 속성 및 방법은 하위 클래스에서 선천적으로 태어납니다. 그렇다면 왜 키워드 슈퍼가 여전히 필요합니까?
먼저 부모 수업의 구성을보십시오. 서브 클래스를 구성 할 때는 먼저 C ++의 시공 속성과 일치하는 부모 클래스의 기본 생성자를 호출해야합니다. 상위 클래스에 여러 생성자가있는 경우 호출 할 수있는 생성자를 지정해야합니다. 슈퍼가 필요합니다 (Arg1, arg2 ...).
서브 클래스 생성자에서 기본 클래스 생성자를 호출 할 때 Super는 첫 번째로 작성해야합니다. 그렇지 않으면 오류 가보고됩니다.
둘째, 하위 클래스가 상위 클래스를 덮어 쓰는 일부 방법 에서이 부모 클래스 의이 방법을 호출하십시오. 우리 모두가 알고 있듯이, 서브 클래스에서 부모 클래스를 덮어 쓰는 몇 가지 방법은 객체 지향에서 지향적 다형성을 향한 방법이며, 다른 다양한 이유로 인해이 방법을 구별하기 위해이 방법으로 호출되어야합니다. 현재 Super는이를 완성하기 위해 사용해야합니다.
공개 클래스 클래스 리더는 학생 {개인 문자열 의무; Public ClassLeader () {듀티 = "클래스 모니터"; } public classleader (문자열 의무, 문자열 이름, 문자열 대학) {Super (이름, 대학); this.duty = 의무; } public void print () {super.print (); System.out.println ( "의무는" + 듀티); } public static void main (String [] args) {ClassLeader leader = New ClassLeader ( "Life", "Linc", "Shenyang"); 리더 .print (); }}두 클래스 파일을 동일한 디렉토리에 배치하고 컴파일 및 실행하십시오.
d :/workspace/java/project261/super> java -d. *java d :/workspace/java/project261/super> java 클래스 리더
실행 결과 :
이 학생 이름은 Linc이 학생 이름은 Linc College입니다. Shenyang 이름은 다음과 같습니다. Linc Age Is : 20 College IS : Shenyang Duty is Life
다른 언어로 어떻게 처리되는지 확인하십시오.
C#은 Super와 유사한 함수를 완성하기위한 기본 키워드를 제공하고 C ++는 기본 클래스의 이름으로 직접 호출합니다.