정보를 은닉할 때 private이라는 접근제한자에 의해 아무나 접근할 수 없는데
getter와 setter 메서드를 만들면 생성된 내용에 대해서만 접근할 수 있다
class Student {
String name;
private int score; // Student 클래스 내부에서만 접근 가능한 변수
public int getScore() {
return score;
}
public void setScore(int s) {
score = s;
}
}
Student라는 클래스를 생성하고 내부에 getScore(), setScore() 메서드를 만들었다
public static void main(String[] args) {
Student student = new Student();
student.name = "홍길동";
// student.score = 99; // 오류 발생!
student.setScore(99);
System.out.println("이름: " + student.name);
System.out.println("점수: " + student.getScore());
}
[ 출력 결과 ]
이름: 홍길동
점수: 99
main 메서드에서 Student 클래스 생성자로 선언하였다
Student에 대한 name 변수는 누구나 접근이 가능해서 어디서든 변수를 바꿔줄 수 있지만
Student에 대한 score 변수는 private라는 접근제한자 때문에 일반적으로 변수를 수정하거나 초기화해줄 수 없어
Student 클래스 내부에 생성한 getScore() 와 setScore() 메서드를 이용해 접근하니 변수 내용을 바꿔줄 수 있었다
마찬가지로 Score 변수의 내용을 가져올 때도 그냥 가져올 수 없으니
getScore() 메서드를 이용해서 출력하니 값이 잘 출력되었다
단축키
Alt + Shift + S 누르고 r
보통은 쉽게 접근할 수 없는 메서드를 모두 생성하고 단축키를 이용해서
한번에 생성한다
'BackEnd > Java' 카테고리의 다른 글
패키지(Package)와 import (0) | 2020.02.11 |
---|---|
오버로딩(Overloading)과 가변인자(비정형인자) (0) | 2020.02.11 |
메서드 (method) (0) | 2020.02.04 |
배열 (Array) (1) | 2020.01.23 |
반복 : break와 continue (0) | 2020.01.22 |