1. 클래스 생성자 매써드 - 매개변수
// 매개변수 미리 선언하기
class Car {
color: string; // 아래의 생성자매서드에 사용된다면, 미리 선언을 해줘야 한다.
constructor(color: string) {
this.color = color;
}
}
// 또는, 생성자 매서드의 매개변수에 'public' 또는 'readonly'
class Car {
constructor(public color: string) {
this.color = color;
}
}
const bmw = new Car("red")
2. 접근 제한자 (Access modifier) : public
// Car클래스
class Car {
name: string = "car" // public name: string = "car" 와 동일
color: string;
constructor(color: string) {
this.color = color;
}
start() {
console.log("start")
}
}
// 자식클래스
class Bmw extends Car {
constructor(color: string) {
super(color);
}
showName() {
console.log(super.name) // 자식클래스에서 사용가능
}
}
const z4 = new Bmw("black") // 클래스 인스턴스 접근 가능
3. 접근 제한자 (Access modifier) : private
// Car클래스
class Car {
private name: string = "car" // #name: string = "car" 와 동일
color: string;
constructor(color: string) {
this.color = color;
}
start() {
console.log("start")
console.log(this.name) // Car 클래스에서만 내부에서만 사용가능(자식클래스에서 사용불가)
// console.log(this.#name)로도 표현 가능
}
}
4. 접근 제한자 (Access modifier) : protected
class Car {
protected name: string = "car"
color: string;
constructor(color: string) {
this.color = color;
}
start() {
console.log("start")
}
}
// 자식클래스
class Bmw extends Car {
constructor(color: string) {
super(color);
}
showName() {
console.log(super.name) // 자식클래스에서 사용가능
}
}
const z4 = new Bmw("black")
console.log(z4.name) // 에러발생: 클래스 인스턴스로 접근 불가
5. static 정적 멤버 변수
// static 정적 멤버 변수
class Car {
name: string = "car";
static wheels = 4;
start() {
console.log("start")
console.log(this.name)
console.log(Car.wheels) // static을 사용할때는, this가 아닌 Class명을 적어야한다.
}
}
console.log(Car.wheels)
6. 추상 클래스
abstract class Car {
color: string;
constructor(color: string) {
this.color = color
}
abstract doSometing():void // 상속받는 곳에서 '구체적인 기능'을 구현해주어야 함
}
// const car = new Car("red") // 오류 발생: 추상 클래스는 new를 이용해서 객체를 만들 수 없음
class Bmw extends Car { // 오직 상속을 통해서만 객체를 만들 수 있음
constructor(color: string) {
super(color);
}
doSomething(){ // 상속받는 곳에서 '구체적인 기능'을 구현해줌
alert(3)
}
}
const z4 = new Bmw("black")
'개발 공부 > Typescript' 카테고리의 다른 글
[코딩앙마] typescript - 5 : 리터럴, 유니온/교차 타입 (0) | 2023.03.24 |
---|---|
[코딩앙마] typescript - 4 : 함수 (0) | 2023.03.23 |
[코딩앙마] typescript - 3 : 인터페이스 (0) | 2023.03.22 |
[코딩앙마] typescript - 2 : 기본타입 (0) | 2023.03.21 |
[코딩앙마] typescript - 1 : 타입스크립을 쓰는 이유 (0) | 2023.03.21 |