인터페이스 5

#048_닷넷(.NET)_.Net Framework 기본 - ICloneable

안녕하세요 삽잡이입니다. 지난 시간까지 열나게... 깊은 복사와 얕은 복사에 대해서 알아봤었지요...이번 시간에는 복사가 가능하도록 기능을 제공해주는 ICloneable 인터페이스에 대해서 알아보도록 하겠습니다. ICloneable 인터페이스는 딱 하나의 인터페이스를 가지고 있습니다.바로, object형을 반환해주는 clone()이라는 메서드를 가지고 있지요...달랑 그거 하나입니다... 아무튼.. 왜 가지고 있을까요? 수 없이 많은 종류의 객체들 중에서 복사에 대해 필요성을 가지고 있는 객체들은 몇개가 될까요? class 외부에서 봤을 때..즉, Client 입장에서 봤을 때 어떤 객체가 복사가 가능한지에 대해서 그 유무를 파악할 수 있어야되지 않습니까? 따라서 복사할 수 있는 객체만 복사를 하도록, ..

#045_닷넷(.NET)_.Net Framework 기본 - IEnumerable & IEnumerator

안녕하세요 삽잡이입니다. 이번 시간에는 닷넷에서 제공하는 BCL에 있는 인터페이스를 살펴보려고합니다.우리가 살펴보고자 하는 인터페이스는바로, 'IEnumerable', 'IEnumerator' 입니다. 우리는 이미 BCL에서 제공하는 이 인터페이스들을 사용했었습니다.foreach 문에서 사용을 하고 있었지요... foreach 문에서는 배열 타입의 각 항목을 반복할 수 있다는 사실을 알고 있었습니다.왜 배열 타입의 항목만을 반복할 수 있다 했을까요?사실, arr은 '약속'을 지키고 있었기 때문입니다. foreach 문은 일반 객체가 아닌 배열이나 리스트의 컬렉션에서만 사용이 가능합니다.따라서 일반 객체도 '약속'을 지킨다면 foreach문을 실행시킬 수 있습니다. 컴파일러는 IEnumerable을 구현했..

#044_닷넷(.NET)_.Net Framework 기본 - 인터페이스(일반적인 구현 & 명시적 구현)

안녕하세요 삽잡이입니다. 이번 시간에는 C#의 인터페이스 사용법 중,일반적인 구현과 명시적인 구현에 대해서 알아보려고합니다. 인터페이스를 구현하는데에는 두가지의 방법이 있습니다.'인터페이스를 구현하되 그 인터페이스를 자신의 메서드로 만드는 방법','인터페이스 명시적 구현' 이라고 해서 오직 인터페이스 메서드만 구현하능 방법이 있지요... 즉, 인터페이스를 구현하면서, 소유를 내것으로 하는 방법과오직 인터페이스를 구현하면서 내 인터페이스는 아니게하는 방법이 있다 이겁니다. 왜 이런 이야기를 했을까요... 예를 들어서 동일한 Draw() 메서드가 있다고 해보겠습니다.인터페이스를 세개 다 구현한다고 할경우각 인터페이스가 다른데 누구의 Draw()를 호출하는지 할 수 있을까요?따라서 이 때에는 '명시적인 구현'..

#043_닷넷(.NET)_.Net Framework 기본 - 인터페이스 (2)

안녕하세요 삽잡이입니다. 이번 시간에는 지난시간에 이어 인터페이스를 알아보려고합니다.지난 시간부터 이어서 쓰는 글인 만큼시간이 나신다면 이전 글도 참고해주시길 바랍니다. 시작하겠습니다. Interface는 암묵적으로 abstract, public 형식입니다.그 이유는 인터페이스는 '서로 소통하려고 만든 약속'이기 때문입니다.그래서 인터페이스는 하나의 타입이지만,클래스와 관련성이 없는 '독립적인 타입'이라는 것입니다. 예를 들어서 Eat이라는 인터페이스는Eat 인터페이스를 가지고 있는 객체들이라면, 모두 구현할 수 있습니다.그런데 사람만 밥먹습니까? 동물도 밥 먹습니다...그렇다면 이 동물객체들도 Eat이라는 기능을 가질 수 있는데Eat 인터페이스를 가지고 있게 되면 동물객체이지만 Eat 메서드를 구현할 ..

#004_닷넷(.NET)_.Net Framework 기본 - 인터페이스

안녕하세요 삽잡이입니다. 이전 시간에 CTS에 대해서 알아보며 Type에 대해서 언급한적이 있습니다.이번 시간에는 CTS의 다섯개의 타입 중 왕따인... 인터페이스에 대해서 알아보고자 합니다. 인터페이스는 독립적입니다. 객체 지향에서 매우 중요하지요...interface는 명사로 '중개자', 동사로 '중개하다, 소통하다'의 뜻을 가지고 있습니다.왜 명사, 동사를 나눠서 말씀을 드렸을까요...이유는 그 자체를 뜻하기도, 동작을 뜻하기도 하기 때문입니다. 그렇다면 객체지향에서 말하는 객체지향이란 뭘까요? 예를 들어서... 학생이라는 클래스가 있다고 해봅시다.이 학생이라는 클래스에는 공대생, 미대생, 인문계생 등이 있다고 해보겠습니다.이 모든 학생들은 기본적으로 공부를 합니다...그런데 말입니다... 각 학생..