this

기록하는 용도·2022년 6월 9일
0
public class Person {
	private String name;
    
    public void setName(String pName){
    	name = pName;
    }
    
    public String getName(){
    	return name;
    }
}

setName 메서드는 pName을 파라미터로 받는다.
그 값을 인스턴스 변수 name에 저장해준다.

그런데 만약 파라미터 이름을 pName이 아니라 name으로 짓는다면?

public class Person {
	private String name;
    
    public void setName(String name){
    	name = name;
    }
    
    public String getName() {
    	return name;
    }
}

이 변수를 자바는 인스턴스 name으로 인식하지않고 파라미터 name으로 인식하게된다.
파라미터 name에 그 값을 넣어버려 의미없는 코드가 된다.

이 상황에서 인스턴스 변수를 가르키고 싶다면?
this키워드를 사용하면된다.

this는 메소드에서 현재 인스턴스를 가리키는 역할을 한다.

public class Person {
	private String name;
    
    public void setName(String name){
    	this.name = name;
    }
    
    public String getName(){
    	return name;
    }

this.name은 파라미터 변수가 아니라 인스턴스 변수 name을 가르킨다.

public class BankDriver {
	public static void main(String[] args) {
    	Person p1 = new Person();
        p1.setName("김신의");
    }
}

0개의 댓글