반응형

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로 구분하는 것이

   직관적이고 편리하다.

'개발 > Java' 카테고리의 다른 글

String, StringBuilder, StringBuffer  (0) 2022.12.13
[Java] Garbage Collection(가비지 컬렉션)  (2) 2022.12.02
equals()  (0) 2022.11.30
[자바/JAVA] 정적 변수와 메서드 (static)  (0) 2021.06.25
[자바/JAVA] 생성자와 초기화  (0) 2021.06.23

+ Recent posts