Tải bản đầy đủ (.pdf) (17 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (616.03 KB, 17 trang )

Lập trình
hướng đối tượng trong PHP
Nguyễn Thị Thùy Liên
Khoa CNTT – ĐHSP Hà Nội

Đối tượng và lớp đối tượng
• Các đối tượng (Objects) được định nghĩa thông
qua:
 Các thông số cơ bản của đối tượng (các thuộc
tính) được thể hiện thông qua các biến
 Các hành vi (phương thức) được thể hiện thông
qua các hàm
• Class (lớp) định nghĩa các thuộc tính và các
hành vi của các đối tượng có chung tên các
biến và hàm.
Lập trình hướng đối tượng trong
PHP
• Có hai dạng:
– Các lớp đối tượng đã được xây dựng sẵn (chỉ
việc đem ra sử dụng):
• Simple XML
• PDO
• SOAP
• DOM
• …
– Các lớp đối tượng do người dùng (lập trình viên)
định nghĩa
Một số nguyên tắc
• Khai báo lớp thông qua từ khoá class
• Khai báo các đối tượng thuộc một lớp xác định
(dạng biến đối tượng)


• Các phương thức, thuộc tính của một lớp có
thể được đặt ở 1 trong 3 trạng thái: public,
private hoặc protected.
Khai báo lớp
class tên_lớp
{
// Danh sách các biến, lớp (thuộc tính)
// Danh sách các hàm (phương thức)
}
Lưu ý:
•Trong PHP 5, khi khai báo các thuộc tính và
phương thức, cần khai báo các tính chất của thuộc
tính : riêng tư (private), công cộng (public)
•Các tính chất này thường được đặt trước các khai
báo thuộc tính và phương thức.
•Có thể thiết lập giá trị mặc định cho các thuộc tính
trong quá trình khai báo
Ví dụ:
class hoso
{
public $ho_ten;
public $ngay_sinh;
}
Sử dụng lớp
• Khai báo một đối tượng thuộc lớp:
– Cú pháp: $tên_đối_tượng = new tên_lớp;
• Tham chiếu tới các phương thức thuộc tính của
lớp:
– Dùng toán tử tham chiếu ->
– Tham chiếu từ tên đối tượng:

• $tên_đối_tượng->tên_thuộc_tính;
• $tên_đối_tượng->tên_phương_thức(tham số);
– Tham chiếu tới chính bản thân đối tượng trong
quá trình khai báo lớp:
• $this->tên_thuộc_tính;
• $this->thên_phương_thức(tham số);
Sử dụng lớp - ví dụ:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/>
</HEAD>
<BODY>
<?
class hoso
{
public $ho_ten;
public $ngay_sinh;
}
$hoang=new hoso;
$hoang->ho_ten="Nguyễn Huy Hoàng";
$hoang->ngay_sinh = "25/7/2003";
echo "Họ tên: " . $hoang->ho_ten . ". Ngày sinh: " . $hoang->ngay_sinh;
?>
</BODY>
</HTML>
VD 2
class hoso
{
public $ho_ten = "Nguyễn Huy Hoàng";

public $ngay_sinh = "25/7/2003";
public function lap_gia_tri($hoten,$ngaysinh)
{
$this->ho_ten = $hoten;
$this->ngay_sinh=$ngaysinh;
}
}
$hoang=new hoso;
echo "Họ tên: " . $hoang->ho_ten . ". Ngày sinh: " .
$hoang->ngay_sinh;
?>
Kế thừa lớp trong PHP
• Để kế thừa một lớp trong php, ta dùng từ khoá
extends, theo sau là tên lớp cha:
class hoso2 extends hoso
{
public $noi_sinh="Thanh Hoá";
public function in_hoso()
{
echo ("Họ tên: " . $this->ho_ten . ".”);
echo (“ Ngày sinh: " . $this->ngay_sinh . " .”);
echo (“ Nơi sinh: " . $this->noi_sinh);
}
}
Ghi đè các phương thức
• Cho phép viết lại các phương thức có cùng tên
với phương thức của lớp cha
• Từ khoá Final đặt trước tên phương thức của
lớp cha sẽ giúp cho phương thức đó không bị
ghi đè.

• Có thể tham chiếu tới các phương thức ở lớp
cha đã bị ghi đè bằng cách sử dụng cú pháp:
parent::tên_phương_thức(tham số)
<?
class hoso
{
public $ho_ten = "Nguyễn Huy Hoàng";
public $ngay_sinh = "25/7/2003";
final public function in_hoso()
{
echo "Họ tên:" . $this->ho_ten . ". Ngày sinh: " . $this->ngay_sinh;
}
}
class hoso2 extends hoso
{
public $noi_sinh="Thanh Hoá";
public function in_hoso()
{
parent::in_hoso();
echo ". Nơi sinh: " . $this->noi_sinh;
}
}
$hoang=new hoso2;
$hoang->in_hoso();
?>
Lớp trừu tượng
• Cho phép định nghĩa các lớp và các phương
thức một cách trừu tượng (chỉ có tên lớp, tên
phương thức)
• Các lớp và các phương thức trừu tượng được

định nghĩa bởi từ khoá abstract ở trước
• Không thể tạo ra một thể hiện của một lớp trừu
tượng.
• Ở lớp cha, các phương thức trừu tượng chỉ có
tên và phải được đặt ở chế độ public hoặc
protected. Các phương thức trừu tượng sẽ
được định nghĩa chi tiết ở các lớp con với các
chế độ bảo vệ tương ứng như ở lớp cha.
Ví dụ
Hàm dựng và hàm huỷ
 Hàm dựng:
 Khái niệm: là một phương thức được tự động kích hoạt khi
đối tượng được khởi tạo.
 Cách dùng: Khai báo một hàm với tên là __construct();
 Hàm huỷ:
 Khái niệm: Ngược lại với tạo tử
 Cách dùng: Khai báo một hàm với tên là __destruct();
 Chú ý:
 Hàm dựng và Hàm huỷ ở lớp cha sẽ không được thực thi
nếu như lớp con cũng có hàm dựng (hàm huỷ).
 Để gọi hàm dựng (hoặc hàm huỷ) ở lớp cha, cần sử dụng
parent::__construct(); (hoặc tương ứng là
parent::__destruct();)
Ví dụ:
<?php
class BaseClass {
function __construct() {
print "In BaseClass constructor\n";
}
}

class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "In SubClass constructor\n";
}
}
$obj = new BaseClass();
$obj = new SubClass();
?>
Bài tập:
• 1. Viết một lớp (class) để giải phương trình bậc
nhất
• 2. Viết một lớp kế thừa từ lớp giải phương trình
bậc nhất để giải phương trình bậc 2:
 Kế thừa:
• Các tham số a, b, x
• Hàm giải PT bậc nhất từ lớp cha trong trường hợp
a=0
 Chú ý: Sử dụng cách thức ghi đè đối với hàm
giải phương trình

×