반응형
1. 클래스 문법 예제
class Person {
private name: string; // private 접근 제한자를 사용하여 속성을 외부로부터 보호
protected age: number; // protected 접근 제한자를 사용하여 하위 클래스에서 접근 가능한 속성
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
public greet(): void {
console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
}
}
class Student extends Person {
private studentId: number;
constructor(name: string, age: number, studentId: number) {
super(name, age); // 상위 클래스의 생성자 호출
this.studentId = studentId;
}
public study(): void {
console.log(`${this.name} is studying with student ID ${this.studentId}.`);
}
}
const person = new Person("John", 30);
person.greet(); // 출력: Hello, my name is John and I'm 30 years old.
const student = new Student("Alice", 20, 12345);
student.greet(); // 출력: Hello, my name is Alice and I'm 20 years old.
student.study(); // 출력: Alice is studying with student ID 12345.
위의 예제에서는 Person이라는 기본 클래스와 Student라는 클래스를 정의했습니다. Person 클래스는 이름과 나이를 가지며, greet 메서드로 인사하는 기능을 갖고 있습니다. Student 클래스는 Person을 상속받아 학생 번호(studentId)를 추가로 가지고 있으며, study 메서드를 가진 기능을 추가로 정의했습니다.
클래스를 사용할 때 주의할 점:
- 클래스의 속성과 메서드에 접근 제한자를 적절하게 사용하세요. private 접근 제한자는 외부에서의 접근을 제한하고, protected 접근 제한자는 하위 클래스에서의 접근을 허용합니다.
- 클래스의 생성자는 constructor 메서드로 정의하고, super 키워드를 사용하여 상위 클래스의 생성자를 호출해야 합니다.
- 클래스를 사용하여 객체를 생성할 때는 new 키워드를 사용합니다.
- 상속을 사용할 때는 extends 키워드를 사용하여 상위 클래스를 지정합니다.
- 클래스의 인스턴스를 사용하여 속성과 메서드에 접근할 때는 인스턴스명. 속성명 또는 인스턴스명.메서드명()과 같은 방식을 사용합니다.
클래스는 객체 지향 프로그래밍의 핵심 개념이므로, 객체의 상태와 동작을 캡슐화하고 코드를 모듈화 하여 유지보수성과 재사용성을 높이는 데 사용됩니다.
반응형
'기억보단 기록을 > Typescript' 카테고리의 다른 글
[Typescript] Section 10. 타입추론 (0) | 2023.05.20 |
---|---|
[Typescript] Section 09. 제네릭 (0) | 2023.05.20 |
[Typescript] Section 07. Enum (0) | 2023.05.20 |
[Typescript] Section 06. 연산자를 이용한 타입 정의 (0) | 2023.05.20 |
[Typescript] Section 05. 타입 별칭, Type vs Interface (0) | 2023.05.20 |