Lập trình hướng đối tượng trong PHP - PHP OOP phần 1

2023-08-21 11:27:09

Lập trình hướng đối tượng (OOP) là gì?

  • Lập trình hướng đối tượng (Object Oriented Programming – OOP) là một trong những kỹ thuật lập trình rất quan trọng và sử dụng nhiều hiện nay. Hầu hết các ngôn ngữ lập trình hiện nay như Java, PHP, .NET, Ruby, Python… đều hỗ trợ 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 khái niệm về lớp và đối tượng​

Ưu điểm của OOP là gì?​ 

  • Có khả năng mô hình hóa những thứ phức tạp thành các cấu trúc đơn giản.​

  • Tái sử dụng code hiệu quả, giúp tiết kiệm tài nguyên.​

  • Thao tác tìm và khắc phục lỗi trong các lớp đơn giản và ít mất thời gian hơn so với nhiều vị trí trong code.​

  • Tính đóng gói giúp bảo vệ thông tin cao.​

  • Biểu diễn tốt hơn thế giới thực trên máy tính qua lớp và đối tượng.​

 Tìm hiểu về đối tượng​

  • Một đối tượng bao gồm 2 thông tin: thuộc tính và phương thức.​

  • Thuộc tính chính là những thông tin, đặc điểm của đối tượng. Ví dụ: con người có các đặc tính như mắt, mũi, tay, chân…​

  • Phương thức là những thao tác, hành động mà đối tượng đó có thể thực hiện. Ví dụ: một người sẽ có thể thực hiện hành động nói, đi, ăn, uống, . . 

Tìm hiểu về lớp (class)​

  • Một lớp là một kiểu dữ liệu bao gồm các thuộc tính và các phương thức được định nghĩa từ trước.​

  • Là sự trừu tượng hóa của đối tượng. ​

  • Các đối tượng có các đặc tính tương tự nhau được gom lại thành một lớp đối tượng.​

So sánh lớp và đối tượng​

  • Lớp bạn có thể hiểu nó như là khuôn mẫu, đối tượng là một thực thể thể hiện dựa trên khuôn mẫu đó.​

  • Ví dụ: Ta nói về loài xe oto (nhiều xe), có thể hiểu nó là class (lớp) class Car có:​

  • Các thông tin, đặc điểm: Tên, hãng, số ghế, màu sắc...​

  • Các hành động như: Nổ máy, rú còi, lăn bánh …​

  • Đối tượng thì chính là một chiếc xe Audi cụ thể: Audi, màu đến, 4 chỗ...​

Các tính chất của lập trình hướng đối tượng:

  • Tính đóng gói: Các dữ liệu và phương thức có liên quan với nhau được đóng gói thành các lớp để tiện cho việc quản lý và sử dụng. Tức là mỗi lớp được xây dựng để thực hiện một nhóm chức năng đặc trưng của riêng lớp đó.​

  • Tính kế thừa (Inheritance):​

  • Nó cho phép xây dựng một lớp mới dựa trên các định nghĩa của lớp đã có. Có nghĩa là lớp cha có thể chia sẽ dữ liệu và phương thức cho các lớp con. ​

  • Các lớp con không phải định nghĩa lại, ngoài ra có thể mở rộng các thành phần kế thừa và bổ sung thêm các thành phần mới.​

  • Tính trừu tượng (Abstraction)​

  • Đối với lập trình OOP, tính trừu tượng có nghĩa là chọn ra các thuộc tính, phương thức của đối tượng mà người lập trình đang tìm kiếm để giải quyết bài toán đang lập trình. Tuy một đối tượng có rất nhiều thuộc tính phương thức khác nhau, nhưng với bài toán cụ thể, ta không nhất thiết phải chọn sử dụng tất cả chúng.​

Định nghĩa lớp (Class)​

Khởi tạo đối tượng :

Phạm vi truy cập​

Phương thức khởi tạo __construct()​

  • Phương thức khởi tạo, hay gọi Hàm khởi tạo, cũng có thể gọi là Constructor​

  • Nó là một phương thức đặc biệt, ngay khi khởi tạo đối tượng với từ khóa new thì phương thức này được gọi tự động​

  • Nó có thể có hoặc không có tham số​

  • Nó có tác dụng để khởi tạo các giá trị ban đầu cho các thuộc tính của lớp​

  • Nó luôn chạy trước tất cả các phương thức khác​

  • Trong PHP có 2 cách để khai báo phương thức khởi tạo​

  • Hàm khởi tạo có tên __construct()​

  • Hàm khởi tạo trùng tên lớp​

Phương thức hủy __destruct()​ 

  • Là phương thức tự động được gọi khi khởi tạo lớp với new​

  • Luôn chạy sau cùng so với các phương thức khác​

  • Thường sử dụng để hủy, hay giải phóng bộ nhớ cho chương trình​

Phương thức __get()​

  • Được gọi khi có gắng lấy giá trị của thược tính không được định nghĩa​

  • Tham số của phương thức là tên của thuộc tính​

  • Giá trị trả về là giá trị của thuộc tính ​

  • Thường sử dụng vào việc mở rộng, kiểm soát việc truy xuất thuộc tính của lớp ​

Phương thức __set()​

  • Được gọi khi có gắng gán giá trị của thược tính không được định nghĩa​

  • 2 tham số của phương thức là tên và giá tri của thuộc tính​

  • Thường sử dụng vào việc kiểm soát việc gán giá trị thuộc tính của lớp

Phương thức __call()​

  • Phương thức magic __call() sẽ được gọi, khi đối tượng của lớp ( có cài đặt __call() )  gọi một phương thức không hề tồn tại​

  • Sử dụng để kiểm soát trong việc truy xuất các phương thức của lớp​

Bài viết liên quan