this 키워드
Coddy Java 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 87개 중 4번째.
this 키워드는 클래스의 현재 인스턴스를 가리킵니다. 이것은 이름이 같은 필드와 매개변수를 구분합니다.
this가 없으면 매개변수가 필드를 가리게 됩니다.
public class Person {
private String name;
public Person(String name) {
name = name; // 매개변수를 자기 자신에게 할당합니다!
}
}this를 사용하여 값을 올바르게 할당하기
public class Person {
private String name;
public Person(String name) {
this.name = name; // 매개변수를 필드에 할당합니다
}
public String getName() {
return this.name;
}
}메서드에서 this 사용하기
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getDescription() {
return this.name + " is " + this.age + " years old";
}
}this 키워드는 항상 현재 객체를 가리킵니다. 매개변수 이름이 필드 이름과 일치할 때 필수적이며, 혼동과 버그를 방지합니다.
챌린지
중급필드와 매개변수를 구분하기 위해 this 키워드를 사용하여 Person 클래스를 완성하세요:
- 매개변수를 필드에 할당하기 위해
this를 사용하는 생성자 - 필드에 접근하기 위해
this를 사용하는 Getter 메서드들 "<name>, age <age>, from <city>"를 반환하는getDescription()메서드
치트 시트
this 키워드는 클래스의 현재 인스턴스를 참조하며, 이름이 같은 필드와 매개변수를 구분합니다.
this가 없으면 매개변수가 필드를 가리게(shadow) 됩니다:
public Person(String name) {
name = name; // 매개변수를 자기 자신에게 할당합니다!
}this를 사용하여 값을 올바르게 할당하는 방법:
public Person(String name) {
this.name = name; // 매개변수를 필드에 할당합니다
}getter 메서드에서 this 사용하기:
public String getName() {
return this.name;
}여러 필드와 함께 this 사용하기:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getDescription() {
return this.name + " is " + this.age + " years old";
}
}직접 해보기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = Integer.parseInt(scanner.nextLine());
String city = scanner.nextLine();
Person person = new Person(name, age, city);
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
System.out.println("City: " + person.getCity());
System.out.println(person.getDescription());
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
객체 지향 프로그래밍의 모든 레슨
4상속
상속의 기초 (extends)super 키워드메서드 오버라이딩 (@Override)생성자 체이닝Object 클래스단일 및 다중 레벨 상속다중 클래스 상속이 불가능한 이유요약 - 직원 계층 구조