클래스

class Student {
  // field
  name;
  grade;
  gender;

  // contructor
  constructor(name, grade, gender) {
    this.name = name;
    this.grade = greade;
    this.gender = gender;
  }

  // method
  study() {
    console.log('공부')
  }

  introduce () {
    console.log(`안녕하세요. ${this.name}`)
  }
}

// instance 생성
let student = new Student("신봄", "A+", 'male);
student.study()

타입스크립트의 클래스

employeeB는 구조적으로 타입을 결정하는 구조적 타입 시스템을 따르기 때문에 가능하다.

any타입에 할당되는 위험한 상황을 방지하기 위해 "anoImplicitAny"옵션은 건드리지 않는 것이 좋다.

자식 클래스는 super()가 있어야 타입 오류가 발생하지 않는다.

접근제어자(Access Modifier)

접근제어자는 기본적으로 public

private

private은 클래스 내에서만 접근할 수 있음.

클래스 내부에서만 접근할 수 있으므로, 별도의 메소드를 만들어서 리턴하도록 해야 접근할 수 있다.

자식클래스에서도 접근할 수 없음

protected

protected도 클래스 내부에서만 접근할 수 있지만, 자식 클래스에서 접근을 허용하고 싶으면, protected를 사용하면 된다.


생성자

생성자에 접근제어자를 달면 자동으로 필드를 알아서 생성함.

그러므로, constructor에 접근 제어자를 달면 filed에는 정의하지 않아도 됨

그리고 자동으로 값도 할당이 됨.

인터페이스와 클래스

클래스의 타입정의는 implements를 이용한다.

interface를 이용하여 정의된 속성들은 public만 허용됨.

private필드가 필요하다면, 별도로 정의를 해줘야 함.

Last updated