Java의 this 키워드 이해

1807 단어 javathis
this 키워드 재java는 내가 이해하기 매우 어려운 개념이다.:) 너무 멍청한 이유일지도 모른다
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 키워드에 대한 지식입니다. 여러분께 도움이 되었으면 합니다!

좋은 웹페이지 즐겨찾기