은닉화(Information Hiding)란 ?
정의
외부 객체로부터 '속성 값(데이터, 멤버 변수값)'을 감추는 특성
조건
접근제어자 private로 감춘다. (private - class내에서만 접근가능)
private를 사용하는 이유 ?
외부로부터 데이터를 보호(캡슐화)하기 위해서
인스턴스 변수는 private로 하여 외부에서 접근하지 못하도록 하고, 메서드는 public으로 하여 직접 접근은 막고 메서드를 통한 간접 접근 허용
외부에는 불필요한, 내부적으로만 사용되는 , 부분을 감추기 위해서
접근 방법
setter : 수정한다.
getter : 읽는다.
캡슐화(Encapsulation)란 ?
정의
객체가 은닉화 된 상태에서 메소드나 생성자의 일의 내용을 알 필요 없이, 그 형태(메서드 이름/파라미터/리턴 타입)만 알면 호출해서 사용할 수 있는 특성
예시
public class Hiding {
private String add = "123456-2345678";
private int balance = 2000;
void setAdd(String add) {
this.add = add;
}
String getAdd() {
return add;
}
void setBalance(int balance) {
this.balance = balance;
}
int getBalance() {
return balance;
}
public static void main(String[] args) {
Hiding h = new Hiding();
h.setAdd("123456-1234123");
System.out.println(h.getAdd());
h.setBalance(40000);
System.out.println(h.getBalance());
}
}
실행화면
123456-1234123
40000
'IT > Java' 카테고리의 다른 글
[자바] String Class (0) | 2021.05.11 |
---|---|
[자바] Java 예약어(keyword, reserved word) (0) | 2021.04.24 |
[자바] beginning (2) | 2021.04.23 |
[자바] MultiThread (0) | 2021.04.22 |
[자바] 다형성 (0) | 2021.04.21 |