Khái niệm
Lớp là khuôn mẫu để tạo ra các đối tượng có cùng cấu trúc dữ liệu và hành vi. Đối tượng là một thực thể cụ thể được tạo ra từ khuôn mẫu đó trong lúc chương trình chạy.
Ví dụ cơ bản
class Student:
def __init__(self, name):
self.name = name
def greet(self):
print("Xin chao,", self.name)
student = Student("Lan")
student.greet()
class Student
{
public string Name { get; }
public Student(string name)
{
Name = name;
}
public void Greet()
{
Console.WriteLine($"Xin chao, {Name}");
}
}
Student student = new Student("Lan");
student.Greet();
class Student {
constructor(name) {
this.name = name;
}
greet() {
console.log("Xin chao,", this.name);
}
}
const student = new Student("Lan");
student.greet();
#include <iostream>
#include <string>
using namespace std;
class Student {
public:
string name;
Student(const string& name) : name(name) {}
void greet() {
cout << "Xin chao, " << name << endl;
}
};
int main() {
Student student("Lan");
student.greet();
return 0;
}
class Student {
constructor(public name: string) {}
greet(): void {
console.log("Xin chao,", this.name);
}
}
const student = new Student("Lan");
student.greet();
Ghi chú theo ngôn ngữ
Object Pascal hỗ trợ class, constructor và method, nhưng cú pháp và hệ thư viện phụ thuộc mạnh vào môi trường như Free Pascal hoặc Delphi.
Trong Python, đối tượng thường được khởi tạo qua phương thức __init__. Từ khóa self tham chiếu tới chính đối tượng hiện tại.
class trong JavaScript là cú pháp hiện đại bao quanh mô hình nguyên mẫu. Cách viết này thuận tiện hơn cho người học, dù cơ chế nền vẫn là prototype-based.
C++ có cả class và struct. Khác biệt chính là mặc định private cho class và public cho struct. Cả hai đều có đầy đủ tính năng hướng đối tượng.
TypeScript bổ sung private, protected, public và readonly cho class. Từ khóa public trong tham số constructor tự động tạo thuộc tính và gán giá trị.
Bình luận