
클래스는 객체 지향 프로그래밍에서 객체를 생성하기 위한 틀이자 설계도입니다.
클래스는 객체의 상태와 행위를 정의하는 속성과 메서드로 구성됩니다.
클래스를 사용하면 코드의 재사용성과 가독성이 향상되며, 유지 보수가 용이해집니다.
TypeScript에서 상속은 기존 클래스의 속성과 메서드를 새로운 클래스가 물려받는 것을 의미합니다.
이를 통해 코드의 중복을 줄이고, 기능 확장이 용이해집니다.
상속받은 클래스는 기존 클래스의 메서드를 오버라이딩하여 기능을 수정할 수도 있습니다.
TypeScript에서 접근 지정자는 클래스의 속성과 메서드에 대한 접근 범위를 제한합니다.
public은 모든 곳에서 접근 가능하고, protected는 해당 클래스와 하위 클래스에서만 접근 가능합니다. private는 해당 클래스 내부에서만 접근 가능합니다.
TypeScript에서 readonly 지정자는 변수를 한 번만 할당할 수 있게 하는 것으로, 이후에는 값을 변경할 수 없게 합니다.
TypeScript에서 게터(getter)와 세터(setter)는 객체의 속성에 접근하거나 값을 변경할 때 사용하는 메서드입니다.
이를 통해 객체의 내부 상태를 외부에서 직접 변경하지 않고, 간접적으로 제어할 수 있게 됩니다.
TypeScript에서 전역 프로퍼티는 모든 객체가 공유하는 속성입니다.
클래스 내에서 static 키워드를 사용하여 전역 프로퍼티를 정의할 수 있습니다.
TypeScript에서 추상 클래스는 완전한 기능을 갖추지 못한 클래스로, 자체적으로 객체를 생성할 수 없습니다.
추상 클래스를 상속받은 하위 클래스는 추상 클래스의 메서드를 구현해야 하며, 그렇게 함으로써 완전한 기능을 갖출 수 있습니다.
추상 클래스는 공통된 기능을 묶어서 관리하기에 유용합니다.
TypeScript에서 메서드 오버라이딩은 상속받은 클래스에서 부모 클래스의 메서드를 재정의하는 것을 의미합니다.
하위 클래스에서 부모 클래스의 메서드와 동일한 이름의 메서드를 선언하면, 부모 클래스의 메서드 대신 하위 클래스의 메서드가 호출됩니다.
이를 통해 상속받은 클래스에서 기존 메서드의 기능을 수정하거나 확장할 수 있습니다.
이상으로 TypeScript에서 클래스의 기본 개념과 클래스와 관련된 주요 기능들을 살펴보았습니다. TypeScript를 이용하여 객체 지향 프로그래밍을 구현할 때 클래스는 핵심적인 역할을 하며, 클래스를 활용하여 효율적이고 유연한 코드를 작성할 수 있습니다.