Объектно-ориентированное программирование (ООП) — это мощная парадигма, которая позволяет разработчикам организовывать и структурировать свой код более модульным и пригодным для повторного использования образом. TypeScript, являющийся расширенной версией JavaScript, обеспечивает расширенную поддержку ООП благодаря синтаксису, основанному на классах. В этой статье мы рассмотрим различные методы и концепции, связанные с классами в TypeScript, а также приведем примеры кода.
Содержание:
-
Создание класса
-
Конструкторы и инициализация
-
Методы класса
3.1 Методы экземпляра
3.2 Статические методы -
Наследование
-
Модификаторы доступа
-
Инкапсуляция
-
Полиморфизм
-
Создание класса.
Чтобы определить класс в TypeScript, мы используем ключевое словоclass, за которым следует имя класса. Вот пример:
class Person {
// Class definition goes here
}
- Конструкторы и инициализация.
Конструкторы — это специальные методы, которые вызываются при создании объекта класса. Они используются для инициализации свойств класса. Вот пример:
class Person {
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
- Методы класса.
Методы — это функции, определенные внутри класса, которые можно вызывать в экземплярах класса. Существует два типа методов: методы экземпляра и статические методы.
3.1. Методы экземпляра:
Методы экземпляра связаны с экземплярами классов и могут получать доступ к данным, специфичным для экземпляра. Вот пример:
class Person {
greet() {
console.log(`Hello, my name is ${this.name}`);
}
}
const person = new Person();
person.greet(); // Output: Hello, my name is undefined
3.2. Статические методы:
Статические методы принадлежат самому классу и могут вызываться без создания экземпляра класса. Они полезны для служебных функций или операций, которые не относятся к какому-либо экземпляру. Вот пример:
class MathUtils {
static add(a: number, b: number): number {
return a + b;
}
}
console.log(MathUtils.add(2, 3)); // Output: 5
- Наследование:
Наследование позволяет классу наследовать свойства и методы другого класса. Это способствует повторному использованию кода и позволяет создавать иерархические отношения между классами. Вот пример:
class Employee extends Person {
constructor(name: string, age: number, employeeId: string) {
super(name, age);
this.employeeId = employeeId;
}
}
const employee = new Employee("John Doe", 30, "E12345");
employee.greet(); // Output: Hello, my name is John Doe
- Модификаторы доступа.
TypeScript предоставляет три модификатора доступа:public,privateиprotected. Они контролируют видимость и доступность членов класса. Вот пример:
class Person {
private name: string;
protected age: number;
public greet() {
console.log(`Hello, my name is ${this.name}`);
}
}
-
Инкапсуляция.
Инкапсуляция — это объединение данных и методов внутри класса, скрывающее детали внутренней реализации от внешнего мира. Модификаторы доступа играют решающую роль в достижении инкапсуляции. -
Полиморфизм:
Полиморфизм позволяет рассматривать объекты разных классов как экземпляры общего суперкласса. Это способствует гибкости и расширяемости кода. Вот пример:
class Shape {
area() {
// Common area calculation logic
}
}
class Rectangle extends Shape {
area() {
// Rectangle-specific area calculation logic
}
}
class Circle extends Shape {
area() {
// Circle-specific area calculation logic
}
}
const shapes: Shape[] = [new Rectangle(), new Circle()];
shapes.forEach((shape) => {
console.log(shape.area());
});
В этой статье мы рассмотрели различные методы и концепции, связанные с классами в TypeScript. Мы рассмотрели создание классов, конструкторы, методы экземпляров, статические методы, наследование, модификаторы доступа, инкапсуляцию и полиморфизм. Понимание этих концепций позволит вам писать более модульный и удобный в обслуживании код на TypeScript.