Java에서 'this' 키워드 마스터하기.
6255 단어 codenewbiewebdevjava
class Example{
int a;
Example(int a){
this.a=a;
}
public static void main(String args[]){
Example obj=new Example("John Doe");
}
}
그러나 이 키워드를 효율적으로 사용할 수 있는 다른 많은 경우가 있습니다. 지금 살펴보겠습니다.🤩
1. 이 키워드를 사용하여 클래스와 인스턴스 변수 간의 혼동을 제거합니다.
클래스에 선언된 변수와 메서드/생성자가 같은 이름을 공유하는 경우 이 키워드를 사용하여 클래스 인스턴스를 참조합니다.
설명: 아래 코드에서 볼 수 있듯이 2개의 전역 변수를
place
및 pin
로 선언했으며 동일한 변수 이름이 생성자 매개 변수에도 사용됩니다. 따라서 이것을 사용하여 생성자 변수에 대해 전달하는 인수가 전역 변수에 대한 것임을 프로그램에 알립니다. 따라서 meth()
에 핀과 배치를 인쇄하려고 하면 개체 생성 중에 전달한 값이 인쇄됩니다.public class Example{
String place;
int pin;
One(String place,int pin){
this.pin=pin;
this.place=place;
}
void meth(){
System.out.println(place+" "+pin);
}
public static void main(String args[]){
Example obj=new Example("chennai",603103);
obj.meth();
}
}
Output: chennai 603103
2. 이 키워드는 같은 클래스의 다른 생성자를 호출하는 데 사용됩니다.
여기에서는 이것을 사용하여 기본 생성자 내에서 매개 변수화된 생성자를 호출합니다.
public class Example {
Two(int a,int b){
System.out.println("Parameterized Constructor");
}
Two(){
this(25,32);
System.out.println("Default Constructor");
}
public static void main(String args[]){
Example obj= new Example();
}
}
Output: Parameterized Constructor
Default Constructor
3. 생성자 연결
같은 클래스의 다른 생성자에서 하나의 생성자를 호출하는 과정입니다. 이 개념의 아이디어는 이전 단계에서 이미 다루었지만 이제 더 명확하게 살펴보겠습니다.
설명: 명확하게 이해하기 위해 아래 코드에서 생성자를 숫자로 주석 처리했습니다. 이제 객체가 생성될 때 생성자-1이 호출되어 생성자-2로 연결됩니다
this()
. 따라서 생성자-2는 생성자-3을 호출하기 위해 this()
를 사용합니다. 따라서 실행 순서는 생성자 3,2,1이 됩니다.public class Example {
/*1*/ Example(){
this(10,"laasya");
System.out.println("Constructor 1");
}
/*2*/ Example(int a,String s){
this(10);
System.out.println("Constructor 2");
}
/*3*/ Example(int a){
System.out.println("Constructor 3");
}
public static void main(String args[]){
new Example();
}
}
Output: Constructor 3
Constructor 2
Constructor 1
4. 이것을 사용하여 현재 클래스 메서드를 호출합니다.
설명: 여기에서 우리는 이것을 사용하여 한 메소드에서 다른 메소드를 호출합니다.
this.check()
를 쓰는 대신 완전히 잘 작동하는 check()
를 사용할 수 있습니다. 그러나 장기적으로 코드 가독성을 보장하므로 이를 사용하는 것이 좋습니다.public class Example{
void check(){
System.out.println("This method is called from another method");
}
void checkTwo(){
check();
System.out.println("I called another method");
}
public static void main(String args[]){
Example obj=new Example();
obj.checkTwo();
}
}
output: This method is called from another method
I called another method
5. 이 키워드를 메서드 인수로 전달
설명: 아래 예제에서는 클래스 객체를 매개변수로 가지는 선언
methodOne()
을 했습니다. 따라서 methodOne()
를 호출하는 동안 개체 생성 중에 생성자에 전달된 'a' 값을 인쇄하는 인수로 전달할 수 있습니다.public class Example {
int a;
Example(int b){
a=b;
}
void methodOne(Example object){
System.out.println("I was called by using this keyword as arg "+a);
}
void methodTwo(){
methodOne(this);
}
public static void main(String args[]){
Example obj= new Example(20);
obj.methodTwo();
}
}
Output: I was called by using this keyword as arg 20
6. 이 키워드를 사용하여 현재 클래스 개체를 반환합니다.
설명: 아래 코드에서 class-name으로 정의된
meth()
메서드를 호출하면 현재 클래스 인스턴스를 반환합니다. meth()
가 반환되지만 인쇄되지 않습니다. 따라서 값을 인쇄하려면 display()
를 사용합니다.public class Example {
int age;
Example(){
age =20;
}
Example meth(){
return this;
}
void display(){
System.out.println(age);
}
public static void main(String args[]){
Example obj=new Example();
obj.meth().display();
}
}
Output: 20
7. 이 키워드를 생성자 인수로 사용
설명: 아래 예제에는 2개의 클래스 A와 T가 있습니다. A의 새 객체가 생성되면 A의 기본 생성자는 이를 인수로 전달하는 클래스 T의 새 객체를 생성합니다. 이제 T의 기본 생성자는 우리가 했던 것처럼 객체 A의 세부 정보를 객체 T에 저장합니다
this.obj=obj
. 따라서 `display()'를 호출하면 클래스 A에서 생성된 변수의 값을 가져와서 출력합니다. public class A{
int age=10;
A(){
T t=new T(this);
t.display();
}
class T {
A obj;
T(A obj){
this.obj=obj;
}
void display(){
System.out.println(obj.age);
}
}
public static void main(String args[]){
new A();
}
}
Output: 10
그게 다야😍. 기사의 끝에 도달했습니다.
행복한 자바인 여러분🤗
끝까지 읽어주셔서 감사합니다. , , Github을(를) 통해 여러분과 연결하고 싶습니다.😍
Reference
이 문제에 관하여(Java에서 'this' 키워드 마스터하기.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/laasyasetty/mastering-this-keyword-in-java-4jao텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)