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