Java의 this 키워드 이해
this 키워드의 의미: 그 방법을 호출한 대상에 해당하는 핸들을 생성할 수 있습니다.
이 말을 어떻게 이해합니까?
thinking in java에 이런 예가 있어요.
두 개의 같은 유형의 대상이 있는데 각각 a와 b라고 한다. 그러면 우리는 어떻게 호출 방법 f()를 구별할 때 누가 이 방법을 다시 호출합니까?
예:
class Banana {
void f(int i){
/*** *****/
}
}
Banana a = new Banana();// Banana a
Banana b= new Banana();// Banana b
a.f(1);
b.f(2);
그러면 컴파일러는 어떤 대상의 f() 함수를 호출하려고 하는지 어떻게 알 수 있습니까?사실 막후의 전송은 다음과 같다.
a.f(1)<<====>>Banana.f(a,1);
b.f(1)<<====>>Banana.f(b,2);
나는 다음과 같이 이해한다. 바나나의 대상 a를 생성하고 a의 방법 f()를 호출할 때 이 대상을 가리키는 핸들this를 동시에 생성한다.여기가 바로 this라는 지향 대상인 new Banana() 또는this는 여기서 문단 a와 같다.this《==》a;
우리가 한 방법의 내부에 있을 때또한 현재 대상의 핸들을 얻기를 희망합니다. 이 핸들은 컴파일러가 비밀리에 전달하기 때문에 명확한 표지부호가 식별되지 않습니다. 이때 우리는this라는 키워드를 사용할 수 있습니다
this의 통속적 의미: 생성된 어느 대상이 이 방법을 사용하든지 간에 이 대상을 가리키는 바늘this를 생성한다
thinking in java의 대표적인 예:
public class Leaf{
private int i=0;
Leaf increment(){
i++;
return this;
}
void print(){
Systme.out.println("i="+i);
public static void main (String [] args)
{
Leaf x =new Leaf();
x.increment().increment(). increment().print();
}
}
1. 대상의 핸들 x를 생성한다.구문 형식은 Leaf x입니다.2. Leaf class 객체를 생성합니다.구문 형식은 new Leaf()입니다.
3. 문맥과 대상의 관계를 구축한다.구문은 x = new Leaf()입니다.
4. 개체 new Leaf () 를 호출하는 방법 increment ().구문은 x.increment()
×××누가 increment () 방법을 호출했습니까?Leaf 클래스의 대상 x (또는 new Leaf () 이기 때문에 대응 시스템은this 인용을 생성하고 비밀의 지향 x 또는 new Leaf () 대상을 가리키기 때문에 increment () 는 x를 가리키는 인용을 되돌려줍니다!메모리의 주소입니다. 우리는 그것을 인쇄해서 보면 알 수 있습니다.
위와 같은 내용은 여러분께 소개해 드린 Java 중this 키워드에 대한 지식입니다. 여러분께 도움이 되었으면 합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.