자바 의 this 키워드 사용 및 방법의 리 셋 에 관 한 지식

5809 단어
자바 this 키 워드 는 this 키 워드 를 상세 하 게 해석 하여 현재 대상 자체 나 현재 클래스 의 인 스 턴 스 를 표시 합 니 다. this 를 통 해 이 대상 의 모든 방법 과 속성 을 호출 할 수 있 습 니 다.예 를 들 면:

public class Demo{
  public int x = 10;
  public int y = 15;
  public void sum(){
    //    this       
    int z = this.x + this.y;
    System.out.println("x + y = " + z);
  }
 
  public static void main(String[] args) {
    Demo obj = new Demo();
    obj.sum();
  }
}

실행 결과:

x + y = 25

위의 프로그램 에서 obj 는 Demo 류 의 인 스 턴 스 입 니 다. this 와 obj 등가 로 int z = this. x + this. y 를 실행 합 니 다.int z = obj. x + obj. y 를 실행 하 는 것 과 같 습 니 다.
주의: this 는 클래스 를 예화 한 후에 만 의미 가 있 습 니 다.this 를 사용 하여 동명 변 수 를 구분 합 니 다.
구성원 변수 와 방법 내부 의 변수 가 이름 을 바 꿀 때 방법 내부 에서 구성원 변 수 를 호출 하려 면 어떻게 해 야 합 니까?이 때 this 만 사용 할 수 있 습 니 다. 예 를 들 어:

public class Demo{
  public String name;
  public int age;
 
  public Demo(String name, int age){
    this.name = name;
    this.age = age;
  }
 
  public void say(){
    System.out.println("      " + name + ",     " + age + " ");
  }
 
  public static void main(String[] args) {
    Demo obj = new Demo("   ", 3);
    obj.say();
  }
}

실행 결과:

         ,     3 

형 삼 의 작용 역 은 전체 방법 체 이 고 국부 변수 이다.Demo () 에 서 는 형태 참조 와 구성원 변수 가 이름 을 바 꿉 니 다. this 를 사용 하지 않 으 면 구성원 변수 가 아 닌 부분 변수 name 과 age 에 접근 합 니 다.say () 에서 우 리 는 this 를 사용 하지 않 았 습 니 다. 구성원 변수의 역할 영역 은 전체 인 스 턴 스 이기 때문에 당연히 this 를 추가 할 수 있 습 니 다.

public void say(){
  System.out.println("      " + this.name + ",     " + this.age + " ");
} 

자바 는 기본적으로 모든 구성원 변수 와 구성원 방법 을 this 와 연결 하기 때문에 this 를 사용 하 는 것 은 어떤 경우 에는 불필요 합 니 다.방법 명 으로 대상 을 초기 화 합 니 다.
즉, 본 류 의 다른 구조 방법 을 호출 하 는 것 과 같 으 며, 그것 은 반드시 구조 방법의 첫 번 째 문장 이 되 어야 한다.예 는 다음 과 같다.

public class Demo{
  public String name;
  public int age;
  
  public Demo(){
    this("   ", 3);
  }
 
  public Demo(String name, int age){
    this.name = name;
    this.age = age;
  }
 
  public void say(){
    System.out.println("      " + name + ",     " + age + " ");
  }
 
  public static void main(String[] args) {
    Demo obj = new Demo();
    obj.say();
  }
}

운영 결과: 사이트 이름 은 마이크로 학원 으로 설립 된 지 3 년 이 되 었 습 니 다.
주의해 야 할 것 은 구조 방법 에서 다른 구조 방법 을 호출 하고 동작 을 호출 할 때 반드시 최초의 위치 에 두 어야 한 다 는 것 이다.구조 방법 이외 의 어떤 방법 에서 도 구조 방법 을 호출 할 수 없다.하나의 구조 방법 내 에서 하나의 구조 방법 만 호출 할 수 있다.
상기 코드 는 방법 을 다시 불 러 오 는 것 과 관련 이 있 습 니 다. 즉, 자바 는 여러 개의 동명 방법 을 허용 하고 매개 변수 만 다 르 면 됩 니 다.후속 장절 회 에서 설명 하 다.매개 변수 로 전달
완전히 분 리 된 클래스 에서 방법 을 호출 하고 현재 대상 의 인용 을 매개 변수 로 전달 해 야 할 때.예 를 들 면:

public class Demo{
  public static void main(String[] args){
    B b = new B(new A());
  }
}
class A{
  public A(){
    new B(this).print(); //     
  }
  public void print(){
    System.out.println("Hello from A!");
  }
}
class B{
  A a;
  public B(A a){
    this.a = a;
  }
  public void print() {
    a.print();
    System.out.println("Hello from B!");
  }
}

실행 결과:

Hello from A!
Hello from B!

익명 의 대상 은 이름 이 없 는 대상 이다.대상 이 한 번 만 사용 하면 익명 의 대상 이 될 수 있 습 니 다. 코드 에 new B (this). print ();(new B (this). print ();먼저 new B (this) 를 통 해 이름 없 는 대상 을 만 들 고 호출 하 는 방법 입 니 다.
자바 방법 은 자바 에 다시 불 러 옵 니 다. 같은 클래스 의 여러 방법 은 같은 이름 을 가 질 수 있 습 니 다. 매개 변수 목록 이 다 르 기만 하면 됩 니 다. 이것 은 방법 으로 다시 불 러 옵 니 다 (method overloading).
매개 변수 목록 은 매개 변수 서명 이 라 고도 부 릅 니 다. 매개 변수의 유형, 매개 변수의 개수 와 매개 변수의 순 서 를 포함 하고 하나만 다 르 면 매개 변수 목록 이 다르다 고 합 니 다.
과부하 는 대상 을 대상 으로 하 는 기본 적 인 특성 이다.
다음은 상세 한 실례 를 보 겠 습 니 다.

public class Demo{
  //        ,    
  void test(){
    System.out.println("No parameters");
  }
  //        ,          
  void test(int a){
    System.out.println("a: " + a);
  }
  //        ,        
  void test(int a,int b){
    System.out.println("a and b: " + a + " " + b);
  }
  //        ,           
  double test(double a){
    System.out.println("double a: " + a);
    return a*a;
  }
  
  public static void main(String args[]){
    Demo obj= new Demo();
    obj.test();
    obj.test(2);
    obj.test(2,3);
    obj.test(2.0);
  }
}

실행 결과:

No parameters
a: 2
a and b: 2 3
double a: 2.0

위의 실례 를 통 해 독자 들 은 다시 불 러 오 는 것 은 하나의 클래스 에서 같은 함수 명칭 이 있 지만 형 삼 이 다른 함수 임 을 알 수 있다.다시 불 러 오 는 결 과 는 프로그램 세그먼트 가 코드 와 방법의 종 류 를 최대한 줄 일 수 있 습 니 다.
설명:
4. 567917. 매개 변수 목록 이 다 르 면 개수 가 다 르 고 유형 이 다 르 며 순서 가 다르다
4. 567917. 매개 변수 이름 만 다 르 면 안 됩 니 다
4. 567917. 멤버 방법 과 마찬가지 로 구조 방법 도 다시 실 을 수 있다
4. 567917. final 로 성명 하 는 방법 은 다시 실 을 수 없습니다
4. 567917. static 로 성명 하 는 방법 은 다시 불 러 올 수 없 지만 다시 성명 할 수 있 습 니 다
방법의 과부하 규칙:
방법 명칭 은 반드시 같 아야 한다
4. 567917. 매개 변수 목록 은 반드시 다 르 게 해 야 한다 (개수 가 다 르 거나 유형 이 다 르 거나 매개 변수 배열 순서 가 다르다)
4. 567917. 방법의 반환 유형 은 같 을 수도 있 고 다 를 수도 있다
4. 567917. 유형 만 다 르 면 방법의 과부하 가 되 기 에는 부족 하 다
방법 재 업로드 의 실현: 방법 이름 과 동시에 컴 파일 러 는 호출 방법의 매개 변수 개수, 매개 변수 유형 등에 따라 하나씩 일치 하여 대응 하 는 방법 을 선택 하고 일치 하지 않 으 면 컴 파일 러 가 잘못 보고 합 니 다. 이것 은 재 업로드 분해 라 고 합 니 다.

좋은 웹페이지 즐겨찾기