this

김현·2023년 7월 10일

자바

목록 보기
12/31

1. this란?

  • 자기 자신을 의미하는 키워드
  • 클래스 안에서 this를 사용하여 "자기자신"을 표현한다.

2. this를 사용하여 지역변수와 멤버변수 구분하기

class User{
	String name;

	pubblic void setName() {
		String name;
		name = "자바학생";
	}
}

-> 멤버변수와 지역변수가 동일한 이름으로 공존할 경우 유효성의 범위가 작은 변수가 우선적으로 인식된다.
(name은 멤버변수와 지역변수의 선언이 되었지만 지역변수에서 name의 값을 할당했기에 멤버변수의 name에는 할당되지 않는다.

class User{
	String name;

	pubblic void setName() {
		String name;
		name = "자바학생";
		this.name = "자바";
	}
}

-> 현재 클래스의 자신의 변수, 즉 멤버변수로 선언된 name을 의미한다.

3. this를 사용하여 파라미터와 멤버변수 구분하기

  • 파라미터도 해당 메서드 안에서만 유효한 지역변수의 일종이다.

  • 파라미터를 사용하여 멤버변수의 값을 간접적으로 설정하고자 할 경우 변수의 이름을 서로 다르게 사용하는 것 보다는
    이름은 동일하게 지정하고 this키워드를 사용하여 멤버변수와 파라미터를 구별하는 것이 java언어의 일반적인 처리 방식이다.

    		class User {
    			String name;
    	
    			public void setName(String name) {
    				this.name = name;
    			}
    		}

User u = new User();
u.setName("자바학생");
System.out.println(u.name);
-> 자바학생 출력

  • 모든 멤버변수 앞에는 this키워드를 사용하여 멤버변수임을 직관적으로 표시하는 것이 소스코드의 가독성을 위하여 바람직하다.

4. 현재 클래스의 메서드를 의미하는 용도로서의 this

class User{
	public String getName(){
		String name = "자바학생";
		return name;
	}

	public void sayName(){
		String myname = this.getName();
		System.out.println(myname);
	}
}
  • 메서드의 경우 다른 클래스의 메서드를 이름만으로 호출할 수 있는 방법이 없기 때문에 this.getName()이 아닌 getName()만 사용하더라도 코드 가독성의 문제는 없다.

0개의 댓글