>Java >java지도 시간 >This을 Java에서 사용하는 방법에 대한 자세한 설명

This을 Java에서 사용하는 방법에 대한 자세한 설명

黄舟
黄舟원래의
2017-09-08 09:44:542809검색

이 글은 Java에서 This의 자세한 사용 예를 중심으로 관련 정보를 소개합니다. 이 글을 통해 모든 사람이 이 키워드의 사용법을 이해하고 숙달할 수 있기를 바랍니다.

자세한 사용 예 This in Java

클래스 이름으로 변수를 정의할 때 정의된 것은 참조일 뿐입니다. 외부 세계는 이 참조를 통해 이 클래스의 속성과 메서드에 액세스할 수 있습니다.

클래스 자체 속성과 메서드에 액세스할 수 있는 참조가 충분합니까, 아니면 있어야 합니까?

하하, Java는 클래스에서 이 클래스의 속성과 메서드를 참조할 수 있는 this 개체라는 매우 좋은 기능을 제공합니다. 먼저 간단한 예를 들어보겠습니다.


public class ThisDemo { 
  String name="Mick";
  public void print(String name){
    System.out.println("类中的属性 name="+this.name);
    System.out.println("局部传参的属性="+name);
  }  
  public static void main(String[] args) {
    ThisDemo tt=new ThisDemo();
    tt.print("Orson");
  }
}

클래스 자체에 대한 참조 반환과 관련하여 "Thinking in Java"에 고전적인 예가 있습니다.

객체 자체를 반환한 후 하나의 문으로 여러 작업을 구현하거나 게시하려면 this 키워드를 사용하세요.


public class ThisDemo { 
  int number;
  ThisDemo increment(){
     number++;
     return this;
  } 
 private void print(){
     System.out.println("number="+number);
  }
  public static void main(String[] args) {
    ThisDemo tt=new ThisDemo();
     tt.increment().increment().increment().print();
  }
}

         클래스에 두 개의 생성자를 정의하고, 이 참조를 통해 하나의 생성자에서 다른 생성자를 호출하는 것이 가능해야 합니다.

실제 애플리케이션 개발에서 이러한 구현 메커니즘을 사용하는 것은 무엇입니까? 아래에 작성된 코드를 게시하세요.


public class ThisDemo { 
  String name;
  int age;
  public ThisDemo (){ 
    this.age=21;
  }   
  public ThisDemo(String name,int age){
    this();
    this.name="Mick";
  }   
 private void print(){
     System.out.println("最终名字="+this.name);
     System.out.println("最终的年龄="+this.age);
  }
  public static void main(String[] args) {
    ThisDemo tt=new ThisDemo("",0); //随便传进去的参数
    tt.print();
  }
}

위 코드는 비록 매우 짧지만 이해하기에는 매우 논리적인 것 같습니다. 이름은 매개변수가 있는 생성자에 할당되고 age 속성은 매개변수가 없는 항목에 할당됩니다. 건설자.

하지만 개인적으로는 문제가 있다고 생각합니다. 클래스를 인스턴스화할 때 먼저 ThisDemo 개체에 대한 메모리를 할당하고 생성자 ThisDemo(String name, int age)를 먼저 호출해야 합니다.

첫 번째 줄을 실행할 때 ThisDemo() 생성자를 호출합니다. 즉, 두 개의 메모리 공간이 있어야 합니다. 하나는 ThisDemo(String name, int age)에 할당된 메모리 공간이고 다른 하나는 ThisDemo() 실행 공간입니다.

최종 인쇄 결과에서 동일한 객체의 두 속성 name과 age가 인스턴스화되는 이유는 무엇입니까? 저를 계몽해주세요!

요약하자면:

1) this 키워드는 클래스 내부의 자체에 대한 참조이므로 클래스의 메서드가 자체 속성에 액세스하는 것을 용이하게 할 수 있습니다.

2) 객체 자체 클래스에 대한 참조를 반환할 수 있습니다. , 동시에 생성자 내에서 다른 생성자를 호출할 수 있습니다.

위 내용은 This을 Java에서 사용하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.