프로그래밍 언어/Java
07. [Java] 정보은닉 with 접근제어자 (public&private)
물꼮이
2022. 1. 31. 21:15
정보은닉
; information hiding
접근제어자(private, public)을 통해 이루어짐
접근 제어자
: (access modifier)
객체지향 프로그램에서는, 예약어를 사용해
클래스 내부의 변수, 메서드, 생성자 등에 대한
접근권한을 지정할 수 있다.
접근제어자의 종류
| 접근 제어자 | 설명 |
| public | 외부 클래스 어디에서나 접근(변경) 가능 |
| private | 같은 클래스 내부에서만 접근(변경) 가능 (외부클래스 X) |
| protected | 같은 패키지 내부 & 상속관계의 클래스 에서만 접근 가능 |
| X (아예 없는경우) | (default), 같은 패키지 내부에서만 접근 가능 |
private은 같은 클래스 내부에서만 접근 가능하기 때문에,
해당 클래스의 외부에서, ~.~.~ ..등 도트연산자(.)를 통한 접근하는 방식은 사용불가 하다
Getter, Setter
getter = get() 메서드
setter = set() 메서드
: private으로 선언해 도트연산자(.)로 접근할 수 없는 변수들의 값을 가져오기 위해,
class 내부에 선언하는 값을 전달해주는 메서드
package hiding;
public class Student {
int studentID;
private String studentName;
int grade;
String address;
// get : 값을 가져옴
public String getStudentName() {
return studentName;
}
// set : 값을 지정함
public void setStudentName(String studentName) {
this.studentName = studentName;
}
}
* 이때, get(), set() 메서드 자체는 public 으로 선언해야 함!
* get(), set()메서드는, 멤버변수에 옳지 못한 값이 들어가는 상황을 막기 위해 사용된다.
getter, setter 자동생성하는 방법
모든 getter, setter는 eclipse 환경에서 자동으로 만들 수 있다.
마우스 우클릭 > source > Generate Getters and Setters 클릭 > 메서드 생성할 멤버변수 선택 > ok
참조변수 사용
- 참조변수.멤버변수
- 참조변수.메서드
위처럼 도트(.)연산자를 사용해, 인스턴스의 멤버변수와, 메서드에 접근 할 수 있다.