개발/Java

[Java / 자바] this 키워드

막막이 2021. 3. 14. 19:52
반응형

This

사람을 정의하는 클래스를 하나 만들어 보겠습니다.

 

public class PersonClass {
    String name;
    int age;

    public PersonClass(String s) {
        name = s;
    }
}

 

생성자에 매개변수 s를 받습니다. 그런데 s는 무엇을 의미하는지 알수 없습니다. 변수명은 다른사람이 보기좋게 만드는 편이 좋습니다. 이 생성자는 생성시에 사람의 이름을 받게 하기 위한 생성자임으로 "name"이라는 이름으로 바꾸겠습니다.

 

public class PersonClass {
    String name;
    int age;

    public PersonClass(String name) {
        name = name;
    }
}

 

바꾸면 무언가 찜찜합니다. name = name ..? 원래 목표는 매개변수 name을 Person클래스의 name 필드에 넣으려는 것입니다. 이대로 main 함수를 만들어서 Person클래스의 이름을 찍으면 null이 출력됩니다. 이는 매개변수 name에 name을 넣은것이고, 필드인 name은 아무런 값도 들어가지 않아서 생기는 문제입니다. 이 때, 클래스의 name이라고 알려주는  키워드가 this 입니다. 코드를 한번 수정해 보겠습니다. 

 

public class PersonClass {
    String name;
    int age;

    public PersonClass(String name) {
        this.name = name;
    }
}

 

this가 가지는 의미는 "내가 가지는 요소" 입니다. 내 필드 "name"에 매개변수 name을 담겠다는 의미로 사용되었습니다.이러면 person 클래스를 인스턴스화 해서 name을 출력해보면 아무 문제없이 내가 넣은 값이 출력됩니다.

728x90
반응형