this
Dart에서 this
키워드는 현재 객체를 참조하는 데 사용됩니다. 이는 클래스의 인스턴스 메서드와 생성자 내부에서 현재 객체의 속성과 메서드에 접근하기 위해 주로 사용됩니다.
this
를 사용하여 인스턴스 변수를 참조할 수 있습니다.this
를 사용하여 인스턴스 변수를 초기화합니다.this
를 반환하여 연속적으로 메서드를 호출할 수 있게 합니다.class Person {
String name;
int age;
// 생성자
Person(String name, int age) {
this.name = name; // 현재 객체의 인스턴스 변수 접근
this.age = age; // 현재 객체의 인스턴스 변수 접근
}
void printInfo() {
print('Name: ${this.name}, Age: ${this.age}'); // 현재 객체의 인스턴스 변수 접근
}
}
void main() {
Person person = Person('Alice', 30); // 새로운 Person 객체 생성
person.printInfo(); // Name: Alice, Age: 30
}
class Counter {
int value = 0;
Counter increment() {
this.value += 1;
return this; // 현재 객체를 반환하여 메서드 체이닝 가능
}
void printValue() {
print('Value: $value');
}
}
void main() {
Counter counter = Counter();
counter.increment().increment().increment().printValue(); // Value: 3
}
this
사용 불가: 정적 메서드는 클래스 자체에서 호출되므로 this
를 사용할 수 없습니다. 정적 메서드 내에서는 인스턴스 변수를 직접 참조할 수 없기 때문에 this
를 사용할 수 없습니다.this
: 하위 클래스에서 this
를 사용하면 여전히 현재 객체를 참조합니다. 상위 클래스의 메서드를 호출할 때는 super
키워드를 사용합니다.