Lập trình hướng đối tượng và PHP

lap trinh huong doi tuong

Các định nghĩa và ví dụ về lập trình hướng đối trượng và PHP

Khái niệm Lớp và Đối tượng

Lớp: bao gồm thuộc tính (properties), và phương thức (method)

Đối tượng: được tạo ra từ Lớp

lap trinh huong doi tuongVí dụ về lớp tên là meeting như sau.

Gọi phương thức mà bạn đã xây dựng như sau

Truyền tham số vào lớp

Như ở ví dụ trên, chúng ta có thuộc tính $name có giá trị sẵn là ‘Nguyễn Văn Khá’. Vậy chúng ta cần tự thiết lập giá trị này khi tạo đối tượng thì làm sao? Trước hết, chúng ta phải tạo ra cho nó thêm một phương thức nào đó mà nó sẽ có nhiệm vụ truyền tham số đã được khai báo khi tạo ra đối tượng.

Ngay tại dòng 5 đến dòng 8, bạn có thể thấy mình tạo ra một phương thức tên set_name() với tham số là$ten để truyền tham số mà người dùng nhập vào.

Trong phương thức này, mình sẽ chỉ định cho thuộc tính $name của class sẽ sử dụng tham số truyền vào là$ten.

Cuối cùng là ở phương thức hello(), mình sẽ return lại giá trị mà thằng set_name() đã truyền vào với từ khoá $this->name.

Và khi sử dụng, chúng ta sẽ thiết lập tham số ở phương thức set_name().

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

Phương thức khởi tạo này nghĩa là một phương thức mà nó sẽ được tự động thực thi khi chúng ta tạo ra một đối tượng mới, và các tham số trong phương thức này chúng ta có thể truyền nó vào ngay lúc tạo ra đối tượng.

Bây giờ quay lại ví dụ của bài truyền tham số, chúng ta dùng phương thức set_name() để truyền cái $namevào. Nhưng nếu bạn không muốn làm bước này, muốn truyền một tham số gì đó toàn cục trong lớp thì nên sử dụng phương thức __construct.

Lớp kế thừa

Kế thừa: nghĩa là ta đã có một lớp đã xây dựng ta không cần viết thêm nữa mà chỉ kế thừa lại những cái mà bạn đã viết.

Ví dụ lớp BMW kế thừa lớp Car

kế thừa bạn xử dụng extends như sau

Lúc này lớp BMW sẽ sử dụng được các thuộc tính và phương thức của lớp Car. Nếu cần tinh chỉnh lại thuộc tính hay phương thức nào thì cứ việc khai báo lại bên trong nó, như ví dụ trên là mình khai báo giá trị của các thuộc tính trong lớp BMW.

Bây giờ chúng ta thử sử dụng phương thức car_info() của lớp Car và vào lớp BMW nhé.

Bạn gọi như sau là sẽ hiển thị kết quả mà bạn muốn

Visibility trong lớp lập trình hướng đối tượng và PHP

Khi nhắc tới Visibility ta có 3 kiểu sau

  • public – Nếu phương thức hoặc thuộc tính nào sử dụng từ khoá này thì nghĩa là chúng ta có thể sử dụng nó ở bất cứ đâu, tức là có thể gọi ra bên trong một lớp hoặc bên ngoài một lớp, hoặc sử dụng trong một lớp con (lớp được kế thừa).
  • private – Phương thức/Thuộc tính nào sử dụng từ khoá này thì nó chỉ được truy cập bên trong một lớp của chính nó, không thể sử dụng cho lớp khác hoặc không thể gọi ra bên ngoài. Ví dụ bạn có thể sử dụng $this->name bên trong lớp như không thể gọi ra với $object->name ở bên ngoài lớp.
  • protected – Phương thức/Thuộc tính nào sử dụng từ khoá này là nó sẽ có thể được truy cập bên trong class hoặc các class kế thừa.

Ví dụ:

– public

– privata

– protected

Lớp trừu tượng (Class Abstraction)

ví dụ

Bây giờ chúng ta tạo ra một lớp con kế thừa lại lớp mẹ

Kết quả nó sẽ trả về array của set_args().

 

Kết Luận

Khi chúng ta code chúng ta hoàn toàn sử dụng Class và Object người ta gọi đó là Lập trình hướng đối tượng. Như vậy lập trình hướng đối tượng không phải là khó, chỉ là bạn chưa biết cách nên nghe tên nó có vẻ cao sang nhưng thực ra nó cũng chỉ là việc sử dụng class, kế thừa rồi sử dụng các đối tượng tạo ra từ class mà thôi.

 

 

Please follow and like us: