반응형
감기약을 생각해보자. 감기약에는 다음과 같은 효능이 있다.
1 . 기침을 멈추게 해준다
2 . 열을 내려주게 해준다
3 . 코막힘을 없애준다
이 세가지 효능이 있다고 가정하자. 감기약은 이 세가지 효능을 하나의 '캡슐'안에 담아서 사람들이 이 '캡슐'하나만 먹으면 저 3가지 효능을 볼 수 있게끔 해준다. 자바에서의 캡슐화 또한 알약에서의 캡슐의 원리와 동일하다. 상황, 목적에 따라 캡슐을 만들듯 클래스를 캡슐화 하면 프로그램이 매우 간결해 질 수 있다. 캡슐화를 하지 못하면 프로그램이 복잡해지고 구현 과정이 어려워지기 마련이다. 밑의 예제는 캡슐화에 대한 두가지 경우의 예제이다.
1 .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | class take1 { void take() { System.out.println("take1"); } } class take2 { void take() { System.out.println("take2"); } } class take3{ void take() { System.out.println("take3"); } } class res{ take1 a = new take1(); take2 b = new take2(); take3 c = new take3(); void take() { a.take();b.take();c.take(); } } class get{ void take(res r) { r.take(); } } class ma{ public static void main(String[] args) { get t = new get(); t.take(new res()); } } | cs |
2 .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | class aa { void take1() { System.out.println("take1"); } void take2() { System.out.println("take2"); } void take3() { System.out.println("take3"); } void take() { take1(); take2(); take3(); } } class bb{ void taking(aa r) { r.take(); } } class ma{ public static void main(String[] args) { bb r = new bb(); r.taking(new aa()); } } | cs |
반응형
'Language > Java' 카테고리의 다른 글
static을 붙여 선언한 클래스 변수 (0) | 2019.02.21 |
---|---|
Java JDK, Eclipse 설치 링크 (0) | 2019.02.20 |
접근 수준 지시자(Access-level Modifier) (0) | 2019.02.20 |
정보 은닉(Information Hidding) (0) | 2019.02.20 |
Default Constructor (0) | 2019.02.16 |