아디봉의.net
C# 클래스란? 본문
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 |