본문 바로가기

programming/JS

CLASS 와 OBJECT의 차이

클래스와 오브젝트의 차이란 뭘까,
처음에 JS 를 배울 때도, 이 차이에 대하여 깊히 생각해본 적은 없었다.
(왜냐면 어려웠기 때문에, 다른 부분에 대해 먼저 파헤쳐본 것 뿐!)

하지만, 이제는 피할 수 없다! **클래스**!
그리고 궁금하다... 너 사용법!!
클래스를 낱낱이 파헤쳐서 개발 인생에 광명 찾고 싶다!

나 오늘은 클래스 마스터로 거듭날 하루를 보낼거다! 아무도 막지 마라!


## Class와 object
>객체 지향언어에서 사용되는 개념

Class는 `분류`라고 하면 object는 `개체`라고 생각할 수 있다.
즉 Class는 object라는 instance를 포괄하는 개념으로 볼 수 있는 것.

혹자는 Class를 붕어빵 틀에 비유하곤 한다.
즉, 붕어빵은 `붕어빵 틀`이라는 Class를 통해 만들어진 object, 즉 개별 INSTANCE라고 볼 수 있는 것이다.

각각의 붕어빵은, 팥 뿡어빵, 슈크림 붕어빵 등 다양성을 가지고 있다.
하지만, `소`라는 공통 속성에 다른 값을 부여한 것일 뿐, 아예 다른 개념이 아니다.

CLASS는 FIELDS(데이터)와 METHODS(객체 내부 함수)가 종합적으로 묶여있다.

>간혹 데이터만, 즉 FIELDS만 존재하는 클래스가 있는데 이는 Data class라고 불린다

클래스를 이용하여 상속과 다양성**(팥, 슈크림과 같은,.)** 이 일어날 수 있다.

Class는 정의만 된 것이고, 실제로 메모리에 할당되진 않는다. 
개별 인스턴스를 만들 수 있는 청사진에 불과하며, 함수 등과 마찬가지로 한번만 선언된다.  
내부 데이터는 없다.(그렇다고 항상 없다고 말할 수는 없다!)
반면 개별 인스턴스의 경우, 메모리에 할당된다.

이번에 공부하면서 GETTER와 SETTER, EXTENDS 와 SUPER 등 흥미로운 개념을 배웠는데 내일 한 번 읽으면서 정리해봐야겠다!

다시 한번 CLASS에 대한 개념을 상기하면서!! 내일 있을 새로운 프로젝트를 기대 반 두려움 반으로 기다리며 오늘의 벨로그 끝!