개발/Java
[자바/JAVA] this
poongho
2021. 6. 24. 10:02
반응형
1. this란
- this는 자기 자신을 의미하는 키워드
- 필드(전역변수)와 메서드or생성자의 매개변수가 동일할때 인스턴스 필드임을 명시하기 위해 사용한다.
2. this 특징
- 전역변수(인스턴스 필드)와 지역변수(매개변수) 구분
class Student{
String name; // 인스턴스 필드(전역변수)
int age;
Student(String name, int age){
this.name = name; // this.name는 인스턴스 필드 / name는 매개변수를 의미
this.age = age; // this.name는 인스턴스 필드 / name는 매개변수를 의미
}
}
- static 메서드에서는 this를 사용하지 못한다.
- 인스턴스 멤버(메소드, 필드)는 인스턴스를 생성해야지만 사용이 가능하다.(클래스멤버와의 차이점)
- 매개변수와 필드의 변수명이 다른 경우 굳이 this를 쓰지 않아도 된다.
3. this와 this()의 차이점
class Student{
String name; // 인스턴스 필드(전역변수)
int age;
Student(){
this("철수", 4); // Student(String name, int age) 생성자를 호출
}
Student(String name){
this(name, 4); // Student(String name, int age) 생성자를 호출
}
Student(String name, int age){
this.name = name;
this.age = age;
}
}
- this()는 같은 클래스의 다른 생성자를 호출할 때 사용하는 키워드
- 생성자 오버로딩시에 this()를 이용한 중복코드 제거 가능
4. this를 사용하는 이유
- 소스가 복잡해지고 방대해지면, 변수를 관리하기 힘들고, 필드와 매개변수를 동일하게 정의하여 this로 구분하는 것이
직관적이고 편리하다.