1. Xác định đối tượng
Ví dụ:
- Lập trình viên là 1 đối tượng
- Con chó là 1 đối tượng
2. Xác định trạng thái (thuộc tính) [attribute (property)]
-
Các trạng thái (thuộc tính) của lập trình viên là: Họ, tên, ngày sinh,
quê quán, giới tính, email, điện thoại, kinh nghiệm, ưu điểm, nhược
điểm, kỹ năng, tài khỏan...
- Các trạng thái (thuộc tính) của con chó là: Tên, màu lông , giống, đuôi, chân, tai, màu mắt .....
3. Xác định hành động
-
Các hành động (behaviour) của lập trình viên: làm việc, ăn, ngủ, học,
nghiên cứu, đi chơi, gửi tiền vào tài khỏan, rút tiền khỏi tài khoản
- Các hành động (behaviour) của con chó: sủa, vẫy tai, chạy, ăn
Ví dụ: Tạo lớp 'Lập trình viên'
Chúng ta tạo 1 tập tin có tên class.programer.php với nội dung sau:
2.1 Khai báo các thuộc tính của đối tượng
{geshibot lang="php" head=""}//class.programer.php
class Programer {
//Dinh nghia cac thuoc tinh cua doi tuong
public $firstName; // Ho
public $lastName; // Ten
public $birthday; // Ngay sinh
public $sex; //Giới tính
public $email;
public $phone; // dien thoai
public $experienced; // Kinh nghiem
public $advantage; // uu diem
public $weakness; // nhuoc diem
public $skill; // Ky nang
}
?>{/geshibot}
2.2 Tạo hàm cấu trúc cho class
{geshibot lang="php" head=""}//class.programer.php
class Programer {
//Dinh nghia cac thuoc tinh cua doi tuong
public $firstName; // Ho
public $lastName; // Ten
public $birthday; // Ngay sinh
public $sex; //Giới tính
public $email;
public $phone; // dien thoai
public $experienced; // Kinh nghiem
public $advantage; // uu diem
public $weakness; // nhuoc diem
public $skill; // Ky nang
// Tao ham cau truc cho class
public function __construct($varLastName, $varBirthday)
{
$this->lastName = $varLastName;
$this->birthday = $varBirthday;
}
// In thông tin member
public function printInfo()
{
$info = 'Thong tin lap trinh vien:';
$info .= '
Ten: ' . $this->lastName;
$info .= '
Ngay sinh: ' . $this->birthday;
return $info;
}
}
?>{/geshibot}
Chúng ta tạo 1 tập tin có tên oop.php với nội dung sau:
{geshibot lang="php" head=""}//oop.php
// Nhung file class.programer.php vao trang
include('class.programer.php');
// Goi doi tuong Programer
$objProgramer = new Programer('Hoang','14-02-1985');
// In ra thong tin cua lap trinh vien
echo $objProgramer->printInfo();
?>{/geshibot}
Chúng ta sẽ được kết quả như sau
Thong tin lap trinh vien:
Ten: Hoang
Ngay sinh: 14-02-1985
- Theo cấu trúc chuẩn của PHP chúng ta sẽ tạo 1 hàm cấu trúc cho class
public function __construct($varLastName, $varBirthday);
- Khi ta gọi khai báo đối tượng $objProgramer với cú pháp
$objProgramer = new Programer('Hoang','14-02-1985');
- Lúc đó 2 giá tri 'Hoang' và '14-02-1985' được gán vào 2 tham số $varLastName và $varBirthday.
Lệnh $this->lastName = $varLastName; sẽ gán giá trị $varLastName vào cho thuộc tính public $firstName; được khai báo phí trên
Tương
tự lệnh $this->birthday = $varBirthday; cũng sẽ gán giá trị
$varBirthday vào cho thuộc tính public $birthday; được khai báo phí trên
-
Sau khi 2 tham số $varLastName và $varBirthday được gán cho 2 thuộc
tính $firstName và $birthday, lúc này bạn có thể sử dụng tùy ý 2 giá
trị này trong class bằng cú pháp $this->
vd:
$this->birthday;
$this->lastName;
- Khi đã có thông tin về đối tượng objProgramer bạn có thể in những thông tin đó ra bằng cách gọi hàm printInfo() trong class
echo $objProgramer->printInfo();
- Trong hàm prinInfo() của class Programer. Hàm này này lấy các giá trị đã được gán ở phía trên in ra kết quả
-
Trong hàm tạo cấu trúc của class ta đã truyền được 2 giá trị cho 2
thuộc tính bây giờ ta sẽ tạo các hàm để truyền các giá trị cho các
thuộc tính còn lại. Ví dụ ta tạo hàm lấy giá trị cho thuộc tính
$firstName
{geshibot lang="php" head=""}//class.programer.php
class Programer {
//Dinh nghia cac thuoc tinh cua doi tuong
public $firstName; // Ho
public $lastName; // Ten
public $birthday; // Ngay sinh
public $sex; //Giới tính
public $email;
public $phone; // dien thoai
public $experienced; // Kinh nghiem
public $advantage; // uu diem
public $weakness; // nhuoc diem
public $skill; // Ky nang
// Tao ham cau truc cho class
public function __construct($varLastName, $varBirthday)
{
$this->lastName = $varLastName;
$this->birthday = $varBirthday;
}
// Ham nhan gia tri cua firstName (Ho)
public function setFirstName($varFirstName)
{
$this->firstName = $varFirstName;
}
// In thông tin member
public function printInfo()
{
$info = 'Thong tin lap trinh vien:';
$info .= '
Ten: ' . $this->lastName;
$info .= '
Ngay sinh: ' . $this->birthday;
return $info;
}
}
?>{/geshibot}
- Chúng ta thêm hàm setFirstName($varFirstName) hàm này có chức năng nhận giá trị và truyền cho thuộc tính public $firstName;.
-
Và sau đó chúng ta thêm 1 dòng lệnh $info .=
'
Ho: ' . $this->firstName; vào hàm
printInfo() để in ra họ của lập trình viên
- Chúng ta thêm dòng lệnh $objProgramer->setFirstName('Nguyen Van '); trang oop.php 1 chút để sử dụng được hàm setFirstName()
{geshibot lang="php" head=""}//oop.php
// Nhung file class.programer.php vao trang
include('class.programer.php');
// Goi doi tuong Programer
$objProgramer = new Programer('Hoang','14-02-1985');
// Dua gia tri vao cho thuoc tinh $firstName trong Programer class
$objProgramer->setFirstName('Nguyen Van');
// In ra thong tin cua lap trinh vien
echo $objProgramer->printInfo();
?>{/geshibot}
Tiếp theo chúng ta sẽ tiếp tục truyền giá trị vào cho từng thuộc tính còn lại
{geshibot lang="php" head=""}//oop.php
/**
* Zend framework
*
* @category Training
* @package Zend framework Basic
* @copyright Copyright (c) 2008 Zend Vietnamese Team (http://www.zend.vn)
* @version $Id: class.programer.php 2008-02-10 01:35:30Z
* @author Marsu (ZVN Founder team)
*@email
zendvn@yahoo.com This e-mail address is being protected from spambots.
You need javascript enabled to view it OR marsu@zend.vn This e-mail
address is being protected from spambots. You need javascript enabled to
view it
*
*/
//Dinh nghia cac thuoc tinh cua doi tuong
public $firstName = null; // Ho
public $lastName; // Ten
public $birthday = null; // Ngay sinh
public $sex; //Gi?i tính
public $email;
public $phone; // dien thoai
public $experienced; // Kinh nghiem
public $advantage; // uu diem
public $weakness; // nhuoc diem
public $skill; // Ky nang
// Tao ham cau truc cho class
public function __construct($varLastName, $varBirthday)
{
$this->lastName = $varLastName;
$this->birthday = $varBirthday;
}
// Ham nhan gia tri cua firstName (Ho)
public function setFirstName($varFirstName) {
$this->firstName = $varFirstName;
}
// Ham nhan gia tri cua sex (gioi tinh)
public function setSex($varSex) {
$this->sex = $varSex;
}
// Ham nhan gia tri cua email
public function setEmail($varEmail) {
$this->email = $varEmail;
}
// Ham nhan gia tri cua phone
public function setPhone($varPhone) {
$this->phone = $varPhone;
}
// Ham nhan gia tri cua experienced
public function setExperienced($varExperienced) {
$this->experienced = $varExperienced;
}
// Ham nhan gia tri cua experienced
public function setAdvantage($varAdvantage) {
$this->advantage = $varAdvantage;
}
// Ham nhan gia tri cua weakness
public function setWeakness($varWeakness) {
$this->weakness = $varWeakness;
}
// Ham nhan gia tri cua skill
public function setSkill($varSkill) {
$this->skill = $varSkill;
}
// In thông tin member
public function printInfo(){
$info = 'Thong tin lap trinh vien:';
$info .= '
============================';
$info .= '
Ho: ' . $this->firstName;
$info .= '
Ten: ' . $this->lastName;
$info .= '
Ngay sinh: ' . $this->birthday;
$info .= '
Gioi tinh: ' . $this->sex;
$info .= '
Email: ' . $this->email;
$info .= '
Phone: ' . $this->phone;
$info .= '
Kinh nghiem: ' . $this->experienced;
$info .= '
Uu diem: ' . $this->advantage;
$info .= '
Nhuoc diem: ' . $this->weakness;
$info .= '
Ky nang: ' . $this->skill;
return $info;
}
?>{/geshibot}
{geshibot lang="php" head=""}//oop.php
/**
* Zend framework
*
* @category Training
* @package Zend framework Basic
* @copyright Copyright (c) 2008 Zend Vietnamese Team (http://www.zend.vn)
* @version $Id: oop.php 2008-02-10 01:35:30Z
* @author Marsu (ZVN Founder team)
*@email
zendvn@yahoo.com This e-mail address is being protected from spambots.
You need javascript enabled to view it OR marsu@zend.vn This e-mail
address is being protected from spambots. You need javascript enabled to
view it
*
*/
// Nhung file class.programer.php vao trang
include('class.programer.php');
// Goi doi tuong Programer
$objProgramer = new Programer('Hoang','14-02-1985');
// Dua gia tri vao cho thuoc tinh $firstName trong Programer class
$objProgramer->setFirstName('Nguyen Van');
// Dua gia tri vao cho thuoc tinh $sex trong Programer class
$objProgramer->setSex('Khong xac dinh');
// Dua gia tri vao cho thuoc tinh $email trong Programer class
$objProgramer->setEmail('
hoang@zend.vn This e-mail address is being protected from spambots. You
need javascript enabled to view it ');
// Dua gia tri vao cho thuoc tinh $phone trong Programer class
$objProgramer->setPhone('0908.115.113');
// Dua gia tri vao cho thuoc tinh $phone trong Programer class
$objProgramer->setPhone('0908.115.113');
// Dua gia tri vao cho thuoc tinh $experienced trong Programer class
$objProgramer->setExperienced('3 nam voi ........ Vo Lam Truyen Ky');
// Dua gia tri vao cho thuoc tinh $advantage trong Programer class
$objProgramer->setAdvantage('nha^.u khong doi thu');
// Dua gia tri vao cho thuoc tinh $weakness trong Programer class
$objProgramer->setWeakness('nha^.u xong, hay om cot den');
// Dua gia tri vao cho thuoc tinh $weakness trong Programer class
$objProgramer->setWeakness('nha^.u say, hay om cot den');
// Dua gia tri vao cho thuoc tinh $skill trong Programer class
$objProgramer->setSkill('sai dau danh do');
// In ra thong tin cua lap trinh vien
echo $objProgramer->printInfo();
?>{/geshibot}
Các tin khác cùng chuyên mục
- Kỹ thuật lập trình HTML/CSS mới nhất 2020 - 04
- Funny web2.0
- Giải thử vài câu đề thi tốt nghiệp ptth môn toán
- MỘT NGÀY PHẢI KHÁC MỌI NGÀY
- Level 1 - Lập trình hướng đối tượng (P1)
- PHP 5.3, Phần 3: Không gian tên
- PHP 5.3, Phần 2: Bao đóng và các hàm lambda
- PHP 5.3, Phần 1: Các thay đổi về giao diện đối tượng
- Tăng tốc độ xử lý CSDL MySQL
- Giới thiệu JSON