javathis 용법 상세 및 간단한 실례
클래스 이름으로 변수를 정의할 때, 정의된 것은 단지 하나의 인용일 뿐, 바깥쪽은 이 인용을 통해 이 클래스 안의 속성과 방법에 접근할 수 있다.
그 종류 중에는 자신의 속성과 방법에 접근할 수 있는 인용도 있어야 합니까?
허허, 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");
}
}
반환 클래스 자체의 인용에 대해 는 매우 고전적인 예가 있다.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();
}
}
한 클래스에서 두 개의 구조 함수를 정의하고 한 구조 함수에서this라는 인용을 통해 다른 구조 함수를 호출합니다. 이렇게 하면 실현될 수 있습니다.이런 실현 메커니즘은 실제 응용 개발을 할 때 어떤 용도가 있습니까?다음 코드를 붙여 넣습니다.
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();
}
}
위의 코드를 보면 매우 짧지만 이해하면 매우 순조로운 것 같다. 파라미터가 있는 구조 함수에서name는 파라미터가 없는 가운데서age속성을 부여한다.하지만 개인적으로 문제가 있다고 생각합니다. 하나의 클래스를 실례화하려면 먼저 대상인ThisDemo에 메모리를 분배하고 구조 함수인ThisDemo(Stringname, intage)를 호출해야 합니다.
첫 번째 줄을 실행할 때 This Demo () 구조 함수를 호출합니다. 즉, 여기에 두 개의 메모리 공간이 있을 것입니다. 하나는 This Demo (String name, intage) 를 위한 메모리 공간이고, 다른 하나는 This Demo () 실행 공간입니다.
왜 마지막으로 출력된 결과는 하나의 대상에 있는 두 개의 속성name과agena를 실례화한 것입니까?소에게 가르침을 주십시오!
요약:
1)this 키워드는 클래스 내부에서 자신에 대한 인용으로 클래스에서 자신의 속성에 접근하는 방법을 편리하게 할 수 있다.
2) 대상의 자기와 같은 종류의 인용을 되돌릴 수 있고 하나의 구조 함수에서 다른 구조 함수를 호출할 수 있다.
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.