자바 에서 this 와 슈퍼 키워드 상세 설명

14226 단어 자바 기초 문법
this 키워드
this 키워드, this 는 대상 자 체 를 가리 키 며, 하나의 클래스 는 this 를 통 해 자신 을 대표 하 는 대상 변 수 를 얻 을 수 있 습 니 다.this 는 다음 세 가지 상황 에 사 용 됩 니 다.
  • 인 스 턴 스 변 수 를 호출 합 니 다.
  • 인 스 턴 스 방법 을 호출 합 니 다.
  • 다른 구조 방법 을 호출 하 다.

  • this 변수의 예제 코드 를 사용 합 니 다:
    public class Person {
         
    	
    	//    
    	private String name; 
    	//    
    	private int age; 
    	//      
    	private Date birthDate;
    
    //          
    	public Person(String name, int age, Date d) {
          
    		this.name = name; 
    		this.age = age; 
    		birthDate = d; 
    		System.out.println(this.toString()); 
    	}
    
    	public Person(String name, int age) {
          
    		//            
    		this(name, age, null); 
    	}
    
    	public Person(String name, Date d) {
          
    		//            
    		this(name, 30, d); 
    	}
    
    	public Person(String name) {
          
    		// System.out.println(this.toString()); 
    		//   Person(String name, Date d)     ,         
    		this(name, null); 
    	}
    
    	@Override 
    	public String toString() {
          
    		return "Person [name=" + name
    			+ ", age=" + age
    			+ ", birthDate=" + birthDate + "]";
    	}
    }
    

    주의: this 를 사용 하여 다른 구조 방법 을 호출 할 때 this 문 구 는 반드시 이 구조 방법의 첫 번 째 문구 입 니 다.
    슈퍼 키워드
    슈퍼 키 워드 는 현재 대상 의 초 클래스 대상 을 가리킨다.즉, 현재 대상 의 부모 클래스 대상 입 니 다.슈퍼 키 워드 는 일반적으로 하위 클래스 에 사용 된다.슈퍼 키워드 의 역할:
  • 부모 클래스 의 구성원 변 수 를 호출 합 니 다.
  • 부 류 를 호출 하 는 방법.
  • 부계 의 구조 방법 을 호출 하 다.

  • 부모 클래스 Person 코드 는 다음 과 같 습 니 다:
    public class Person {
         
    	
    	//    
    	private String name; 
    	//    
    	private int age; 
    	//      
    	private Date birthDate;
    
    //          
    	public Person(String name, int age, Date d) {
          
    		this.name = name; 
    		this.age = age; 
    		birthDate = d; 
    		System.out.println(this.toString()); 
    	}
    
    	public Person(String name, int age) {
          
    		//            
    		this(name, age, null); 
    	}
    
    	public Person(String name, Date d) {
          
    		//            
    		this(name, 30, d); 
    	}
    
    	public Person(String name) {
          
    		// System.out.println(this.toString()); 
    		//   Person(String name, Date d)     ,         
    		this(name, null); 
    	}
    }
    

    하위 클래스 Student 코드 는 다음 과 같 습 니 다.
    public class Student extends Person {
         
    
    	//      
    	private String school;
    
    	public Student(String name, int age, Date d, String school) {
          
    		super(name, age, d); 
    		this.school = school; 
    	}
    
    	public Student(String name, int age, String school) {
          
    		// this.school = school;//     
    		super(name, age); 
    		this.school = school; 
    	}
    
    	public Student(String name, String school) {
          //      3
    		// super(name, 30); 
    		this.school = school; 
    	}
    }
    

    주의: 슈퍼 문 구 는 하위 구조 방법의 첫 줄 에 있어 야 합 니 다.
    코드 ③ 줄 구조 방법 은 슈퍼 구문 이 없 기 때문에 컴 파일 러 는 부모 류 의 기본 구조 방법 (매개 변수 구조 방법 없 음) 을 호출 하려 고 하지만 부모 류 Person 은 기본 구조 방법 이 없 기 때문에 컴 파일 오류 가 발생 할 수 있 습 니 다.이 컴 파일 오 류 를 해결 하 는 데 는 세 가지 방법 이 있다.
  • 은 부모 클래스 Person 에 기본 구조 방법 을 추가 하고, 하위 클래스 Student 은 부모 클래스 의 기본 구조 방법 을 암시 적 으로 호출 합 니 다.
  • 하위 클래스 Studen 구조 방법 에 슈퍼 문 구 를 추가 하고 명시 적 으로 부모 구조 방법 을 호출 하 며 슈퍼 문 구 는 반드시 첫 번 째 문장 이 어야 합 니 다.
  • 하위 클래스 Studen 구조 방법 에 this 문 구 를 추가 하고 현재 대상 의 다른 구조 방법 을 명시 적 으로 호출 하 며 this 문 구 는 반드시 첫 번 째 문장 이 어야 합 니 다.

  • 슈퍼 와 this 의 공통점:
  • 슈퍼 (매개 변수): 기본 클래스 의 특정한 구조 함수 (구조 함수 중의 첫 번 째 문 구 를 호출 해 야 합 니 다)
  • this (매개 변수): 본 류 에서 다른 구조 함수 (구조 함수 중의 첫 번 째 문 구 를 호출 해 야 합 니 다)
  • 슈퍼: 현재 대상 의 직접 부모 클래스 의 구성원 을 참조 합 니 다.
  • this: 현재 대상 이름 을 대표 합 니 다 (프로그램 에서 이의 성 이 생기 기 쉬 운 곳 은 this 를 사용 하여 현재 대상 을 가 리 켜 야 합 니 다.함수 의 형 참여 클래스 의 구성원 데이터 가 동일 하 다 면, 이 때 this 로 구성원 변수 명 을 가리 켜 야 합 니 다)
  • 호출 슈퍼 () 는 하위 구조 방법의 첫 줄 에 써 야 합 니 다. 그렇지 않 으 면 컴 파일 이 통과 되 지 않 습 니 다.모든 하위 구조 방법의 첫 번 째 문 구 는 슈퍼 () 를 함 축적 으로 호출 하 는 것 이다. 만약 에 부모 류 가 이런 형식의 구조 함수 가 없다 면 컴 파일 할 때 잘못 보고 할 것 이다.
  • 슈퍼 () 는 this () 와 유사 하 며, 슈퍼 () 는 하위 클래스 에서 부모 클래스 의 구조 방법 을 호출 하고, this () 는 같은 클래스 에서 다른 방법 을 호출 하 는 것 과 구별 된다.
  • 슈퍼 () 와 this () 는 모두 구조 방법 내 첫 줄 에 두 어야 한다.
  • 은 this 로 구조 기 를 호출 할 수 있 지만 두 개 를 호출 할 수 없습니다.
  • this 와 슈퍼 는 하나의 구조 함수 에 동시에 나타 날 수 없다. this 는 반드시 다른 구조 함 수 를 호출 할 것 이기 때문에 다른 구조 함수 도 반드시 슈퍼 문장의 존재 가 있 기 때문에 같은 구조 함수 에 똑 같은 문구 가 있 으 면 문장의 의 미 를 잃 고 컴 파일 러 도 통과 하지 못 할 것 이다.
  • this () 와 슈퍼 () 는 모두 대상 을 가리 키 기 때문에 static 환경 에서 사용 할 수 없습니다.포함: static 변수, static 방법, static 구문 블록.
  • 은 본질 적 으로 this 는 본 대상 을 가리 키 는 지침 이지 만 슈퍼 는 자바 키워드 이다.

  • 이상 의 내용 은 참고 학습 만 제공 합 니 다. 권리 침해 가 있 으 면 저 에 게 연락 하여 삭제 하 십시오!이 글 이 당신 에 게 도움 이 된다 면 왼쪽 아래 엄지손가락 은 블 로 거들 에 게 가장 큰 격려 입 니 다.당신 의 격려 는 블 로 거들 의 가장 큰 동력 입 니 다!

    좋은 웹페이지 즐겨찾기