자바를 접해본 분들이라면 클래스와 인스턴스라는 용어를 알고 계실것입니다.

상당히 교묘한 용어들이라 설명하는 쪽이나 이해하는 쪽이나 짜증이 날 법하지만,

여기서는 클래스와 인스턴스라는 개념을 쉽게 이해하기 위해서 스타크래프트와 햄버거의

예를 들어 보겠습니다.

 

 그 유명한 게임, 스타크래프트에는 등장하는 종족이 3개 있습니다.

프로토스 종족,테란 종족,저그 종족이 그 주인공인데, 간단하게 프로토스,테란,저그라고

부릅니다. 이중 프로토스에 질럿(zealot)이란 유닛이 있습니다. 싸움잘하는 멋진 유닛인데요,

질럿은 같은 프로토스 유닛인 드라군(dragoon)과는 다릅니다.물론 리버(Reaver)하고도

다르지요. 당연한 얘기같습니다만 지금 이 비교에 등장하는 용어인 질럿,드래군,리버등은

클래스의 의미에 해당합니다.

하지만 질럿 하나(한마리,방송에서는 한기라고 합니다.)라고 했을때 그때 질럿 하나는

인스턴스의 개념입니다. 마우스를 클릭해서 쭈르륵 옮겨주면 마우스를 따라 움직이는 그

질럿은 인스턴스라는 뜻입니다.

질럿에 대한 개념을 언급할 때는 클래스이고, 실제 현재 만들어져 움직이고 있는

화면에 보이는 질럿은 인스턴스라는 것입니다.

클래스는 개념속에 있는 것이고 인스턴스는 현재 존재하고 있는 것입니다.

 

다른 예로 롯데리아에서 파는 햄버거를 생각한다면 BigRib햄버거와 새우햄버거,

치즈햄버거, 짱구 어린이용 햄버거는 모두 다른 햄버거입니다.

스타크래프트의 예에서와 마차가지로 BigRib햄버거와 새우햄버거는 클래스의 개념입니다.

클래스는 전체의 특성등을 핵심적으로 정리해 놓은 추상적이고 개념적인 용어인 것입니다.

TV광고에 나오는 주현이 귀양가면서 광고한 BigRib 햄버거는 클래스의 개념을

광고하고 있는 것입니다. 크고,맛있고,재료는 어떤 것이 들어있고,가격은 얼마정도 하는

등등의 개념을 의미하니까요.

하지만 독자분들이 롯데리아에서 사먹는 BigRib 햄버거는 인스턴스입니다.

존재하고 있는 BigRib햄버거이기 때문입니다.

자바에서도 클래스와 인스턴스는 확연히 구별됩니다.

객체로 만들어진 녀석이 바로 인스턴스이니까요
Posted by
,