객체지향 6

[삽잡이::java] 나만의 스타일로! 오버라이딩(Overriding)

이리 저리, 요리 조리복잡한 생각들과 어떻게 해결할까 하는 고민들로머리가 뽀글뽀글해지기 시작하면...모든 사람들이 다들 그러실지는 모르겠으나삽잡이는 판단력이 흐려지는 듯합니다. 하하... 그래서 그런지 정신없이 코딩을 하다보면,중복되는 코드들이 너무도 많이 속출되고,내가 정녕 객체지향적인 코드를 작성하고 있나 싶을정도로스파게티 코드들을 만들고 있더군요... 그래서, 멀어져가는 정신을 끄댕겨잡고(?) 머리도 식히고 정리할겸! 오버라이딩에 대해서생각해보는 시간을 가지고자합니다. 부모로부터 불려받은 메서드를나만의 스타일로 재정의하는 작업을오버라이딩이라고 부릅니다. 예전에 면접보러가서 오버로딩과 오버라이딩에 대해서 바꿔서 말했던 추억이 생각나군요...하하하... 아무튼... 오버라이딩을 사용하는 이유는 뭘까요?..

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

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

[삽잡이] 객체지향 - 상속

안녕하세요 삽잡이입니다. 이번 시간에는 상속과 다형성에 대해서 알아보겠습니다. 상속에서는 '코드 재사용'이 가장 기본적인 개념입니다. Object형 하나가 있다고 해봅시다.이 Object를 상속받아서 Car 클래스가 만들어진다고 해보겠습니다.그렇다면 Object에서 만들어졌던 기능을 Car에서 구현할 필요가 없지 않습니까...따라서, Car가 Object 코드를 '재사용'했다고 볼 수 있습니다. 또한 Object를 상속받아서 만들어진 Radio가 있다고 해보겠습니다.이 녀석도 상속을 받고 기능을 재사용할 수 있습니다. 그런데 Car의 클래스에서 Radio 클래스를 사용한다면 어떨까요?Car는 Radio의 기능을 구현하지 않고 기능을 가져다 쓴 것입니다. 이 또한 재사용입니다.하지만, 포함관계이지요... ..

[삽잡이] 객체지향 프로그래밍에서 주의해야할 점

안녕하세요 삽잡이입니다. 이번 시간에는 객체지향 프로그래밍에 있어서 주의해야할 점에 대해서나눠보고자합니다. 캡슐화란, '관련성 있는 것끼리 하나의 묶음, 패킹, 틀로 만들어낸 것'을 의미합니다.즉, 경계를 만들어 내는 것입니다.이 캡슐화를 통해 데이터 보호와 데이터 은닉을 할 수 있습니다. 객체지향에서 기본은 클래스와 객체입니다.클래스는 객체들의 정의입니다.그리고 객체는 클래스의 인스턴스라고 부릅니다. 모든 객체는 '독립적'이어야합니다.예를 들어 '삽잡이'라는 클래스를 통해 만들어진 A객체와 B객체가 있다고 해봅시다.이때, A객체를 건드려도 B객체는 독립적으로 유지되어야한다 이겁니다.이를 '객체의 독립성'이라고 부릅니다.이 객체라는 것은 실제 세계에서도, 가상 세계에서도 독립성을 가집니다.독립성을 가지지..

#010_닷넷(.NET)_.Net Framework 기본 - 객체지향 및 C# 용어 정리

안녕하세요 삽잡이입니다. 이번 시간에는 객체 지향과 C#에서 부르는 속성 및 기능에 대한 용어를 살펴보고자합니다. 객체 지향은 '속성'과 '기능'으로 나뉘어집니다.이 속성은 다른 말로는 '특성'이라고도 부르지요...property, attribute로 부터 번역되어 온 뜻입니다. 기능은 function으로 부터 왔지요... 메소드도 method로부터 왔습니다...다 똑같은 말입니다... 객체 지향에서는 말이지요... 속성, 특성을 C++에서는 멤버, 데이터가 되고클래스로부터는 변수가 되고 기능, 메소드를 멤버 함수라고 부르지요... 메소드라는 단어 자체가 '기능을 하는 방법'을 의미합니다.즉, 뭔가 해결하는 방법을 의미하는 것입니다.이 기능들을 명령들이라고 부릅니다... 또한 객체지향에서는 속성, 특성을..

#021_시(c)시(c)해서 C++?!_다시 한번 Command 패턴 사용하기

안녕하세요 삽잡이입니다... 몇일 전에 커맨드 패턴, 그러니까 명령어 패턴에 대한 글을 올린 기억이 납니다...헷갈리니까... 다시한번... 예제를 통해 살펴보도록 하겠습니다...전체적인 코드보다는 이럴 때 사용하는 구나 하는 감을 잡기 위해... 부분적으로...시작합니다... 우선...멤버 하나하나를 담는 Unit이라는 class가 있다고 생각해봅시다...이 Unit을 관리하는 UnitCollection 이라는 class를 만들어보도록 하죠... 12345678910111213141516171819202122232425262728 #pragma once#include #include "Unit.h"using namespace std; class IIsEqual{public: virtual bool op..