Interface 8

#049_닷넷(.NET)_.Net Framework 기본 - IComparable & IComparer

안녕하세요 삽잡이입니다. 이번 시간에는 닷넷에서 많이 사용하는 인터페이스의 형식중IComparable 과 IComparer 에 대해서 알아보려고합니다. IComparable은 '나랑 너랑' 비교입니다.그리고 IComparer는 '제 3자'끼리 비교하는 인터페이스입니다. IComparable 인터페이스에는 int형을 반환하고, object형식의 인자를 받는 CompareTo() 메서드가 있습니다. 즉, 나와 상대 객체와 비교를 하겠다는 것입니다.보통 반환 형은 내가 크면 1, 상대가 크면 -1, 같으면 0을 반환합니다. IComparer은 int형을 반환하며, object형 인자를 두개 받는..즉, 두개의 object형식을 비교하는 Compare() 메서드가 있습니다. 두 인터페이스는 모두 같이 비교를 하..

#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 메서드를 구현할 ..

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

안녕하세요 삽잡이입니다. 이번 시간에는 진짜로 인터페이스에 대해서 알아보도록하겠습니다... interface는 굉장히 중요합니다.모든 것들의 핵심은 interface라고 해도 과언이 아닐정도이지요... 객체가 상속, 다형성, 캡슐화를 통해 구현되는 이유를 아시겠습니까?바로, '왠만한 것은 다 감추기 위해서'입니다.최선의 것만 알고, 나머지는 내부에서 알아서 할것이니 구체적인 것은 알 필요 없고 사용하고자 하는 클라이언트가 요구하는 메시지만 던질 수 있도록하자는 것이지요...이것이 핵심입니다.그런데 이 모든 내용들은 모두 interface를 내포하고 있습니다. 어마어마하군요... 객체지향에서 객체는 메시지를 통해 서로 간에 주고 받는 일을 합니다.이 의미는 수 많은 객체들이 서로 객체들과 메시지를 통해 대..

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

안녕하세요 삽잡이입니다. 이번 시간에는 인터페이스에 대해서 알아보려고 합니다.이~전 시간에 인터페이스에 대해서 알아본 감이 있지만,다시 한번 정리하는 겸 보다 꼼꼼하게(?) 알아보도록 하지요... /*글을 쓰다보니... interface는 못나갔습니다... 혹여나 이 글이 관심 없으신 분들은...다음 글에서 interface를 다루겠으니... 그 글을 참고하시길 바랍니다...*/ 객체지향의 중심축을 생각해봅시다.하나의 단위를 만들어내는 묶음의 기능과 보호의 기능(은닉)을 담당하는'캡슐화'는 알고자하는 것은 알고 감추고자하는 것은 감추기 위한 객체지향의 핵심입니다. 캡슐화는 클라이언트에게 '최소한의 것'만을 알려줄 수 있도록 합니다.많이 알면 알수록 신경써야할 일들이 많고, 복잡해지는 일도 비일비재하니 이..

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

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

#020_시(c)시(c)해서 C++?!_ 되돌아보자 씨쁠쁠 ...

안녕하십니까~ 삽잡이입니다... 막장... 삽잡이 푸하하...내가 이해한 바탕으로 쉽고 재미있게 블로그에 풀어쓰자는 취지는이미 안드로메다로 떠났습니다...아닙니다... 회생할 수... 있을까요... 있겠지요... 흐헉헉 아무튼... 지금까지 제가 C++ 에 대한 글을 올리며 어느정도 C++에 대한 문법적인 요소들은 한번씩 밟아온것 같아서... (밟아...?)다시한번 곱씹어보는 시간을 가져보려 합니다... 참고로 이번 글은... 뭐 이전글들도 다 해당되지만...C++에 대해서 아에 기초가 없으신 분들은 뭔 외계어인가 하며 분노게이지가 차오르실 것입니다 ㅠㅠ... 아무튼... 시작해보도록 하겠습니다... 캡슐화에 대해서부터 썰을 풀도록 해보죠...캡슐화는 우선 멤버 변수와 멤버 메소드가 한 class에 있는..