클래스 안에서 this 를 사용해서 "자기사진"을 표현한다.
class user{
String name; // 전역변수
public void setName(){
String name; // 지역변수
name="사용자"; // 지역변수에 할당
this.name="자바학생" // 전역변수에 할당
}
}
멤버변수(전역변수)와 지역변수가 동일한 이름으로 공존할 경우 ,
유효성의 범위가 작은 변수가 우선적으로 인식된다.
class Student{
String name ; //전역변수
public void setName( String name ){
this.name = name; //전역변수에 할당
}
}
파라미터도 해당 메서드 안에서만 유효한 지역변수의 일종이다.
파라미터를 사용하여 멤버변수의 값을 간접적으로 설정하고자 할 경우,변수의 이름을 서로 다르게 사용하는 것 보다는 이름은 동일하게 지정하고this 키워드를 사용하여 멤버변수와 파라미터를 구별하는것이 java 언어의 일반적인 처리 방식이다.
모든 멤버변수 앞에는 this 키워드를 사용하여 멤버변수임을 직관적으로 표시하는것이
소스코드의 가독성을 위해 바람직하다.
class User{
public String getName(){
String name = " 자바학생";
return name;
}
public void sayName(){
String myname = this.getName();
system.out.println(myname);
}
}
getName( )을 호출하는 메서드는 this 키워드를 사용하여 현재 클래스 안에 포함된 다른 메서드임을 명시하고 있다.
하지만 메서드의 경우 다른 클래스의 메서드를 이름만으로 호출할 수 있는 방법이 없기때문에 , this.getName() 가 아닌,get.name()만 사용하더라도 코드 가독성의 문제는 없기때문에 잘 사용하지 않는다.