[Java] Encapsulation (캡슐화)
Encapsulation (캡슐화)
- 캡슐화는 관련이 있는 변수와 함수를 하나의 클래스로 묶고 외부에서 쉽게 접근하지 못하도록 은닉하는게 핵심입니다.
- 캡슐화는 정보은닉을 활용하여 한다.
- 대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현 하게 한다.
- 캡슐화를 하면 객체에 직접적인 접근을 막고 외부에서 내부의 정보에 직접접근하거나 변경할 수 없고, 객체가 제공하는 필드와 메소드를 통해서만 접근이 가능하다.
👨🏻💻 Code (MakeReport.java)
package ch11;
public class MakeReport {
StringBuffer buffer = new StringBuffer();
// 문자열이 긴 문자열을 만들때는 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("010-7777-0987\n");
}
private void makeFooter()
{
buffer.append(line);
}
// 위에 makeFooter, generateBody, makeHeader같은 경우는 private으로 구현하여
// client에게 제공을 하지 않고 client에게는 getReport만 제공을 한다.
public String getReport()
{
makeHeader();
generateBody();
makeFooter();
return buffer.toString();
}
}
👨🏻💻 Code (MakeReport.java)
package ch11;
public class MakeReportTest {
public static void main(String[] args) {
MakeReport report = new MakeReport();
String builder = report.getReport();
System.out.println(builder);
}
}
프로그래밍을 할 때는 어떤 정보를 공개하고 어떤 정보를 공개하며 어떻게 해야지 사용자가 더 편리하고 효율적으로 사용을 하게 할지 고민을 해봐야한다.
Reference
- [Fast Campas] 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online.
Author And Source
이 문제에 관하여([Java] Encapsulation (캡슐화)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@seongwon97/Java-Encapsulation-캡슐화-11저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)