자바 Java/문법

접근 제한자와 Getter Setter

하나비 HANABI 2022. 1. 14. 23:48

접근 제한자

: 클래스 및 클래스의 구성 멤버에 대한 접근을 제한

 

1. 다른 패키지에서 클래스를 사용하지 못하도록 - 클래스 제한

2. 클래스로부터 객체를 생성하지 못하도록 - 생성자 제한

3. 특정 필드와 메소드를 숨김 처리 - 필드와 메소드 제한

 

 

public

적용대상: 클래스, 필드, 생성자, 메소드

접근할 수 없는 클래스: 없음. 외부 클래스가 자유롭게 사용

protected

적용대상: 필드, 생성자, 메소드

접근할 수 없는 클래스: 자식클래스가 아닌 다른 패키지에 소속된 클래스

default

적용대상: 클래스, 필드, 생성자, 메소드

접근할 수 없는 클래스: 다른 패키지에 속한 클래스

private

적용대상: 필드, 생성자, 메소드

접근할 수 없는 클래스: 모든 외부 클래스

 

public > protected > default > private

 

Getter Setter

: 객체의 무결성을 위해 외부에서 직접적으로 접근하는 것을 막기 위해 메소드를 통해서 필드를 변경

왼쪽 상단 source -> generate Getters and Setters

class Student {
	private int age;
	private String name;
	
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

public class accessModifier {
	public static void main(String[] args) {
		Student s1 = new Student();
		s1.setAge(20);
		s1.setName("홍길동");
		
		Student s2 = new Student();
		s2.setAge(21);
		s2.setName("이몽룡");
		
		System.out.println(s1.getAge()); // 20
		System.out.println(s2.getName()); // 이몽룡

	}

}

20

이몽룡