Lớp và đối tượng
Thuộc phần Lập trình hướng đối tượng trong hành trình PHP của Coddy. Bài học 3 trên 91.
Lớp và đối tượng có mục đích khác nhau. Lớp là bản thiết kế, còn đối tượng là thứ bạn tạo ra từ bản thiết kế đó.
Đây là ví dụ về một lớp có các thuộc tính đã khai báo:
<?php
class Dog {
public $name;
public $breed;
}Từ khóa public nghĩa là có thể truy cập các thuộc tính này từ bên ngoài lớp. Bạn sẽ tìm hiểu thêm về public trong bài học về thuộc tính.
Bây giờ, hãy tạo các đối tượng từ lớp Dog:
$dog1 = new Dog();
$dog2 = new Dog();Các đối tượng có thể có giá trị riêng cho từng thuộc tính:
$dog1->name = "Nicky";
$dog1->breed = "Siberian Husky";
$dog2->name = "Teemon";
$dog2->breed = "Shu'ali";Toán tử -> dùng để truy cập các thuộc tính của đối tượng.
In ra dữ liệu của từng đối tượng:
echo $dog1->name . " is a " . $dog1->breed . "\n";
echo $dog2->name . " is a " . $dog2->breed . "\n";Đầu ra:
Nicky is a Siberian Husky
Teemon is a Shu'aliĐiểm khác biệt chính: Lớp (class) Dog định nghĩa cấu trúc chung của mọi chú chó, còn các đối tượng $dog1 và $dog2 đại diện cho từng chú chó riêng biệt với các giá trị thuộc tính khác nhau.
Thử thách
DễHoàn thiện code để tạo hai đối tượng học sinh từ lớp Student và đặt các thuộc tính cho chúng.
student.php: Chứa lớpStudent(đã khóa)driver.php: Tạo các đối tượng và đặt thuộc tính cho chúng
Đặt các giá trị sau:
$student1: tên là"Alice", điểm là"A"$student2: tên là"Bob", điểm là"B"
Tự làm thử
<?php
require_once 'student.php';
// TODO: Tạo hai đối tượng học sinh
// TODO: Gán các thuộc tính cho student1 (name: "Alice", grade: "A")
// TODO: Gán các thuộc tính cho student2 (name: "Bob", grade: "B")
// In thông tin học sinh
echo $student1->name . " has grade " . $student1->grade . "\n";
echo $student2->name . " has grade " . $student2->grade . "\n";
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Lập trình hướng đối tượng
1Nền tảng về OOP
Tệp bên ngoàiGiới thiệu về OOPLớp và đối tượngTừ khóa $thisPhương thứcThuộc tínhHàm khởi tạo (__construct)Hàm hủy (__destruct)Ôn tập: máy tính đơn giản4Kế thừa
Kế thừa cơ bảnTừ khóa parent::Ghi đè phương thứcTừ khóa finalLớp trừu tượngÔn tập: hệ thống phân cấp nhân viên7Đóng gói
Công khai, được bảo vệ, riêng tưTìm hiểu sâu về bộ điều chỉnh quyền truy cậpGetter và setterẨn thông tinRút gọn hàm khởi tạo (8.0)Ôn tập: hệ thống hồ sơ học sinh2Không gian tên và tự động nạp
Giới thiệu về không gian tênTừ khóa useChuẩn tự động nạp PSR-4Trình tự động nạp của ComposerÔn tập: dự án có tổ chức5Giao diện và hợp đồng
Giới thiệu về giao diệnTriển khai giao diệnTriển khai nhiều giao diệnGiao diện và lớp trừu tượngGợi ý kiểu với giao diệnÔn tập: Máy tính hình học8Phương thức ma thuật
Giới thiệu về phương thức ma thuật__toString và __debugInfo__get, __set, __isset, __unset__call và __callStatic__clone và sao chép đối tượng__serialize và __unserializeÔn tập: Bộ sưu tập tùy chỉnh3Thuộc tính của lớp
Thuộc tính instance và staticHằng số trong lớpPhương thức và thuộc tính staticThuộc tính private và protectedThuộc tính chỉ đọc (PHP 8.1)Ôn tập: Trình quản lý tài khoản ngân hàng6Đa hình
Xem lại việc ghi đè phương thứcĐa hình qua giao diệnGợi ý kiểu và kiểu hợpLiên kết tĩnh muộnÔn tập: bộ xử lý thanh toánTự luyện tập: Trình biên dịch PHP online