은닉화(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

+ Recent posts