[자바스크립트_개념정리] 객체지향 프로그래밍 Class
class
: 객체를 생성하기 위해 해당 객체가 가져야 할 속성과 메소드를 정의해 놓는 템플릿
메소드는 클래스 내부에서 정의된 함수로, 객체가 수행할 수 있는 작업을 정의한다.
class이름 지을때는 관습적으로 첫 글자를 대문자로 쓴다
생성자 constructor() : 초기화 작업 수행. 클래스로부터 객체를 생성할 때 초기 속성값을 세팅해준다
=> New 키워드로 객체를 생성하고, 매개변수 자리에 들어오는 인자가 각 속성의 ‘값’으로 할당된다
위와 같이 쇼핑몰의 각 티셔츠 정보를 객체로 만들었다고 하자
그런데 쇼핑몰에는 티셔츠 말고도 바지도 있고 아우터도 있다
그리고 모든 제품에는 스타일, 컬러, 가격 같은 속성이 공통적으로 필요하다
이럴때는 ‘상속’이라는 클래스의 특성을 이용한다
이른바 ‘ 상위 클래스’를 만들어 스타일, 컬러, 가격처럼 공통되는 속성을 넣어주고
하위 클래스에서 이를 가져와 사용할 수 있도록 한다
super() : 상위 클래스를 지칭함
extends 상위 클래스 : 상위 클래스 불러오기
=> 상위 클래스 Product에 스타일, 컬러, 가격 속성을 정의한다
extends로 상위 클래스에 접근하고, super()로 해당 값을 가져온다
클래스 안에는 관련된 함수를 넣을 수도 있다 (캡슐화)
=> 가격에 “원”을 붙이는 getPrice 함수를 정의하고 호출하기
[접근자 프로퍼티 get, set과 활용]
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. 상속 : 상속을 통해 다른 클래스로부터 특성을 상속받거나 확장할 수 있다.