Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 책임을 객체단위로 생성하고 재사용 가능
  • 코드의 유지보수가 객체단위로  용이해짐



캡슐화

캡슐화는 다음과 같이 정의합니다. 객체의 속성(data fields)과 행위(methods)를 하나로 묶고, 실제 구현 내용 일부를 외부에 감추어 은닉한다. 

OOP를 처음 배울때  은닉한다란 단어때문에 구현부 유출방지를 위한 보안적인 부분으로 생각하면 캡슐화를 이해하기가 어려워집니다.

사용부에서 관심사의 분리로 이해하는것이 더 적절할것같습니다.   샘플 객체인 TalkMan를 실제 작동시키는 코드에서는 말하는 횟수를 조정하거나 변경할 필요가 없습니다.  



캡슐화중 은닉할 있는부분을 '접근제어자' 라고도하며 public → private으로 변경하면 오로지 자신의 객체 내에서만 접근이 가능하며

사용부에서 관심사를 분리할수 있습니다.

Code Block
themeEmacs
linenumberstrue
public class TalkMan(){ 
//...............
	private int sayCount = 0;

	private void increseSayCount()
	{
		sayCount++;
	}
//................
}


talkMan.say("Hello, World!");

talkMan.say("Hello, World!");

talkMan.say("Hello, World!");

talkMan.say("Hello, World!");

이 봐 토크맨~ 나는 헬로우 월드를 찍고 싶을 뿐이야!  내가 여러번 사용하면 Again만 붙여 달라고~