java this keyword tutorial with code examples
이 자습서에서는 간단한 코드 예제를 통해 Java의 특수 키워드 'this'에 대해 자세히 설명합니다. 'this'키워드를 사용하는 방법,시기 및 위치를 다룹니다.
이 자습서에서는 Java의 중요한 개념 중 하나 인 'this'키워드를 소개했습니다. 'this'키워드에 대한 자세한 내용을 살펴보고 Java에서 사용하는 몇 가지 예도 제시합니다.
Java에서 'this'키워드는 참조 변수입니다. 참조 변수 'this'는 Java 프로그램의 현재 객체를 가리 킵니다. . 따라서 현재 객체의 멤버 나 기능에 액세스하려면 'this'참조를 사용하면됩니다.
배열 자바에 요소 추가
학습 내용 :
Java‘this’소개
참조 'this'는 현재 개체를 가리 키므로 일반적으로 'this pointer'라고합니다. '이 포인터'는 클래스 속성 및 매개 변수에 대한 이름이있을 때 유용합니다. 이러한 상황이 발생하면 'this'포인터를 사용하여 매개 변수에 액세스 할 수 있으므로 'this pointer'가 혼동을 없애줍니다.
이 튜토리얼에서는 다양한 상황에서 'this'포인터의 사용법을 예제와 함께 설명합니다.
Java에서 'this'를 언제 사용합니까?
Java에서 'this'라는 용어는 다음과 같이 사용됩니다.
- 참조 'this'는 클래스 인스턴스 변수에 액세스하는 데 사용됩니다.
- 메서드 호출에서 'this'를 인수로 전달할 수도 있습니다.
- 'this'는 현재 클래스 메서드를 암시 적으로 호출하는데도 사용할 수 있습니다.
- 메서드에서 현재 개체를 반환하려면 'this'를 사용합니다.
- 현재 클래스 생성자를 호출하려면 'this'를 사용할 수 있습니다.
- 생성자는 'this'를 인수로 가질 수도 있습니다.
이제 이러한 각 용도를 개별적으로 살펴 보겠습니다.
'this'를 사용하여 인스턴스 변수에 액세스
클래스 및 메소드 매개 변수의 인스턴스 변수는 동일한 이름을 가질 수 있습니다. 'this'포인터를 사용하여 이로 인해 발생하는 모호성을 제거 할 수 있습니다.
아래의 Java 프로그램은 'this'를 사용하여 인스턴스 변수에 액세스하는 방법을 보여줍니다.
class this_Test { int val1; int val2; // Parameterized constructor this_Test(int val1, int val2) { this.val1 = val1 + val1; this.val2 = val2 + val2; } void display() { System.out.println('Value val1 = ' + val1 + ' Value val2 = ' + val2); } } class Main{ public static void main(String() args) { this_Test object = new this_Test(5,10); object.display(); } }
산출:
위의 프로그램에서 인스턴스 변수와 메소드 매개 변수가 동일한 이름을 공유 함을 알 수 있습니다. 인스턴스 변수와 메서드 매개 변수를 구별하기 위해 인스턴스 변수와 함께 'this'포인터를 사용합니다.
메소드 매개 변수로 전달 된‘this’
이 포인터를 메서드 매개 변수로 전달할 수도 있습니다. 이 포인터를 메서드 매개 변수로 전달하는 것은 일반적으로 이벤트를 처리 할 때 필요합니다. 예를 들어, 현재 개체 / 핸들에서 일부 이벤트를 트리거하려는 경우이 포인터를 사용하여 트리거해야합니다.
다음은이 포인터를 메서드에 전달한 프로그래밍 전시입니다.
class Test_method { int val1; int val2; Test_method() { val1 = 10; val2 = 20; } void printVal(Test_method obj) { System.out.println('val1 = ' + obj.val1 + ' val2 = ' + obj.val2); } void get() { printVal(this); } } class Main{ public static void main(String() args) { Test_method object = new Test_method(); object.get(); } }
산출:
이 프로그램에서 우리는 메인 함수에 Test_method 클래스의 객체를 생성하고이 객체로 get () 메소드를 호출합니다. get () 메서드 내에서 'this'포인터는 현재 인스턴스 변수를 표시하는 printVal () 메서드에 전달됩니다.
'this'를 사용하여 현재 클래스 메서드 호출
메소드에 'this'포인터를 전달할 수있는 것처럼이 포인터를 사용하여 메소드를 호출 할 수도 있습니다. 현재 클래스의 메서드를 호출하는 동안이 포인터를 포함하는 것을 잊은 경우 컴파일러가이를 추가합니다.
다음은 'this'로 클래스 메소드를 호출하는 예입니다.
class Test_this { void print() { // calling fuctionshow() this.show(); System.out.println('Test_this:: print'); } void show() { System.out.println('Test_this::show'); } } class Main{ public static void main(String args()) { Test_this t1 = new Test_this(); t1.print(); } }
산출:
이 프로그램에서 print () 클래스 메소드는 main 함수의 클래스 객체에 의해 호출 될 때이 포인터를 사용하여 show () 메소드를 호출합니다.
애니메이션을 온라인으로 볼 수있는 최고의 웹 사이트
'this'로 반환
메서드의 반환 유형이 현재 클래스의 객체 인 경우 편리하게 'this'포인터를 반환 할 수 있습니다. 즉, 'this'포인터를 사용하여 메서드에서 현재 개체를 반환 할 수 있습니다.
다음은 'this'포인터를 사용하여 객체를 반환하는 구현입니다.
class Test_this { int val_a; int val_b; //Default constructor Test_this() { val_a = 10; val_b = 20; } Test_this get() { return this; } void display() { System.out.println('val_a = ' + val_a + ' val_b = ' + val_b); } } class Main{ public static void main(String() args) { Test_this object = new Test_this(); object.get().display(); } }
산출:
위 프로그램은 Test_this 클래스의 객체 인 this를 반환하는 get () 메소드를 보여줍니다. get () 메서드에서 반환 된 현재 객체를 사용하여 메서드 디스플레이가 차례로 호출됩니다.
'this'를 사용하여 현재 클래스 생성자 호출
'this'포인터를 사용하여 현재 cla.ss의 생성자를 호출 할 수도 있습니다. 기본 아이디어는 생성자를 재사용하는 것입니다. 다시 한 번 클래스에 생성자가 두 개 이상있는 경우 이러한 생성자를 서로 호출하여 생성자 체인을 생성 할 수 있습니다.
다음 Java 프로그램을 고려하십시오.
class This_construct { int val1; int val2; //Default constructor This_construct() { this(10, 20); System.out.println('Default constructor
'); } //Parameterized constructor This_construct(int val1, int val2) { this.val1 = val1; this.val2 = val2; System.out.println('Parameterized constructor'); } } class Main{ public static void main(String() args) { This_construct object = new This_construct(); } }
산출:
위의 프로그램에서는 클래스에 두 개의 생성자가 있습니다. 클래스의 기본 생성자에서 'this'포인터를 사용하여 다른 생성자를 호출합니다.
생성자에 대한 인수로 'this'사용
생성자에 대한 인수로 'this'포인터를 전달할 수도 있습니다. 이는 다음 구현에 표시된 것처럼 여러 클래스가있는 경우 더 유용합니다.
class Static_A { Static_B obj; Static_A(Static_B obj) { this.obj = obj; obj.display(); } } class Static_B { int x = 10; Static_B() { Static_A obj = new Static_A(this); } void display() { System.out.println('B::x = ' + x); } } class Main{ public static void main(String() args) { Static_B obj = new Static_B(); } }
산출:
위의 구현에서 볼 수 있듯이 두 개의 클래스가 있으며 각 클래스 생성자는 다른 클래스의 생성자를 호출합니다. 이 목적을 위해 'this'포인터가 사용됩니다.
자주 묻는 질문
Q # 1) Java에서 this와 this ()의 차이점은 무엇입니까?
대답: Java에서 이것은 현재 객체를 참조하고이 ()는 일치하는 매개 변수가있는 생성자를 참조합니다. 키워드‘this’는 개체에만 적용됩니다. 'this ()'호출은 동일한 클래스에서 둘 이상의 생성자를 호출하는 데 사용됩니다.
Q # 2) 자바에서이 키워드가 필요합니까?
대답: 특히 한 메서드에서 다른 메서드로 또는 생성자간에 현재 개체를 전달하거나 단순히 다른 작업에 현재 개체를 사용해야 할 때 필요합니다.
Q # 3) 자바에서이 ()와 슈퍼 ()의 차이점은 무엇입니까?
대답: 이 ()와 super ()는 모두 Java의 키워드입니다. 이 ()는 일치하는 매개 변수가있는 현재 개체의 생성자를 나타내지 만 super ()는 부모 클래스의 생성자를 나타냅니다.
Q # 4) 생성자에서이 ()와 슈퍼 ()를 모두 사용할 수 있습니까?
대답: 예, 사용할 수 있습니다. 생성자 this ()는 현재 생성자를 가리키고 super ()는 부모 클래스 생성자를 가리 킵니다. 이 ()와 슈퍼 ()가 모두 첫 번째 문장이어야한다는 것을 기억하십시오.
결론
키워드‘this’는 Java 프로그램의 현재 개체에 대한 참조입니다. 클래스 변수 (인스턴스 변수) 및 메서드 매개 변수에 대해 동일한 이름으로 인해 발생하는 혼동을 피하기 위해 사용할 수 있습니다.
인스턴스 변수 액세스, 메소드 또는 생성자에 인수 전달, 객체 반환 등과 같은 다양한 방법으로 'this'포인터를 사용할 수 있습니다. 'this'포인터는 Java에서 중요한 키워드이며 현재 객체에 액세스하는 데 유용한 기능입니다. 그 구성원과 기능.
이 자습서의 Java에서 'this'키워드 사용법을 따랐기를 바랍니다.