[JavaScript]Class 와 Object의 차이점

feelslikemmmm·2020년 11월 7일
0

TIL

목록 보기
34/36
post-thumbnail

Class vs Object

class란 조금 더 연관있는 데이터를 묶어놓는 컨테이너 같은 역할을 합니다

위 사진에서 Person이라는 class는 name과 age라는 property가 들어있고

말을 하는 기능 speack() 라는 function이 들어있습니다

이렇게 클래스 안에는 name과 age같은 속성, 즉 Fields가 들어있고

그리고 행동이라고 볼 수 있는 method가 들어있습니다

그래서 클래스는 조금 더 연관있는 데이터들을 묶어놓은,

Fields와 method가 종합적으로 묶여있는 것을 말합니다

간혹 클래스안에는 method는 들어있지 않고 data만, 즉 Fields만 들어있는 경우도 있습니다

그렇게도 굉장히 많이 쓰고, 그런 것들을 data Class 라고 부릅니다

클래스 안에서도 내부적으로 보여지는 변수와, 밖에서 보여질 수 있는 변수들을 나눌 수 있는데

이런것들을 encapsulation(캡슐화) 라고 합니다

그리고 클래스를 이용해서 상속(Inheritance)과, 다형성(Polymorphism)이 일어날 수 있는데

이런 모든것들이 가능한 것이 바로 객체지향 언어 입니다

우리가 실제로 살아가고 있는 세상에는 수많은 물체와 사물이 존재하는데

이렇게 프로그래밍을 할때도 사물과 물체들을 class로, object로 정의해서 프로그래밍 하는 것이

조금 더 자연스럽기 때문에, 개발자들이 조금 더 편하고 유연하게 프로그래밍을 할 수 있습니다

객체 지향 언어로 프로그래밍을 잘 하는 개발자는 풀어야 하는 문제나 구현해야 하는 문제를

객체로 잘 정의해서 만들 수 있는 개발자를 말합니다

클래스는 붕어빵을 만들 수 있는 틀을 말합니다

청사진이라고도 불리고 template(템플릿) 이라고도 불립니다

클래스 자체에는 data가 들어있지 않고 template만 정의해 놓습니다

이 클래스에는 이런 data만 들어올 수 있어 라고 정의만 해놓고 한번만 선언 합니다

이 클래스를 이용해서 실제로 data를 넣어서 만드는 것이 Object 입니다

클래스를 이용해서 새로운 instance를 생성하면 Object가 됩니다

Object는 클래스를 이용해서 굉장히 많이 만들 수 있고 클래스는 정의만 해놓은 것이라서

실제로 메모리에 올라가지 않지만 실제로 data를 넣으면 Object는 메모리에 올라가게 됩니다

그래서 붕어빵이라는 클래스를 이용해서 팥을 넣으면 팥 붕어빵이 되고,

슈크림을 넣으면 슈크림 붕어빵이 됩니다

이렇게 만들어진 붕어빵 자체는 Object이고

붕어빵을 만들기 위해 정의한 붕어빵 틀은 Class 입니다

profile
잘하는 것도 좋지만 꾸준함을 잃지 말자는 모토를 가지고 개발하고 있습니다 :)

0개의 댓글