예를 들어 자바 프로그래밍에서this 키워드와 슈퍼 키워드의 사용법을 설명하다

3396 단어 Javathissuper
this
항상 클래스의 현재 대상을 대표하는 사물이 있어야 한다. C++의this 바늘과 같이 자바의this 키워드는 현재 대상을 대표하는 인용이다.
그것은 세 가지 주요 작용을 한다.
1. 구조 방법에서 다른 구조 방법을 사용한다.
예를 들어 하나의 Student 클래스가 있는데 세 개의 구조 함수가 있는데 어떤 구조 함수에서 다른 구조 함수를 호출하면this()에 사용해야 하고 Student()를 직접 사용해서는 안 된다.
2. 현재 객체의 참조를 반환합니다.
3. 구성원 변수 이름과 매개 변수 이름을 구분합니다.
다음 예제를 참조하십시오.

public class Student 
{ 
  private String name; 
  private int age; 
  private String college; 
  public Student() 
  { 
    age = 20; 
  } 
  public Student(String name) 
  { 
    this();//can not be call Student,only use this() method. 
    this.name = name; 
    System.out.println("this student name is "+name); 
  } 
  public Student(String name,String college) 
  { 
    this(name);//C++ Student(name)  
    this.college = college; 
    System.out.println("this student name is "+name+" college is "+college);     
  } 
 
  public Student upgrade() 
  { 
    age++; 
    return this; 
  } 
 
  public void print() 
  { 
    System.out.println("name is: "+name 
        +" age is: "+age 
        +" college is: "+college); 
  } 
 
  public static void main(String[] args) 
  { 
    Student student1 = new Student("linc"); 
    Student student2 = new Student("linc","shenyang college"); 
    student2.upgrade().print(); 
  } 
} 

망망한 대상의 바다를 잃었을 때,this로 자신을 찾는 것을 잊지 마라.
super
슈퍼는this의 아버지뻘이다.관상 대상의 측면에서 볼 때 이 두 개념은 매우 이해하기 쉽다.
자류는 부류에서 계승되고 부류의protected 및 이상의 속성과 방법은 부류에서 타고난 것이다.그럼, 왜 슈퍼라는 키워드가 있어야 합니까?
첫째, 부류의 구조를 본다
하위 클래스를 구성할 때 상위 클래스의 기본 구조 함수를 호출해야 합니다. 이것은 C++의 구조 속성과 일치합니다.부류에 여러 개의 구조 함수가 있을 때, 어떤 것을 호출할지 지정해야 합니다.이것은 슈퍼(arg1,arg2...)를 사용해야 하는 것이다.
주의해야 할 것은 하위 클래스의 구조 함수에서 기본 클래스의 구조 함수를 호출할 때 슈퍼를 맨 앞에 써야 한다. 그렇지 않으면 오류를 보고해야 한다.
둘째, 하위 클래스가 부모 클래스를 덮어쓰는 일부 방법에서 부모 클래스를 호출합니다.모두가 알다시피 하위 클래스에서 상위 클래스를 덮어쓰는 일부 방법은 대상을 대상으로 하는 다태적인 방식이다. 다른 여러 가지 이유로 이 방법에서 상위 클래스를 호출하는 이 방법을 사용해서 구분해야 한다. 이때 슈퍼를 사용해서 완성해야 한다.

public class ClassLeader extends Student 
{ 
  private String duty; 
  public ClassLeader() 
  { 
    duty = "class monitor"; 
  } 
  public ClassLeader(String duty,String name,String college) 
  { 
    super(name,college); 
    this.duty = duty; 
  } 
 
  public void print() 
  { 
    super.print(); 
    System.out.println("duty is " + duty); 
  } 
   
  public static void main(String[] args)  
  {  
    ClassLeader leader = new ClassLeader("life","linc","shenyang"); 
  leader.print(); 
  }  
   
} 
두 클래스 파일을 같은 디렉터리에 놓고 컴파일하고 실행합니다.

D:\workspace\Java\project261\super>javac -d . *java 
 
D:\workspace\Java\project261\super>java ClassLeader 

실행 결과:

this student name is linc 
this student name is linc college is shenyang 
name is: linc age is: 20 college is: shenyang 
duty is life 
다른 언어에서 어떻게 처리하는지 봅시다.
C#에서 베이스 키워드를 제공하여 슈퍼 비슷한 기능을 완성하고 C++는 기본 클래스의 이름으로 호출합니다.

좋은 웹페이지 즐겨찾기