이 키워드는 Java

⚡ 스마트 요약

Java 이 키워드는 메서드 또는 생성자 내부의 현재 객체를 가리키는 참조 변수입니다. Less이 섹션에서는 목적, 일반적인 사용법, 이름 충돌, 생성자 체이닝 및 예제를 다룹니다.

  • 🔑 정의: 이것은 클래스의 현재 인스턴스를 참조합니다.
  • 🧱 충돌 해결: this.field를 사용하여 이름이 같은 인스턴스 변수와 매개변수를 구분하십시오.
  • 🪜 생성자 사용: this()는 더 깔끔한 초기화를 위해 동일 클래스의 다른 생성자를 호출합니다.
  • 패스 앤 리턴: 이 값을 인수로 보내거나 메서드 체이닝을 지원하기 위해 반환하세요.
  • 🧪 실제 예제: Account 클래스는 매개변수 섀도잉으로 인해 발생하는 출력값이 0이 되는 문제를 어떻게 해결하는지 보여줍니다.
  • 🤖 AI 지원: AI 코딩 도구는 누락된 this 접두사를 감지하고 정확한 리팩토링을 제안합니다.

이 키워드는 Java

이 키워드는 무엇입니까? Java?

The 이 키워드는 Java 메소드나 생성자의 현재 객체를 참조하는 참조 변수입니다. 이 키워드를 사용하는 주요 목적은 Java 클래스 속성과 매개변수가 같은 이름을 가질 때 발생하는 혼동을 없애기 위한 것입니다.

이 키워드의 사용 Java

다음은 이 키워드의 다양한 사용 예입니다. Java:

  • 현재 클래스의 인스턴스 변수를 참조하는 데 사용할 수 있습니다.
  • 현재 클래스의 생성자를 호출하거나 초기화하는 데 사용할 수 있습니다.
  • 메서드 호출 시 인수로 전달할 수 있습니다.
  • 생성자 호출 시 인수로 전달할 수 있습니다.
  • 현재 클래스 인스턴스를 반환하는 데 사용할 수 있습니다.

여기에서 확인하세요 비디오에 접근할 수 없는 경우

이 키워드를 예시를 통해 이해하는 방법

이 키워드는 Java
Java 이 키워드 예

  1. 클래스: 수업 계정
  2. 인스턴스 변수: a와 b
  3. 분석법 세트 데이터: a와 b의 값을 설정합니다.
  4. 방법 데이터 표시: a와 b의 값을 표시합니다.
  5. 주요 방법: 여기서는 Account 클래스의 객체를 생성하고 set data 및 show data 메서드를 호출합니다.

컴파일러의 혼란을 헤쳐나가기

코드를 컴파일하고 실행해 보겠습니다.

A와 B에 대한 예상 출력은 각각 값 2와 3으로 초기화되어야 합니다.

하지만 값은 0입니다. 왜 그럴까요? 함께 알아보겠습니다.

이 키워드는 Java

Set data 메서드에서 인수는 a와 b로 선언되고, 인스턴스 변수 또한 a와 b로 이름이 지정됩니다.

이 키워드는 Java

실행 중에 컴파일러는 할당 연산자 왼쪽에 있는 "a"가 인스턴스 변수인지 지역 변수인지 혼동합니다. 따라서 setData 메서드가 호출될 때 "a"에 값을 설정하지 않습니다.

이 키워드는 Java

해결책은 바로 이 키워드입니다.

"a"와 "b" 모두에 다음을 추가하세요. Java 이 키워드 뒤에 점(.) 연산자가 옵니다.

이 키워드는 Java

코드 실행 중에 객체가 setdata 메서드를 호출하면, this 키워드는 객체 핸들러인 "obj"로 대체됩니다. (아래 이미지를 참조하십시오.)

이 키워드는 Java

이제 컴파일러는 다음과 같은 사실을 알고 있습니다.

  • 왼쪽의 "a"는 인스턴스 변수입니다.
  • 반면 오른쪽의 "a"는 지역 변수입니다.

The 변수 올바르게 초기화되고 예상되는 출력이 표시됩니다.

이 키워드는 Java

컴파일러는 여러 객체를 어떻게 처리하는가?

인스턴스 변수와 메서드 인수에 서로 다른 이름을 선택했다고 가정해 봅시다.

이 키워드는 Java

하지만 이번에는 클래스의 객체 두 개를 생성하고 각각 데이터 설정 메서드를 호출합니다.

컴파일러는 객체 1의 인스턴스 변수를 사용해야 하는지, 아니면 객체 2의 인스턴스 변수를 사용해야 하는지를 어떻게 판단할까요?

이 키워드는 Java

음, 컴파일러는 암시적으로 추가합니다. this 키워드를 사용하는 인스턴스 변수(아래 이미지 참조).

이 키워드는 Java

따라서 객체 1이 데이터 설정 메서드를 호출할 때 인스턴스 변수에 참조 변수가 추가됩니다.

이 키워드는 Java

객체 2가 데이터 설정 메서드를 호출하는 동안 객체 2의 인스턴스 변수가 수정됩니다.

이 키워드는 Java

컴파일러가 이를 자동으로 처리합니다. 특별한 상황이 아닌 이상 this 키워드를 명시적으로 추가할 필요가 없습니다.

예시: 이 키워드는 Java 와 Code

예: 이 키워드의 사용법을 배우려면.

단계 1) 다음 코드를 메모장에 복사하세요.

class Account{
int a;
int b;

 public void setData(int a ,int b){
  a = a;
  b = b;
 }
 public void showData(){
   System.out.println("Value of A ="+a);
   System.out.println("Value of B ="+b);
 }
 public static void main(String args[]){
   Account obj = new Account();
   obj.setData(2,3);
   obj.showData();
 }
}

단계 2) 코드를 저장하고 컴파일한 다음 실행하세요.

단계 3) a와 b의 값이 0으로 표시되나요? 오류를 수정하려면 6번 줄과 7번 줄에 다음 내용을 추가하세요. 예어.

this.a =a;
this.b =b;

단계 4) 코드를 저장, 컴파일, 실행하세요. 이번에는 a와 b의 값이 각각 2와 3으로 설정됩니다.

자주 묻는 질문

`this` 키워드는 메서드나 생성자가 실행 중인 현재 객체를 가리킵니다. 이를 통해 코드는 해당 객체의 인스턴스 필드와 메서드에 접근할 수 있습니다.

아니요. `this` 키워드는 인스턴스에 속하고, 정적 메서드는 클래스 수준에 존재합니다. 정적 메서드 내에서 `this`를 사용하면 컴파일 오류가 발생합니다.

`this()`는 첫 번째 문장과 동일한 클래스의 다른 생성자를 호출합니다. 이렇게 하면 코드 중복을 방지하고 하나의 생성자가 오버로드된 생성자에게 설정 작업을 위임할 수 있습니다.

AI 코딩 도우미는 숨겨진 매개변수를 표시하고, 누락된 this 접두사를 추가하며, 생성자를 this() 체이닝과 this를 반환하는 유연한 setter를 사용하도록 다시 작성합니다.

AI 튜터는 객체 식별을 설명하고, 인스턴스 범위와 로컬 범위의 차이를 보여주며, `this` 키워드를 언제 사용해야 하는지 강화하는 퀴즈와 함께 단계별 예제를 제공합니다.

우리의 기사를 확인하십시오 Java 인터뷰 질문:- 더 알아보기

이 게시물을 요약하면 다음과 같습니다.