참고자료
MDN : Class
w3schools : Class
클래스는 객체지향 프로그래밍의 핵심이다
객체지향 프로그래밍이란, 프로그램을 객체들로 구성하고,
객체들 간에 서로 상호작용하도록 작성하는 방법이다
Class는 객체를 만들기 위한 설계도 (틀)이며,
Class의 속성(객체 고유의 특성)은 constructor() 메서드 내에 할당되며,
객체의 동작을 설명하는 method()도 있다(함수 형태)
클래스 내 어디에서나 사용가능하고, 변경 가능한 상태(멤버변수)를 가진다 (뭔말??)
얘는 자바...?
이 설계도 안에는 객체 고유의 property(속성)과 객체의 동작을 설명하는 method(메서드)가 있다
class 클래스이름 {
}
클래스이름은 항상 대문자로 시작!
CamelCase로 작성
class를 통해 생성된 객체 (객체를 메모리에 올릴때)
키워드 변수이름 = new 클래스이름(인자);
new
를 선언해 클래스를 통해 객체를 생성한다는 의미
클래스의 고유한 속성이 constructor안에 할당됨
class는 새로운 instance를 생성할 때마다 constructor() 메서드 호출
class Car {
// 인스턴스가 생성될 때마다 호출됨
constructor(name, price) {
// Car class의 멤버 변수
// Car class내부 어디에서나 사용가능
// this는 해당 인스턴스의 속성을 말함
this.name = name;
this.price = price;
}
}
constructor() 메서드 내의 this는 해당 instance를 의미
constructor()내의 속성 this.name, this.price는 해당 클래스에서는 어느 곳에나 사용가능하다, 이런 변수를 멤버 변수라고 부른다 (this로 접근)
메서드는 함수
객체의 동작을 설명
객체가 프로퍼티 값으로 갖고 있는 것을 메서드라고 부른다
class Car {
constructor(name, price) {
this.name = name;
this.price = price;
this.department = "선릉지점";
}
// 메서드
applyDiscount(discount) {
return this.price * discount;
}
// 메서드
changeDepartment(departmentName) {
this.department = departmentName;
}
}