이 글은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!