06/04/2021, 14:39

Bài 03: Lớp - thuộc tính - phương thức của đối tượng - Học lập trình PHP nâng cao

Ở bài trước các bạn đã biết được định nghĩa lập trình hướng đối tượng nhưng chỉ nói ở múc độ lý thuyết chứ chưa thấy đụng đến code, nếu thế thì trong bài này chúng ta sẽ bắt đầu sử dụng code để tạo các đối tượng thông qua class (lớp). 1. Lớp (class) ...

 

Ở bài trước các bạn đã biết được định nghĩa lập trình hướng đối tượng nhưng chỉ nói ở múc độ lý thuyết chứ chưa thấy đụng đến code, nếu thế thì trong bài này chúng ta sẽ bắt đầu sử dụng code để tạo các đối tượng thông qua class (lớp).

1. Lớp (class) là gì?

Như ta đã biết đối tượng là những sự vật, sự việc mà nó có những tính chất, hành động giống nhau, vậy thì lớp (class) có thể được ví như là một mẩu mô tả trạng thái, hành động của đối tượng đó. Có nhiều người hiểu nhầm lớp chính là đối tượng,

Cú pháp:

class className
{
    // Các khai báo bên trong
}

Ví dụ: Khai báo lớp sinh viên (lớp này đại diện cho đối tượng sinh viên)

class sinhvien
{
    // Các khai báo bên trong
}

2. Thuộc tính của lớp

Thuộc tính của lớp chính là thuộc tính của đối tượng mà lớp đó mô tả, ví dụ đối tượng động vật có những thuộc tính như: mắt, mũi, tai, chân thì những thứ đó cũng chính là thuộc tính của lớp động vật.

Cú Pháp:

class tenLop{
    var $tenthuoctinh;
}

Trong đó var $tenthuoctinh chính là cách khai báo thuộc tính cho lớp.

Ví dụ: Đối tượng động vật có các thuộc tính như mắt, mũi, tai, chân, hãy khai báo lớp động vật và các thuộc tính của lớp đó.

class DongVat
{
    var $mat;
    var $mui;
    var $tay;
    var $chan;
}

3. Phương thức của lớp

Phương thức của lớp chính là phương thức của đối tượng, đó là những hành động (hành vi) của đối tượng. Ví dụ đối tượng động vật có các hành động như ăn, sủa, chạy …

Các phương thức nó rất giống với hàm nên nó cũng có các tính chất như hàm đó chỉ khác là phương thức nằm trong một lớp đối tượng và muốn gọi đến nó thì phải thông qua lớp đối tượng này. Từ nay đễ cho dễ tôi sẽ gọi các phược thức là hàm nhé.

Cú pháp:

class ClassName
{
    function tenPhuongThuc($bien)
    {
        // các lệnh bên trong
    }
}

Trong đó tenPhuongThuc chính là tên phương thức mình muốn tạo.

Ví dụ: Đối tượng động vật có các thuộc tính như mắt, mũi, tai, chân, và các hành động như ăn, sủa, chạy hãy khai báo lớp động vật và các thuộc tính, phương thức của lớp đó.

class DongVat
{
    // Các thuộc tính
    var $mat;
    var $mui;
    var $tay;
    var $chan;
 
    // Các phương thức
    function an($thuc_an)
    {
        // lệnh
    }
 
    function sua()
    {
        // lệnh
    }
 
    function chay()
    {
        // lệnh
    }
}

4. Khởi tạo, gán và gọi thuộc tính – phương thức

Khởi tạo lớp mới:

Bạn phải phân biệt được 2 từ khởi tạo đối tượng và khai báo đối tượng, khai báo đối tượng là ta tạo một lớp (class) của đối tượng đó, còn khởi tạo đối tượng là ta tạo một hình tượng của lớp mà ta đã khai báo. Vì lớp mô phỏng cho đối tượng nên sau này tôi sẽ dùng từ lớp thay cho đối tượng luôn.

Cú pháp: $ten_bien = new ClassName();

Ví Dụ: 

// Khai báo Lớp (đối tượng) Động Vật
class DongVat
{
    // Các thuộc tính
    var $mat;
    var $mui;
    var $tay;
    var $chan;
 
    // Các phương thức
    function an($thuc_an)
    {
        // lệnh
    }
 
    function sua()
    {
        // lệnh
    }
 
    function chay()
    {
        // lệnh
    }
}
 
// Khởi tạo lớp động vật mới
$conheo = new DongVat();
$conbo = new DongVat();
$conga = new DongVat();

Truyxuất đến các thuộc tính của đối tượng

Để truy xuất đến các thuộc tính của đối tượng ta dùng toán tử (->) để trỏ đến.

Cú pháp: $classname->method

Ví dụ:

// Khởi tạo lớp động vật mới
$conheo = new DongVat($thuc_an);
 
// Gán giá trị cho các thuộc tính
$conheo->mat = 'Mắt 2 mí';
$conheo->mui = 'Mũi tây phương';
 
// Lấy các giá trị và xuất ra màn hình
// kết quả xuất ra màn hình "Mắt 2 mí"
echo $conheo->mat; 
// kết quả xuất ra màn hình "Mũi tây phương"
echo $conheo->mui ;

Gọi các phương thức của đối tượng

Cũng tương tự như truy xuất đến các thuộc tính của đối tượng, ta dùng toán tử (->) để gọi các hàm trong đối tượng.

Cú pháp: $classname->function();

Ví dụ: 

class DongVat
{
    // Các phương thức
    function an($thuc_an)
    {
        echo 'Hôm Nay Ăn Món ' . $thuc_an;
    }
}
 
// Khởi tạo lớp động vật mới
$conheo = new DongVat();
 
// Gọi đến hàm ăn
// kết quả là "Hôm Nay Ăn Món Cám"
$conheo->an('Cám'); 

Các bạn thấy đó nó cũng giống như cách gọi hàm bình thường thôi đúng không nào?

Hàm trong đối tượng gọi đến các thuộc tính của chính mình bằng cú pháp sau: $this->ten_thuoc_tinh;

Ví dụ:

class DongVat {
    var $hello = 'Xin chào các bạn, Tôi đang ăn nhé';
    // Các phương thức
 
    // hàm (hành động) ăn
    function an()
    {
        echo $this->hello;
    }
}
 
// Khởi tạo lớp động vật mới
$conheo = new DongVat();
 
// Gọi đến hàm ăn
// kết quả "Xin chào các bạn, Tôi đang ăn nhé"
$conheo->an(); 

5. Lời kết

Trong bài nay tôi muốn các bạn phân biệt được thế nào là đối tượng và lớp, cách khai báo lớp cách truy xuất các thuộc tính và phương thức của lớp trong php để qua những bài sau dễ dàng hiểu các ví dụ tôi đưa ra hơn. Bài tiếp theo chúng ta sẽ tìm hiểu khái niệm trừu tượng hóa dữ liệu

Trịnh Tiến Mạnh

27 chủ đề

6824 bài viết

Cùng chủ đề
0