1 minute read

class

: 객체를 생성하기 위해 해당 객체가 가져야 할 속성과 메소드를 정의해 놓는 템플릿

메소드는 클래스 내부에서 정의된 함수로, 객체가 수행할 수 있는 작업을 정의한다.

class이름 지을때는 관습적으로 첫 글자를 대문자로 쓴다



생성자 constructor() : 초기화 작업 수행. 클래스로부터 객체를 생성할 때 초기 속성값을 세팅해준다

image-20240623005856599

image-20240623005911778

=> New 키워드로 객체를 생성하고, 매개변수 자리에 들어오는 인자가 각 속성의 ‘값’으로 할당된다



위와 같이 쇼핑몰의 각 티셔츠 정보를 객체로 만들었다고 하자

그런데 쇼핑몰에는 티셔츠 말고도 바지도 있고 아우터도 있다

그리고 모든 제품에는 스타일, 컬러, 가격 같은 속성이 공통적으로 필요하다


이럴때는 ‘상속’이라는 클래스의 특성을 이용한다

이른바 ‘ 상위 클래스’를 만들어 스타일, 컬러, 가격처럼 공통되는 속성을 넣어주고

하위 클래스에서 이를 가져와 사용할 수 있도록 한다


super() : 상위 클래스를 지칭함

extends 상위 클래스 : 상위 클래스 불러오기

image-20240623011732202

=> 상위 클래스 Product에 스타일, 컬러, 가격 속성을 정의한다 

extends로 상위 클래스에 접근하고, super()로 해당 값을 가져온다

image-20240623011805716


클래스 안에는 관련된 함수를 넣을 수도 있다 (캡슐화)

image-20240623012932730

image-20240623012952986

=> 가격에 “원”을 붙이는 getPrice 함수를 정의하고 호출하기


[접근자 프로퍼티 get, set과 활용]

image-20240623015512829

image-20240623015530004

Reviews 라는 리뷰수 배열을 만들고 그 배열에서 값을 찾아 review에 할당하도록 한다

첫번째 console.log(pants1.review);는 get 메서드가 기본 반환하는 값인 this.review = this.reviews[0] => ‘+10’

pants1.reviewNumber = 1; 로 set 메서드를 호출해 1을 할당 => this.review = this.reviews[1] => ‘+100’



[ 클래스 활용의 장점 ]

1. 코드 재사용성 : 객체의 공통되는 어떠한 속성, 기능을 미리 정의해놓고 여러 객체를 손쉽게 생성할 수 있으며 반복작업을 줄인다.

2. 모듈화 : 각 클래스는 독립적이며, 객체의 특성과 기능을 한 곳에 모아 관리할 수 있다.

3. 상속 : 상속을 통해 다른 클래스로부터 특성을 상속받거나 확장할 수 있다.

Updated: