아디봉의.net

C# 클래스란? 본문

C#

C# 클래스란?

아디봉 2012. 9. 14. 17:34

c#에서 제공하는 기본적인 데이터 타입은 int, long, float, double, char,,,등이있다. 이러한 데이터 타입에 명시된 built-in 데이터 타입을 우리는 단순타입이라고 한다.

 

* built-in 타입의 한계

- 정해진 형의 데이터만 넣을수 있다. 즉 데이터 타입에 명시된 형태의 데이터만을 넣어야 하는것이다.

이러한 한계를 극복하기 위해 여러개의 변수를 묶어서 새로운 데이터 타입으로 만드는 방법을 구조체와 클래스가 제공한다.

 

대표적 사용자 정의 데이터 타입

- 구조체 : 값타입의 사용자 정의 데이터 타입 (선언과 동시에 메모리 할당- 값타입특징)

- 클래스 : 참조타입의 사용자 정의 데이터 타입 (변수의 선언과 동시에 메모리가 만들어지지 않음)

ex) class선언

class Person

{

public int age; //class내부의 멤버필드

public long height; //class내부의 멤버필드

public float weight; //class내부의 멤버필드

}

Person클래스의 메모리생성 (구조체와 달리 클래스는 참조타입이므로 new를 이용해서 인스턴스를 생성해주어야 한다.)

Person h = new Person();

 

 

* 클래스의 구성요소

변수(Variable) = 멤버변수(member variable) 또는 멤버필드 (member field)

함수(method) = 멤버함수(member method) 

 

클래스 내에 함수삽입

public class Top{

public int a;

public int b;

}

Top라는 클래스는 8바이트 메모리 지도에 해당, top클래스를 이용해서 변수를 만들면 메모리에 생성된다. 단 값타입과 달리 new 와 생성자를 함계 호출해줘야만 top의 메모리가 생성된다.

 

Top t = new Top();

 

클래스내의 함수의 삽입

public class Top

{

public int a;

public int b;

public int GetData()

{

return a + b;

}

}

 

인스턴스 생성 부분

Top t = new Top(); //t= 8byte메모리변수

t.a = 1000;

t.b = 2000;

int aa = t.GetData();

 

Top s = new Top(); //s= 8byte메모리변수

s.a = 123;

s.b = 456;

int bb = s.GetData();

 

* t와 s를 이용해서 GetData()를 호출할 수 있다.

 

함수는 클래스내의 존재하는 모든 멤버에 대해서 마음대로 접근가능하다.

 

'C#' 카테고리의 다른 글

SOA, ESB, BPM, REST  (0) 2012.09.14
C# 값.참조타입 메모리정의, 객체& 인스턴스정의  (0) 2012.09.14
C# value 타입과 reference 타입  (0) 2012.09.14
C# is와 as 차이점 사용법  (0) 2012.09.14
C# dll import 사용하기  (0) 2012.09.13