반응형
맨 처음에 자바를 공부하게 되었을 때 this 라는 키워드는 어렵게 느껴졌었다.
하지만 자바에서 중요한 역할을 하게 되어 자주 사용하게 되었으며, 주로 동일한 이름의 변수와 메소드를 구분하기 위해 생성자와 함께 사용하게 된다.
다시 한 번 예제 코드와 함께 알아보도록 하자.
▷ this
this는 " 이 클래스의 ..." 라는 의미를 가지고 있으며, 방금 말한대로 동일한 이름의 변수를 구분하게 해준다.
변수 이름은 중복해서 사용할 수 없지만 this를 이용하여 변수를 구분할 수 있다??
우선 말보다는 코드를 직접보고 확인해보자.
public class Car {
String model;
int year;
// 생성자
public Car(String model, int year) {
this.model = model; // this.model은 인스턴스 변수, model은 매개변수
this.year = year; // this.year은 인스턴스 변수, year은 매개변수
}
}
위 처럼 같은 변수 이름인 model과 year이 있지만 서로 인스턴스 변수와 매개변수라는 차이점이 있다.
this라는 키워드를 사용함으로써 두 변수를 구분할 수 있다.
또한 현재 객체 자신을 참조하는데 사용된다.
public class Car {
private String color;
public Car setColor(String color) {
this.color = color;
return this; // this 키워드가 현재 객체를 참조한다.
}
public void printColor() {
System.out.println("Car color: " + this.color);
}
}
public class Main {
public static void main(String[] args) {
Car myCar = new Car();
myCar.setColor("Green").printColor();
}
}
실행 결과
Car color: Green
마지막으로 this 키워드가 동일 클래스 내에서 다른 생성자를 호출하는데 사용할 수 있다.
public class Car {
private String color;
private String model;
public Car(String color) { // 1개의 매개변수를 받는 생성자
this(color, "Grandeur"); // 1개의 매개변수를 받아들이고 1개의 기본 값 추가
// 여기 this는 2개의 매개변수를 받는 생성자를 호출
}
public Car(String color, String model) { // 2개의 매개변수를 받는 생성자
this.color = color;
this.model = model;
// 이 생성자는 3개의 매개변수를 받아들여 초기값을 설정.
// 이런 방식으로 생성자를 사용하면 기본 값을 설정해놓고
// 수정이 필요한 값만 매개변수로 넘겨 초기값을 설정할 수 있는 장점을 갖음.
}
public void printDetails() {
System.out.println("Car color: " + this.color + ", model: " + this.model);
}
}
public class Main {
public static void main(String[] args) {
Car car1 = new Car("Blue");
car2.printDetails();
Car car2 = new Car("Red", "Sedan");
car3.printDetails();
}
}
실행 결과
Car color: Blue, model: Grandeur
Car color: Red, model: Sedan
이렇게 this는 객체를 참조하는 강력한 키워드이다. this를 이용하여 인스턴스 변수와 매개 변수를 구분할 수 있다.
적절한 코드에서 this를 이용한다면 효율적이고 가독성이 높은 코드를 작성할 수 있다.
반응형
'언어 공부하기 > JAVA 개념' 카테고리의 다른 글
[Java 자바] 상속(Inheritance)에 빠르고 쉽게 알아보기 : 기본 개념부터 코드까지 (자바 상속) (0) | 2024.08.06 |
---|---|
[Java 자바] 배열(Arrays)에 대한 모든 것 : 기본 개념부터 코드까지 (자바 Arrays) (0) | 2024.07.30 |
[Java 자바] 생성자 키워드 사용하는 이유란? 생성자에 대해 알아보자 (자바 생성자) (0) | 2024.07.23 |
[Java 자바] static 키워드 사용하는 이유란? static에 대해 알아보자 (Static) (0) | 2024.07.22 |
[Java 자바] 객체와 인스턴스의 개념 알아보기 (Object, instance) (0) | 2024.07.09 |