클래스의 요소: 멤버(member), 필드(field), 생성자(constructor), 메소드(method)
인스턴스(instance): new 연산자에 의해 생성된 객체
class Person {
name :string;
constructor(name :string) {
this.name = name;
}
say() {
return "Hello, My name is " + this.name;
}
}
let person = new Person("june");
public
, protected
, private
public
으로 선언되지만, 명시적으로 표시해도 된다.class Animal {
public name :string;
constructor(thsName :string) {
this.name = theName;
}
}
new Animal("Cat").name;
class Animal {
private name :string;
constructor(theName :string) {
this.name = theName;
}
}
new Animal("Cat").name; // Error
extends 키워드로 기존 클래스에서 확장된 새로운 클래스를 생성할 수 있다.
기초 클래스는 상위클래스(superclass), 파생된 클래스는 하위클래스(subclass)
읽기만 가능한 속성 선언을 위해 사용.(수정 불가)
변경될 경우가 없는 상수에 해당 키워드를 사용.
const
는 변수 참조를 위해, readonly
는 속성을 위해
다른 클래스들이 파생될 수 있는 기초 클래스로 직접 인스턴스화를 할 수 없는 클래스
abstract
키워드를 이용해 추상 클래스나 추상 메서드를 정의하며, 추상 메소드는 클래스에 구현되어 있지 않기 때문에 파생된 클래스에서 정의해야 한다.
추상 클래스 사용을 위해서는 상속을 강제한다.
이 글은 엘리스 SW 엔지니어 트랙을 기반으로 작성되었습니다.