클래스(Class)란 구조체, 열거형(Structure, Enumeration(struct, enum))과 마찬가지로 새로운 데이터 타입을 만드는 생성기 입니다. 이 클래스에는 여러 멤버(구성요소)들(데이터 타입, 변수 등)이 있는데 이는 나중에 말씀드리는걸로 하고 우선 클래스만 가지고 이야기 하겠습니다.
기본적으로 데이터 타입(Data type)이라고 하면 흔하게 보고 많이 사용하는
string, int, float, char
등이 있습니다 이런 데이터 타입을 Built-in 타입 또는 단순 타입 이라고 하는대 이런 타입들은 정해진 타입의 데이터만 넣을 수 있다는 겁니다. 예를 들자면 다음과 같습니다.
int iA = 0 string sA = "Data type" char cA = "A"
이렇게 정해진 타입의 데이터만 넣다보니 셋트로 묶어버리고 싶은겁니다.
class sampleClass { int intSample = 0; string strSample = "sampleClass"; char charSample = "A"; }
그래서 등장하게 되는게 구조체, 열거형, 클래스 인대 따로 나눠놓은걸 보면 차이가 존재하는것 같습니다. 그 차이는 둘다 사용자 정의 데이터 타입이라는 공통점이 있지만 구조체는 값타입이며 클래스는 참조타입 이라는 차이 입니다.
값타입(구조체)은 선언과 동시에 메모리가 생성됩니다. 반면에 참조타입(클래스)은 선언을 하면 선언으로 끝나고 메모리가 생성되지 않습니다. 그래서 자주보게되는 키워드가 있는대 바로 "new"키워드 입니다. 이런식으로 많이 보셨을 겁니다.
sampleClass spClass = new sampleClass()
이 의미는 결국 선언과 동시에 메모리를 생성하겠다는 의미 입니다.