[Java] Encapsulation (캡슐화)

SeongWon Oh·2021년 8월 14일
0

Java

목록 보기
10/39
post-thumbnail

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.
profile
블로그 이전했습니다. -> https://seongwon.dev/

0개의 댓글