public class This {
public static void main(String[] args){
Person p1 = new Person(“홍길동”, 20);
// 새로운 객체를 만들고 그 객체의 리모컨을 p1이라는 변수에 담는다.
// 객체에 있는 생성자로 인해 새로운 객체를 만든 ()에 인자를 넣는다.
// 입력된 인자는 객체의 생성자의 매개변수를 통해서 들어간다.
// 결과 : 안녕하세요. 20살 홍길동입니다.
}
}
public class Person{
// 객체와 관련된 정보를 담는 변수 선언
int age ;
String name;
// 객체와 관련된 생성자 생성
public Person(int age, String name){
// 보통 매개변수의 명은 정보값을 받을 때 객체의 변수와 같다면, 객체변수에 입력되어 있는 변수명을 사용한다.
this.age = age;
this.name = name;
// 매개변수에 설정되어 있는 이름과 객체의 매게변수의 이름과 같을 때 보통 본인 영역에 있는 변수명을 먼저 사용하게 된다.
// 만약 this가 없다면 name은 매개변수의 이름으로 인삭하여 에러가 났을 것이다.
// 하위 영역의 매개변수과, 상위 영역의 변수명의 충돌을 피하기 위해 영역의 다른 변수를 this.를 사용해서 구분해준다
}
}
결론 : 하위 영역에서 매서드외에 상위 영역의 변수를 사용하고 구분하고 싶을 때 this.를 사용해 상위 영역의 변수와의 충돌을 막는다.