C#의 복합 데이터 형식에는 클래스 말고도 구조체라는 것이 있다. 구조체는 클래스의 사촌지간쯤 된다고 생각하면 편하다. 구조체도 필드와 메소드를 가질 수 있고 상당 부분이 비슷하다. 다음과 같이 struct 키워드를 이용해 선언한다. struct 구조체명 { } //// struct ExampleStruct { public int Field1; public int Field2; } 구조체는 데이터를 담기 위한 자료 구조로 사용된다. 따라서 은닉성은 고려하지 않고 편의를 위해 필드를 public으로 선언해서 사용하는 경우가 많다. 다음 표는 구조체와 클래스의 차이점이다. 특징 클래스 구조체 키워드 class struct 형식 참조 형식 값 형식 복사 얕은 복사 깊은 복사 인스턴스 생성 new 연산자와 생성..
객체 지향 프로그래밍에서 다형성은 객체가 여러 형태를 가질 수 있음을 의미한다. 다형성은 하위 형식 다형성의 준말이다. 이 말은 자신을 상속받아 만들어진 파생 클래스를 통해 다형성을 실현한다는 것 적절한 예인지는 모르지만 간단한 예를 들어 보겠다. 스타크래프트의 종족 클래스인 Kind 클래스에 Initialize 메소드를 가지고 있다. class Kind { public virtual void Initialize() { Console.WriteLine("Start Game"); } } 이 Kind 클래스는 저그, 프로토스, 테란으로 파생될 수 있다. 그리고 게임을 시작할 때 각각 드론, 프로브, SCV를 가지고 시작한다. class Zerg { public override void Initialize()..
클래스는 다른 클래스로부터 필드나 메소드, 프로퍼티 같은 멤버들을 물려 받을 수 있습니다. 객체 지향 프로그래밍에서는 물려받는 클래스(파생or자식 클래스)가 유산을 물려줄 클래스(기반or부모 클래스)를 지정 다음 코드가 상속의 예이다. class Base() { public void BaseMethod() { Console.WriteLine("BaseMethod"); } } class Derived : Base { } 파생 클래스는 자신만의 고유한 멤버 외에도 기반 클래스로부터 물려받은 멤버를 가지고 있다. 이것은 바로 파생 클래스가 기반 클래스 위에 새로운 멤버를 얹어서 만든 것이기 때문이다. 파생 클래스는 객체를 생성할 때 내부적으로 기반 클래스의 생성자를 호출한 후에 자신의 생성자를 호출하고 객체가..
static 한정자 메소드나 필드가 클래스의 인스턴스가 아닌 클래스 자체에 소속되도록 지정하는 한정자 static한정자를 사용해서 얻는 효과는 static으로 수식한 필드는 프로그램 전체에 걸쳐 하나밖에 존재하지 않는다. 따라서 프로그램 전체에서 공유해야 하는 변수가 있다면 정적 필드를 이용하면 된다. 이와 반대되는 것을 인스턴스 메소드라고 한다. 왜냐하면 클래스의 인스턴스를 생성해야만 호출할 수 있기 때문이다. class MyClass { public static void StaticMethod() { } public void InstanceMethod() { } } 객체 내부의 데이터를 이용해야 한다면 = 인스턴스 메소드 내부 데이터를 이용할 일이 없다 = 정적 메소드 this 키워드 this는 객체..
객체 지향 프로그래밍(OOP) 코드 내의 모든 것을 객체(Object)로 표현하고자 하는 프로그래밍 패러다임. 객체는 세상의 모든 것을 지칭하는 단어. 객체는 속성과 기능을 가지고 있다. 코드로는 속성을 변수, 기능을 메소드로 표현을 한다. 객체 지향 프로그래밍에서 클래스는 객체를 만들기 위한 청사진이다. 클래스 선언과 인스턴스(객체) 생성 ////Class의 기본 형태 class 클래스명 { } 위와 같은 형태로 클래스를 하나 만들겠습니다. class Cat { public string Name; public string Color; public void Meow() { Console.WriteLine("{0} : 야옹", Name); } } 클래스 안에 선언된 변수를 필드(Filed)라고 한다. 그리..
class 클래스 명 { 한정자 반환형식 메소드명(매개변수 목록) { 메소드의 코드 return 결과; } } 메소드 - 객체 지향 프로그래밍 언어에서 사용하는 용어로 함수 혹은 프로시저라고도 불립니다. 자세히 들어가면 의미 차이가 존재하지만 큰 맥락에서는 각 용어들이 같은 것을 지칭합니다. - 메소드는 일련의 코드를 하나의 이름 아래 묶은 것입니다. - 객체의 일을 처리하는 방법, 또는 방식이라고 생각하기 - 메소드는 매개 변수와 반환 형식을 가진 채 클래스 내부에서 존재한다. - 코드의 반복을 방지해준다. 실제 메소드의 선언 예는 다음과 같다. class Calc { public static int Plus(int a, int b) { Console.WirteLine("Input : {0}, {1}"..

object형식 물건, 객체라는 뜻이다. object 형식은 어떤 데이터든지 다룰 수 있는 데이터 형식 object형식이 다른 데이터 형식을 다룰 수 있는 이유는 "상속"때문이다. 다시 말하면 object 형식이 모든 데이터 형식의 조상이다. 따라서 컴파일러는 어떤 형식의 데이터라도 object에 담아 처리할 수 있다. 이렇게 모든 데이터를 다루는 매커니즘을 박싱과 언박싱이라 한다. 박싱과 언박싱 object형식은 참조 형식이라 힙에 데이터를 할당한다. 그런데 값 형식의 데이터를 객체에 담았을 경우 어느 메모리에 데이터가 할당될까? 값 형식의 데이터를 힙에 할당하기 위해 "박싱" 기능이 있다. object a = 20; 20은 상자에 담겨 힙에 할당되고 a는 그 주소를 참조하게 된다. 이제 이 박싱된 데..

이전 글에 이어서 부동 소수점 형식부터 설명하는 글이다. 부동 소수점 형식 소수점이 고정되어 있지 않고 움직이면서 수를 표현한다는 뜻에서 지어진 이름 소수점을 이동시켜 수를 표현하면 고정 시켰을 때보다 더 제한된 비트를 이용해서 훨씬 넓은 범위의 값을 표현 부동 소수점 형식은 정수뿐 아니라 유리수를 포함하는 실수 영역의 데이터를 다룬다. ex) 3.14 / 11.08 부동 소수점 형식은 두가지 단점때문에 정수 형식을 대체하지 못한다. 1. 소수점을 표현하기 위해 일부 비트를 사용(게다가 부호표현에 비트 사용)하기 때문에 같은 크기의 정수 계열 형식과 같은 크기의 수를 표현할 수 없다. 2. 산술 연산 과정이 정수 계열 형식보다 보잡해서 느리다. 이러한 이유 때문에 무조건 부동 소수점 형식을 사용하는 건 ..
C#이 제공하는 기본 데이터 형식에는 모두 15가지가 있다. 이들은 크게 숫자 형식, 문자열 형식, 논리 형식, 오브젝트 형식으로 나누어진다. 이 중에서 문자열과 오브젝트 형식만 참조 형식에 해당하며, 나머지는 모두 값 형식이다. 숫자 데이터 형식 프로그래밍을 하면서 가장 많이 다루는 데이터 형식. 텍스트 데이터도 알고 보면 각 문자 하나 하나가 내부적으로 숫자 코드로 되어 있다.(아스키 코드 참조) C#은 15가지 기본 자료 형식 중 12가지를 숫자 데이터 형식으로 제공한다. 이 12가지는 다시 "정수", "부동 소수", "소수" 이렇게 3가지로 나뉘게 된다. 정수 계열 형식 이름처럼 정수 데이터를 담기 위해 사용. 12가지의 숫자 형식 중 9가지가 정수 계열 형식이다. 왜냐면 9가지의 정수 형식은 각..

컴퓨터의 용도는 정말 다양하다. 계산기로 쓰거나, 자료를 저장하는 기록 매체로 사용도 되고 사진이나 음악을 다룬느 미디어 매체로 사용도 된다. 용도가 다양해짐에 따라 컴퓨터가 다루어야 하는 데이터의 종류도 다양해졌다. 컴퓨터가 무엇을 하느냐는 소프트웨어가 결정한다. 이 소프트웨어는 사람이 만든다. 소프트웨어가 다뤄야 하는 수많은 데이터는 만든 사람이 책임지고 돌봐야 한다. C#은 이런 일을 돕기 위해 다양한 종류의 데이터 형식(Data Type)을 제공한다. 이번 2. 데이터의 종류에서 다룰 내용은 아래와 같습니다. 1. 기본 데이터 형식(Primitive Type) 2. 상수(Constant) 3. 열거형(Enum) 위 데이터 타입은 기본 데이터 형식이고 C#은 이 기본 데이터 형식을 부품 삼아 구성되..
- Total
- Today
- Yesterday
- 생활코딩#동영상을#글로#html
- 동영상을
- 네트워크 프로그래밍
- TAG
- 조건문
- Link
- HTML
- 선택자
- 관계형데이터베이스
- 객체
- php
- C언어
- css
- 문자열
- 변수
- PHP&MySQL
- javascript
- 안드로이드 스튜디오
- 알고리즘
- 생활코딩
- GRID
- inline
- 기초
- 언리얼엔진4
- 정렬
- 생활코딩#MySQL
- visual studio code
- 언리얼엔진
- 차이점
- 글로
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |