본문 바로가기
Web Programming

this와 this()의 차이점과 사용 방법

by hyeon'H 2023. 12. 10.
반응형

this와 this()

this와 this() 키워드는 객체 지향 프로그래밍에서 객체의 멤버 변수와 메서드에 접근하고,
생성자 간의 호출 관계를 유지하는 데 사용되는 키워드입니다.
this는 객체 자신을 참조하며 멤버 변수와 메서드에 접근하는 데 사용되고,
this()는 생성자 간이 호출을 담당하여 객체의 초기화를 수행합니다.


this

this는 객체 자신을 참조하는 키워드입니다.
객체 내부에서 this를 사용하여 현재 객체의 멤버 변수와 메서드에 접근할 수 있습니다.
멤버 변수와 메서드의 이름이 같을 때, this를 사용하여 멤버 변수임을 명시할 수 있습니다.
this를 사용하여 멤버 변수에 값을 할당하거나 반환할 수 있습니다.

this()

this()는 현재 객체의 다른 생성자를 호출하는 키워드입니다.
생성자 내에서 this()를 사용하여 같은 클래스 내의 다른 생성자를 호출할 수 있습니다.
생성자 오버로딩을 통해 다양한 매개변수를 가진 생성자를 정의하고, this를 사용하여 다른 생성자를 호출하여 코드의 중복을 줄일 수 있습니다.
this(를 사용하여 다른 생성자를 호출할 때는 해당 클래스의 생성자가 가장 먼저 실행되어야 하며,
생성자 내에서 다른 생성자를 호출하는 코드는 철 번째 문장이어야 합니다.

1. 멤버 변수와 지역 변수의 구분

객체의 멤버 변수와 메서드의 매개변수, 지역 변수의 이름이 같을 때 this를 사용하여 멤버 변수임을 명시할 수 있습니다.
this를 사용하면 현재 객체의 멤버 변수에 접근할 수 있습니다.
예를 들어, 아래와 같이 멤버 변수와 메서드의 매개변수 이름이 같을 때 this를 사용하여 구분할 수 있습니다.

public class Person{
	private String name;

	public void setName(String name){
		this.name = name; //this를 사용하여 멤버 변수 name에 접근
	}
}

 

 

2. 생성자 호출

생성자 내에서 다른 생성자를 호출할 때 this를 사용할 수 있습니다. 
this()를 사용하여 같은 클래스 내의 다른 생성자를 호출할 수 있습니다.
이를 통해 코드의 중복을 줄이고 생성자 간의 호출 관계를 유지할 수 있습니다.
예를 들어, 다음과 같이 생성장 오버로딩을 통해 this()를 사용하여 다른 생성자를 호출할 수 있습니다.

public class Person{
    private String name;
    private int age;

    public Person(){
   	 this("이름없음",0);//다른 생성자 호출
    }
    public Person(String name){
   	 this(name,0);// 다른 생성자 호출
    }
    public Person(String name, int age){
   	 this.name = name;
   	 this.age = age;
    }
}

this()를 사용하여 다른 생성자를 호출할 때는 해당 클래스의 생성자가 가장 먼저 실행되어야 하며,
생성자 내에서 다른 생성자를 호출하는 코드는 첫 번째 문장이어야 합니다.

이렇게 this는 객체 자신을 참조하거나 생성자를 호출하는 데 사용되는 키워드입니다.
객체 내부에서 멤버 변수와 메서드의 접근을 명확하게 하거나 생상자 간의 호출 관계를 유지하는 데 유용하게 활용됩니다.

 

반응형