※출처
https://fastcampus.co.kr/dev_online_javaend
https://jaynamm.tistory.com/entry/JAVA-%EC%9E%90%EB%B0%94-%EC%BA%A1%EC%8A%90%ED%99%94-Encapsulation
https://velog.io/@yooil605/JAVA-Encapsulation
정보 은닉을 활용한 캡슐화
- 변수와 함수(메서드)를 하나의 단위로 묶는 것을 의미함, 데이터의 번들링을 뜻한다.
- 꼭 필요한 정보와 기능만 외부에 오픈함
- 대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현 하게 함
- 각각의 메서드나 맴버 변수를 접근함으로써 오류를 최소화한다.
- 연관된 목적을 가지는 변수와 함수를 하나의 클래스로 묶어 외부에서 쉽게 접근하지 못하도록 은닉하는 것
- 중요한 데이터를 쉽게 바꾸지 못하도록 할 때 사용
- 객체 내의 정보 손상과 오용을 방지하고 데이터가 변경되어도 다른 객체에 영향을 주지 않아 독립성이 좋다.
캡슐화 예제
|
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
42
43
44
45
46
47
48
|
public class MakeReport {
StringBuffer buffer = new StringBuffer();
private String line = "==========================================\n";
private String title = " 이름\t 주소 \t\t 전화번호\n";
private void makeHeader() {
buffer.append(line);
buffer.append(title);
buffer.append(line);
}
private void generateBody() {
buffer.append("james \t");
buffer.append("Seoul Korea \t");
buffer.append("010-2222-3333\n");
buffer.append("Tomas \t");
buffer.append("NewYork US \t");
buffer.append("020-7777-0987\n");
}
private void makeFooter() {
buffer.append(line);
}
public String getReport() {
makeHeader();
generateBody();
makeFooter();
return buffer.toString();
}
}
----------------------------------------------------------
public class MakeReportTest {
public static void main(String[] args) {
MakeReport builder = new MakeReport();
String report = builder.getReport();
System.out.println(report);
}
}
|
cs |
'Java > 객체지향 프로그래밍' 카테고리의 다른 글
| JAVA / 객체 간의 협력(Collaboration) (0) | 2022.06.15 |
|---|---|
| JAVA / 객체 자신을 가리키는 this (0) | 2022.06.15 |
| JAVA / 접근 제어 지시자(access modifier)와 정보은닉(infomation hiding) (0) | 2022.06.13 |
| JAVA / 기본 자료형과 참조 자료형 (0) | 2022.06.10 |
| JAVA / 생성자 (0) | 2022.06.07 |