-
데이터 은닉이란 접근 제어자를 통해서 접근하는 방법에 따른 것을 의미한다.
세 가지의 접근 제어자가 존재하는데 의미와 사용 환경을 정리하자.
public ==> 외부로 부터 쉽게 멤버변수(속성) 데이터를 입출력할 수 있기에 공개하기 쉽지만, 데이터가 수정,변질,왜곡 또한 가능하다.
protected ==> 같은 패키지 내부와 상속 관계의 클래스에만 접속할 수 있다.
private ==>외부로부터 선언해서 값이 변경되는 경우가 차단되기에 멤버변수(속성)의 변경을 막는다.
그렇다면 ! private로 접근제어자가 설정되어 있는 것은 어떻게 다른 방법으로 접근할 수 없나? 방법이 있다.
get(), set()메서드를 활용하여 private로 외부 접근이 제한되어 있는 것도 접근이 가능하다 .
예시를 알아보자
package textProject;
public class Student{
private String name;
private int score;
// private로 접근제어자를 정했기 때문에 외부에서 접근이 불가능하다.
그런데 접근하고싶을 때는 get(),set()메서드를 사용한다. //
public Student (String name, int score){
this.name = name;
this.score = score;
}
public void getInform() {
System.out.println(" == getInform() ==")
System.out.println("name: " + name);
System.out.println("score : " +score);
}
//get(), set() 메서드로 private함수에 접근하는 구간!//
public String getName() {
return name;
}
public void setName(String name){
this.name= name;
}
public int getScore() {
return score;
}
public void setScore(int score){
this.score = score;
}
}
main() 함수에서는
...
Student student1 = new Student("춘식이", 100);
Student1. getInform();
student1. setScore(100);
//참조변수.메서드(매개변수) ==>를 사용하여 값을 넣어서 출력한다. //
입력하면
name: 춘식이
score:100으로 출력되면서
private 멤버변수에 접근이 가능케 출력된 것이 보인다.
'자바 > 자바 키포인트' 카테고리의 다른 글
[자바] 부모 클래스와 자식 클래스의 상속관계와 관련된 메서드 오버라이딩과 super 클래스 (0) 2022.11.07 [자바] extends 상속의 개념과 예시 정리하기 (0) 2022.11.07 [자바] Static을 사용하여 데이터를 공유하는 예문 만들기 (0) 2022.11.05 [자바] 디폴트 생성자와 사용자 정의 생성자의 개념과 차이 정리하기 (0) 2022.11.05 [자바] 메서드와 파라미터의 예시와 메서드를 생성하는 생성자 예시 (0) 2022.11.04 댓글