Vui lòng đọc bài viết này nếu bạn mới làm quen https://vi.wikipedia.org/wiki/L%E1%BA%ADp_tr%C3%ACnh_h%C6%B0%E1%BB%9Bng_%C4%91%E1%BB%91i_t%C6%B0%E1%BB%A3ng
OOP được xây dựng trên các lớp (class). Một class định nghĩa bên trong nó các trường (fields), các hàm và thủ tục (gọi chung là phương thức - methods). Một lớp có thể có nhiều field và nhiều methods.
Các trường trong lớp được bảo vệ bằng các từ khóa: private, protected, public, published. Đặc trưng này gọi là tính đóng gói (encapsulation) đặc trưng của hướng đối tượng. Nó giúp bảo vệ thông tin trong lớp (chứa trong các trường) khỏi việc truy cập trái phép từ bên ngoài.
Lớp còn chứa các thuộc tính (properties). Nhờ các thuộc tính này, các đối tượng bên ngoài có thể truy cập vào bên trong lớp dưới sự quản lí.
Tuy nhiên, lớp chỉ là một kiểu dữ liệu. Không thể sử dụng trực tiếp một lớp. Cần tạo ra một đối tượng (object), gọi là một thể hiện (instance) của lớp. Việc tạo ra object từ class gọi là instantiation. Mỗi thể hiện của một class là một object riêng biệt.
Một class có thể tạo ra nhiều đối tượng, ngược lại mỗi object chỉ thuộc một class duy nhất.
type
THocSinh = class
var
TenHS: string;
Tuoi: Byte;
public
procedure HocBai;
end;
procedure THocSinh.HocBai;
begin
WriteLn('Dang hoc bai');
WriteLn('Hoc bai xong');
end;
var
HS1: THocSinh;
begin
HS1 := THocSinh.Create;
try
WriteLn('Tuoi = ', HS1.Tuoi);
WriteLn('Ten = ', HS1.Ten);
HS1.HocBai;
finally
HS1.Free;
end;
end.
Ở trên ta khai báo một lớp THocSinh (kiểu dữ liệu học sinh) và một biến đối tượng HS1.
Lớp THocSinh gồm:
Trong đoạn thứ 2: Ta triển khai phương thức HocBai của lớp THocSinh. Nó hướng dẫn cách thực hiện phương thức HocBai cần làm gì.
Đoạn thứ 3: Khai báo một biến object HS1 kiểu THocSinh (đối tượng HS1 là một thể hiện của lớp THocSinh).
Đoạn cuối:
THocSinh.Ten
HS1.HocBai
, viết sai THocSinh.HocBai
Delphi cung cấp 4 mức truy cập (Access Modifiers) cho các thành phần bên trong lớp (có thể là trường, phương thức hoặc thuộc tính).
Ngoài ra, nếu không khai báo mức bảo vệ thì mặc định là public và phải đặt ở trên đầu tiên, trước các từ khóa trên.