Java

[Java] this 로 사용하는 멤버변수, 접근제어자, 멤버변수와 로컬변수의 차이

건휘맨 2024. 5. 31. 17:41

this 키워드는 자바에서 객체 자신의 참조를 나타내는 데 사용

 

주로 클래스의 멤버 변수와 메서드의 매개변수 이름이 충돌할 때

객체의 멤버 변수를 명확하게 구분하기 위해 사용된다.

 

다른 생성자를 호출하거나 현재 객체의 참조를 반환하는 데에도 사용할 수 있다.

 

public: 어디서나 접근 가능.

protected: 같은 패키지 내에서, 그리고 다른 패키지의 자식 클래스에서 접근 가능.

default: 같은 패키지 내에서만 접근 가능.

private: 동일 클래스 내에서만 접근 가능.

 

package model;

public class Member {
	
	// 접근제어자는 총 4개
	// 1. 아무것도 안쓰는것 => default : 같은 패지키 내에서만 가능
	// 2. public => 어디서든 접근 가능
	// 3. private => 어디서도 접근 불가능
	// 4. protected => 상속 관계만 접근 가능
	
	private String name;
	private String tel;
	private String address;
	
	public Member(){
		
	}
    
	// this 라는 키워드 this는 클래스의 멤버변수나 메소드를 가르킬때 사용한다
	public Member(String name, String tel, String address){
		this.name = name;
		this.tel = tel;
		this.address= address;
	}

	public String getName() {
		return name;
	}

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

	public String getTel() {
		return tel;
	}

	public void setTel(String tel) {
		this.tel = tel;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}
	
	
	
}

 

 

다른 패키지(다른 폴더)의 클래스에서 위에서 만든 클래스 사용해보기

같은 패키지 안에 있으면 바로 사용 가능

다른 패키지에서 클래스를 사용하려면 해당 클래스를 import 해서 사용

package main;

// 다른 패키지에서 클래스를 사용하려면 해당 클래스를 import 해서 사용
import model.Member;

public class AccessMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Member m1 = new Member();
		m1.setName("홍길동");
		m1.setTel("010-1234-1234");
		m1.setAddress("인천 서구 길동이네");
		
		Member m2 = new Member("김나나", "010-1111-1111", "인천 서구 나나네");
		System.out.println(m2.getName());
		
	}

}

 

 

 

멤버변수는 접근 제어자를 가질 수 있지만 

로컬변수는 가질 수 없다.

다른 차이점은 표를 참고