Bài 9: Lập Trình Hướng Đối Tượng

Bài 9: Lập Trình Hướng Đối Tượng

Lập trình hướng đối tượng (OOP) trong PHP là một phương pháp lập trình mạnh mẽ và hiệu quả. Bài học này sẽ giúp bạn: 

  • Hiểu khái niệm Lập Trình Hướng Đối Tượng (OOP).
  • Nắm được các khái niệm cơ bản trong OOP: Class, Object, Attribute, Method.
  • Biết cách ứng dụng OOP trong lập trình PHP.

1. Khái niệm Lập Trình Hướng Đối Tượng (OOP):

  • Lập trình hướng đối tượng (OOP) là một phương pháp lập trình dựa trên việc tổ chức mã nguồn thành các đơn vị gọi là đối tượng (object).

  • Mỗi object là một thể hiện cụ thể của một lớp (class), là bản thiết kế chung cho các object có chung tính chất.

  • OOP giúp tăng tính tái sử dụngdễ bảo trì và mở rộng mã nguồn.

Ưu điểm của OOP:

  • Tính đóng gói (Encapsulation): Che giấu thông tin nội bộ của đối tượng, chỉ cho phép truy cập thông qua các phương thức được định nghĩa trước.

  • Tính kế thừa (Inheritance): Cho phép tạo lớp mới dựa trên lớp đã có, kế thừa các thuộc tính và phương thức của lớp cha.

  • Tính đa hình (Polymorphism): Cho phép một phương thức có thể hoạt động khác nhau tùy thuộc vào đối tượng gọi nó.


2. Các khái niệm cơ bản:

  • Lớp (Class): Là bản thiết kế, định nghĩa các thuộc tính và phương thức cho các đối tượng thuộc lớp đó.

    • Ví dụ: Lớp User có thể có các thuộc tính username, password, email và các phương thức login(), logout(), updateProfile().

  • Đối tượng (Object): Là một thể hiện cụ thể của một lớp.

    • Ví dụ: user1 là một đối tượng của lớp User với username = "john_doe", password = "secret", email = "[email protected]".

  • Thuộc tính (Attribute): Là các biến chứa dữ liệu của đối tượng.

    • Ví dụ: username, password, email là các thuộc tính của lớp User.

  • Phương thức (Method): Là các hàm định nghĩa hành vi của đối tượng.

    • Ví dụ: login(), logout(), updateProfile() là các phương thức của lớp User.


3. Ứng dụng OOP trong PHP:

3.1. Khai báo lớp và tạo đối tượng:

class User {
    // Thuộc tính
    public $username;
    public $password;
    public $email;

    // Phương thức
    public function login() {
        // Xử lý đăng nhập
        echo "Đăng nhập thành công!";
    }
}

// Tạo đối tượng user1 từ lớp User
$user1 = new User();

 

3.2. Truy cập thuộc tính và phương thức:

// Gán giá trị cho thuộc tính
$user1->username = "john_doe";
$user1->password = "secret";
$user1->email = "[email protected]";

// In ra thông tin user
echo $user1->username . "<br>"; // Output: john_doe
echo $user1->email . "<br>"; // Output: [email protected]

// Gọi phương thức login()
$user1->login(); // Output: Đăng nhập thành công!

 

3.3. Constructor và Destructor:

  • Constructor: Phương thức đặc biệt được gọi tự động khi tạo đối tượng mới. Dùng để khởi tạo giá trị ban đầu cho thuộc tính.

  • Destructor: Phương thức đặc biệt được gọi tự động khi đối tượng bị hủy.

class User {
    // ...

    // Constructor
    public function __construct($username, $password, $email) {
        $this->username = $username;
        $this->password = $password;
        $this->email = $email;
    }

    // Destructor
    public function __destruct() {
        echo "Đối tượng User đã bị hủy!";
    }

    // ...
}

 


Bài tập:

  1. Tạo lớp Product với các thuộc tính name, price, quantity.

  2. Tạo constructor cho lớp Product để khởi tạo giá trị cho thuộc tính.

  3. Tạo phương thức displayInfo() để hiển thị thông tin sản phẩm.

  4. Tạo 2 đối tượng product1, product2 từ lớp Product và gán giá trị cho thuộc tính.

  5. Gọi phương thức displayInfo() để hiển thị thông tin của 2 sản phẩm.


Lưu ý:

  • Bài học này chỉ giới thiệu về OOP cơ bản trong PHP.

  • Trong các bài học sau, chúng ta sẽ tìm hiểu sâu hơn về các tính chất đóng gói, kế thừa, đa hình, và cách sử dụng OOP để xây dựng ứng dụng web phức tạp.