Bài 09: Tính trừu tượng hóa dữ liệu
Ví dụ khi một lập trình viên tạo một lớp (class) dùng đại diên cho các tài khoản tiền gửi ngân hàng của các khách hàng và đặt tên cho lớp này là BankAccount. Lớp này có hai thuộc tính là $balance và $interest dùng để lưu dữ liệu số tiền dư và lãi suất tiền gửi của tài khoản. class ...
Ví dụ khi một lập trình viên tạo một lớp (class) dùng đại diên cho các tài khoản tiền gửi ngân hàng của các khách hàng và đặt tên cho lớp này là BankAccount. Lớp này có hai thuộc tính là $balance và $interest dùng để lưu dữ liệu số tiền dư và lãi suất tiền gửi của tài khoản.
class BankAccount { public $balance; public $interest; }Tiếp theo lập trình viên này thêm các phương thức gửi tiền (deposit) và rút tiền (withdraw) như sau:
class BankAccount { public $balance; // số dư tài khoản public $interest; // lãi suất public function deposit ($amount) { // code... } public function withdraw ($amount) { // code... } }
Với tính trừu tượng (abstraction) thì toàn bộ sự phức tạp của việc xử lý quá trình gửi tiền và rút tiền sẽ được thực hiện trong 2 phương thức deposit và withdraw. Các lập trình viên không cần phải quan tâm tới sự phức tạp (hay nội dung chi tiết) của việc xử lý các công việc gửi tiền và rút tiền trên mà chỉ cần biết mục đích của từng phương thức là gì.
Dưới đây là một cách thực hiện (implementation) của phương thức deposit:
// nạp tiền vào tài khoản public function deposit ($amount) { if ($amount 100000000) { // tài khoản này cho phép nạp tối đa 100 triệu một lần return "Error! You exceed the maximum amount, please upgrade your account"; } $balance += $amount; // tăng số dư tài khoản }