Level 1 - Lập trình hướng đối tượng (P2)
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
Liên kết
Tin được quan tâm nhất
- Ant Group của Jack Ma hé lộ bước đi đầu tiên...
- Ô tô giao hàng tự lái sẽ bắt đầu hoạt...
- Clip cô giáo phạt học sinh tự ném vỡ...
- Tiền điện tử lớn thứ ba thế giới Ripple...
- Joe Biden kêu gọi hiện đại hóa hệ thống...
- Viettel khai trương nền tảng Hồ sơ sức khỏe...
- Các hãng di động nên ngừng cãi nhau về việc...
- Công nghệ AI của Alibaba và Tân Hoa Xã: Đối...
- Một năm đáng thất vọng của YouTube trên toàn...
- EVN lần đầu diễn tập an toàn thông tin mạng...
- Đây là chiếc iPhone được mua nhiều nhất...
- Bộ Tài chính ra quy chế mới về quản lý, sử...
- Cập nhật nhãn mới giúp người tiêu dùng...
- Kiếm tiền từ 5G: Thách thức lớn nhất của...
- "Hô biến" iPhone thành cục đá: Có thể bị...
- Phí trước bạ ô tô không gia hạn giảm, sẽ...
- Tại sao Apple chế tạo ô tô?
- Viettel cung cấp dịch vụ 5G tại thành phố...
- Đội KingTigerPrawn của Hàn Quốc giành giải...
- Thứ trưởng Phan Tâm: “Triển khai hạ tầng 5G...
- Nhiều mẫu iPhone chính hãng đang khan hàng tại...
- Mỹ quy định drone cần có ID, trang bị đèn ban...
- Trung Quốc điều tra Alibaba: Bài học cho Jack Ma...
- Chuyên gia dự báo 5 xu hướng tấn công mạng...
- Apple MagSafe vẫn còn rất nửa vời
- Các tỉnh cuối cùng đã ngừng phát sóng...
- 55/63 tỉnh thành sử dụng Zalo trong cải cách...
- Headline: CR7: “Mong muốn của tôi là luôn...
- Samsung dự kiến xuất xưởng dưới 300 triệu...
- Vì sao Trung Quốc ‘sờ gáy’ Alibaba?
- Những smartphone được người Việt mua nhiều...
- Vì sao mua hàng ở sàn TMĐT Mỹ không cần...
- Đằng sau bức ảnh động viên Đà Nẵng chiến...
- VNPT cung cấp MyTV Box 2020 - Tính năng nâng cấp...
- Clip hành động ghê tởm của shipper trước khi...
- Các đội thi chung kết WhiteHat Grand Prix 6 phát...