클래스 9

#047_닷넷(.NET)_.Net Framework 기본 - 구조체와 클래스에서 복사 (Shallow ,Deep Copy)

안녕하세요 삽잡이입니다. 이번 시간에는 struct, class의 경우를 비교해보며각 참조를 가졌을 때, 값을 가졌을 때 어떻게 복사가 되어가는지 알아보겠습니다.하... 힘든 시간이 될 수 있지만 힘차게 달려가봅시다! 필자는 Point와 Rect라는 형식을 가지고 비교를 진행해보도록 하겠습니다. 시작 전에 복사의 진리(?)를 다시 한번 곱씹어보고 가시겠습니다...값 형식과 참조 형식이 뭡니까?값 형식은 왜 값 형식이라고 부를까요?변수 자체가 값이고 모든 복사가 값으로 되기 때문입니다.참조형식은 그렇다면?객체 자체가 참조입니다. 객체는 따로 있고 참조자를 통해 가리킬 뿐이지요.참조형식일 경우 복사할 때 참조가 복사되니 참조 복사라고 부를 수 있습니다. 본격적으로 시작해볼까요? Case 1. Class 안에..

#028_닷넷(.NET)_.Net Framework 기본 - 클래스와 구조체의 용도

안녕하세요 삽잡이입니다. 이번 시간에는 클래스와 구조체에 대해서 알아보겠습니다. 클래스는 자동 속성이 되지만 구조체는 자동 속성을 만들 수 없습니다... 뭐... 원래 이렇게 약속을 해뒀기 때문입니다... struct의 의미는 '값 형식'이라는 의미를 가지고 있습니다.class는 '참조 형식'이라는 의미를 가지고 있지요... 값 이라 하면 '어떤 데이터를 표현하기 위해 만들어 놓은 형식'을 말하는 것입니다.어떤 데이터를 표현하기 위해서... 즉, 값의 표현을 목적으로 하는 것이 구조체라는 것입니다.데이터 중심적이지요... 따라서 struct는 데이터 표현을 위해 사용합니다. 그런데 class는 참조 형식이지요.... 서비스 즉, 클라이언트가 서버에게 어떤 기능을 요청했을 때서비스를 수행, 제공하기 위한 ..

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

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

#020_닷넷(.NET)_.Net Framework 기본 - 실제 참조 타입 과 값 타입

안녕하세요 삽잡이입니다. 이번 시간에는 실제로 값 타입과, 참조 타입이 뭔지 알아가도록 해보겠습니다...지난 시간에 복습하느라 못했습니다... 사실 실제 값 타입, 참조 타입은 'Class'와 'Struct' 이 두가지만 알면 됩니다...클래스와 구조체를 통해 값 타입과 참조 타입을 명확하게 구분할 수 있기 때문입니다.왜냐? 클래스는 참조의 대표, 구조체는 값의 대표이니깐 말입니다. 우선 둘의 특징에 대해서 알아보고 가도록 하겠습니다. 우선 Class는 부모가 Value 타입이 아닌 이상모든 부모로부터 모든 타입을 상속받을 수 있습니다.또한 파생시킬 수 있습니다. 즉, 자식 클래스를 만들 수 있다 이겁니다. 하지만, Struct는 상속이 자체가 불가능합니다.또한 상속을 받을 수도, 상속을 시켜줄 수도 없..

#008_시(c)시(c)해서 C++?!_이름은 같은데 하는짓은 다 달라... 다형성

안녕하세요 삽잡이입니다. 오늘은 다형성에 대해서 배워보도록 하겠습니다...겉으로는 보이는 건 하나지만, 구체적으로는 모두 다를 수 있다...이게 바로 다형성입니다... 파생을 통해서 얻을 수 있는 이점중 하나는 바로기반 클래스 형식의 포인터 변수로 파생된 개체를 관리할 수 있다는 것입니다...말이 좀 어렵죠?이말인 즉, 기반 클래스에 직접적으로나 간접적으로나 상속 되는 클래스는 모두 관리할 수 있다 이겁니다...더 어렵나요? 허허... 이전 시간에 예시를 들었던....피아니스트, 드러머, 기타리스트 등 음악가와 관련된 개체들을음악가 형식의 포인터 변수로 관리 할 수 있다 이거죠... 좀더 생각해본다면, 음악가 형식의 변수 즉, 기반 클래스 형식의 포인터 변수 하나로 여러개의 파생 클래스 형식의 객체들을 ..

#007_시(c)시(c)해서 C++?!_상속을 가지고 놀아보자~

안녕하세요 삽잡이입니다. 지난 시간에는 클래스간의 관계에 대하여 알아봤었습니다.오늘은 그중에서 일반화 관계 즉, 상속과 다형성에 대해서 알아보려고 합니다. 일반화...란 뭐라고 했었나요? 'is a' 관계라고 했죠...예를 들어볼까요?'삽잡이는 사람이다.' '삽잡이는 남자다.' 등등... 삽잡이는 사람에 기반하고 있으며, 삽잡이는 남자에 기반하고 있습니다.또한, 남자는 사람에 기반하고 있죠...흠... 모두 사람에 기반하고 있네요... 그렇다는 뜻은, 사람이라는 기반 클래스를 통해서 남자, 삽잡이와 같은 파생 클래스를 통해 파생을 표현할 수 있다 이겁니다... 어렵게 설명했나요? 그러면 실제 코드를 보시며 이해를 해보도록 하겠습니다. 1234567891011class Musician{ string nam..

#006_시(c)시(c)해서 C++?!_클래스간의 관계

안녕하세요 삽잡이입니다~! 이번 시간에는 클래스간의 관계에 대해서 알아보고자 합니다! 클래스간의 관계에 대해서 UML을 사용할 것이구요... 음... 우선 UML 모델링 툴에는 대표적으로... Rose, Together, Visual, Visual Paradigm 등등 있습니다. 그리고 제가 오늘 사용할 StarUML 또한 있고요.... 자... 이들을 모두 Case 도구라고 부릅니다. Case 도구는 Computer Aided Software Engineering의 약자를 가지고 있고요 소프트웨어 개발과정을 자동화하기 위해서 사용하는 소프트웨어 도구라고 합니다... 웩.. 뭔말이야... 쉽게, 프로그램 개발 방법론에 의해 진행되는 프로세스에서 이 툴들이 사용된다는 것인데요 ... 자.. 우리가 제품을 ..

#003_시(c)시(c)해서 C++?!... C와 C++의 캡슐화차이

안녕하세요 여러분 삽잡이입니다. 오늘은 캡슐화에 대해서 배워보려고 합니다... 캡슐... 아파들 보셨죠?? 말이 이상한가요... 혹시 약먹을 때 캡슐 까서 드셔보신 적 있으신가요? 그 캡슐 하나에는 수없이 셀수 없는 가루들이 들어있죠.... 프로그래밍으로 넘어와서 그래서 캡슐화는.... (죄송합니다... 발 비유...)아무튼... C++ 에서 캡슐화란 무엇인가를 캡슐로 만드는 과정이라고 볼 수 있습니다. 자... 예를 들어볼까요... 학생하면 떠오르거나 관련 있는 것들 다 말해볼께요! 이름, 번호, 체력, 혈액형, 공부하다, 알바하다, 잠자다, 졸다, 사랑에 빠지다(잉?) 등등.... 이 학생에 관한 모든 것들을 형식으로 묶는 일련의 과정을 바로, 캡슐화라고 하는 것입니다... C에서는 구조체로 이런 캡..

[Surro] :: Java 기초(1)

객체 지향 관련 용어 목록 - 클래스 : 사물의 단위, 상태(클래스, 인스턴스) 와 행위(메소드)를 갖는 자바의 기본 단위. public class Surro { int study; // 상태 public void Sing(int Song) { // 행위 .................. } } - 캡슐화 : 연관된 '상태'와 '행위'를 결정하는 기능을 묶어주는 것. > 캡슐화를 통해 클래스 밖에서 접근 가능한 대상을 제한하는 정보 은닉이 가능. > 하나의 객체를 위한 코드가, 다른 객체를 위한 코드와 무관하게 수행할 수 있는 모듈화가 가능. public class Surro { private int study; // private로 선언함으로써 정보 은닉 public void Sing(int Song)..