변수 이름이나 메서드 이름 앞에 "접근 한정자"를 지정한다.
접근 한정자 설명
public 모든 곳에서 접근 가능하다.
일반적으로 모든 메서드 앞에 명시한다.
private 클래스 안에서 사용가능하고, 객체를 통해서 접근할 수 없다.
일반적으로 모든 멤버변수 앞에 명시한다.
protected 현재 클래스 내의 다른 자원이나, 같은 패키지 안에 존재하는 클래스와 하위 클래스에서 접근가능하다.
잘 사용하지 않는다.
default 접근 한정자를 명시하지 않은 경우, 현재 클래스 내의 다른 자원이나 동일 패키지 내의 다른 클래스에서 접근 가능하다.
잘 사용하지 않는다.
class Student {
public String name = "자바학생";
private int weight = 100;
}
public class Main01 {
public static void main(String[] args) {
Student std = new Student();
// public 이므로 접근 가능
System.out.println(std.name);
// private 이므로 접근 불가능
// System.out.println(std.weight); -> 에러남
}
}
result
자바학생
class StudentJava {
// 은닉된 멤버변수 -> 현재 블록안에서만 접근 가능함
private String name;
private int age;
}
public class Main02 {
public static void main(String[] args) {
}
}
Getter → 은닉된 멤버변수의 값을 리턴하기 위한 메서드
Setter → 파라미터로 전달된 값을 멤버변수에 복사하기 위한 메서드
메서드 작성 예
멤버변수 이름 getter setter
String userName String getUserName() void setUserName(String userName)
int userAge int getUserAge() void setUserAge(int userAge)