개발공부/객체 지향 입문
[Java] 11. 캡슐화
환타몬
2022. 1. 30. 01:25
정보 은닉을 활용한 캡슐화
- 꼭 필요한 정보와 기능만 외부에 오픈함
- 대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현 하게 함
- 각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화 한다.
public class MakeReport {
StringBuffer buffer = new StringBuffer();
private String line = "========================================\n";
private String title = " 이름 \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-0000-0000\n");
buffer.append("kim \t");
buffer.append("Daegu Korea \t");
buffer.append("010-1111-2222\n");
}
private void makeFooter()
{
buffer.append(line);
}
public String getReport()
{
makeHeader();
generateBody();
makeFooter();
return buffer.toString();
}
}
외부에서 굳이 알 필요 없는 정보들을 private한 메소드로 생성하고, public한 메소드를 통해 정보를 출력한다.
public class MakeReportTest {
public static void main(String[] args) {
MakeReport builder = new MakeReport();
String report = builder.getReport();
System.out.println(report);
}
}