Java에 있는 this와 this() 키워드는 다른 키워드이다.
this : 인스턴스 자신을 가르키는 참조 변수
this() : 생성자
생성자의 매개변수로 선언된 변수의 이름이 인스턴스 변수와 같을 때 인스턴스 변수와 지역변수를 구분하기 위해서 사용
즉, 인스턴스가 바로 자기 자신을 참조하는 데 사용하는 변수
this 참조 변수는 해당 인스턴스의 주소를 가리키고 있다.
public class Person {
private String name;
private int age;
private String sex;
public Person (String name, int age, String sex){
this.name = name;
this.age = age;
this.sex = sex;
}
}
Person() 생성자 안에서 this.name은 인스턴스 변수이고, name은 매개변수로 정의된 지역변수이다.
this 참조 변수를 사용하여 인스턴수 변수가 접근 가능
단, 인스턴스 메소드에서만 사용 가능하며, 클래스 메소드에서는 사용할 수 없다.
* static 메서드에서는 this를 사용하지 못한다.
생성자 내부에서만 사용 가능
같은 클래스의 다른 생성자를 호출할 때 사용한다.
내부적으로 다른 생성자를 호출하여 인스턴스 변수를 초기화할 수 있다.
단, 한 생성자에서 다른 생성자를 호출할 때에는 반드시 해당 생성자의 첫 줄에서만 호출할 수 있다.
public class Person {
private String name;
private int age;
private String sex;
public Person() {
this("seb", 24, "female");
}
public Person(String name) {
this(name, 24, "female");
}
public Person (String name, int age, String sex){
this.name = name;
this.age = age;
this.sex = sex;
}
}
Person() 생성자와 Person(String name) 생성자는 this()를 통해 모두 Person(String name, int age, String sex) 생성자를 호출
[Spring/Java] 스프링의 의존성 주입 방식 (DI) (0) | 2024.04.04 |
---|---|
[객체 지향 프로그래밍] 소프트웨어 설계를 위한 다섯 가지 기본 원칙 : SOLID 원칙 (0) | 2024.04.04 |
[Java] super, super() 키워드 차이 (1) | 2024.04.04 |
[Java] final, static, static final (0) | 2024.04.04 |
[Java] Java의 Generic 타입 (0) | 2024.04.03 |
댓글 영역