Hướng đối tượng nghĩa là gì, cách khai báo, cài đặt và truy xuất đối tượng.

ngocseo00

Banned
Tham gia
19/5/2016
Bài viết
0
Phần 1 : Hướng đối tượng nghĩa là gì, cách khai báo, setup và truy xuất đối tượng, thuộc tính, phương thức

Lv6WIEM.png
Trong nhiều năm, PHP đã bị coi là một ngôn ngữ nghèo nàn, và đứng hạng thấp trong bảng xếp hạng ngôn ngữ lập trình bởi ví nó ko tương trợ tính hướng đối tượng. đến năm 2004, bản PHP 5 ra đời đã tạo ra bước ngoắc mới cho ngôn ngữ lập trình PHP, giúp PHP bắt kịp với xu thế và trở thành một trong nhiều đối thủ nặng ký thus với các ngôn ngữ lập trình khác. Vậy thì hướng đối tượng là gì? và vì sao nó lại đóng một vai trò béo lớn như vậy ? Hít một hơi thật sâu, làm vài động tác thể dục, ngồi thẳng lưng và chúng ta khởi đầu phân tách và khám phá về hướng đối tượng (OOP) trong PHP nào

Theo như khái niệm của Wikipedia thì :
Object-oriented programming Magento Marketplace When one ‘programming paradigm that represents concepts Once “objects” that Have data fields with associated procedures known When “methods”.

Hướng đối tương là môt mô hình lập trình phân tích nội dụng của chương trình theo hướng cổ đại (thủ tục) và nhóm các tính chất, phương thức (properties, methods) giống nhau thành một đối tượng (class), giúp rút ngắn , tránh việc dôi thừa, và giữ vững được nguyên tắcDRY – DONT REPEAT YOURSELF, dễ dàng trong vấn đề báo trì, tăng hiệu quả công việc.
Hãy thử tưởng tượng bạn thiết kế 1 website hoặc một system lên cả nghìn, thậm chí hàng triệu dòng code, những mã lệnh đươc viết theo hướng cổ kính, một site (page) chứa nào là html, php,js, xử lý xen lẫn, trà trộn với nhau. Và Thế là mỗi lần hiện ra lỗi, gặp phải một vấn đề nào đó hay chỉ đơn thuần là sửa vài chỗ nhỏ xíu khi có chỉnh sửa yêu cầu thì bạn phải lục tung cả mớ code, đi sửa từng chỗ này chỗ kia bởi vì những đoạn code trùng lặp, điều này quả thật là một cơn ác độc mộng đối với một developer. Chính thành ra OOP ra đời nhằm giúp bạn giải quyết vấn đề này.

1. Cấu trúc course

Để khai báo một course trong PHP, ta dùng từ khóa class, theo sau là tên lesson và một cặp ngoắc nhọn
<?php
course KungfuClass
// các phương thức và thuộc tính của course được đặt ở đây

?>

Sau khi tạo lesson xong, chúng ta có thể lưu trữ course vào một biến, và dùng biến này truy xuất các phương thức , thuộc tính của course
Để lưu trữ lesson vào biến, ta dùng từ khóa ne
<?php
$object = novel KungfuClass();
?>


Để xem cấu trúc và nội dung của course như thế nào, bạn dùng từ khóa var_dump() ,
<?php
var_dump($object);
?>


imitate tất cả nội dung :
<?php class KungfuClass
// các phương thức và thuộc tính của course được đặt ở đây
// Lưu trức course vào biến
$object = new KungfuClass();
var_dump($object);
?>


Vào một file đặt tên là bai1.php và lưu vào thư mục gốc của site, chạy đường dẫn localhost/bai1.php và xem kết quả. Thế là xong, chúng ta đã hoàn thành đoạn mã hướng đối tượng trước tiên một cách dễ dàng nhất, tiếp theo hãy tìm hiểu cách khai báo thuộc tính và phương thức trong lesson.
2) Khai báo phương thuộc tính của lesson

thuộc tính của lesson hiểu một cách dễ dàng là chỉ như là một biến chứa dữ liệu thông thường của PHP, chỉ có khác biệt là nó được đặt vào class và có mối liên quan mật thiết với class chưa nó, và muốn truy xuất được thuộc tính của lesson thì phải thông qua một object . bí quyết khai báo thuộc tính của class như sau
<?php
course KungfuClass

public $property1 = "Mình là thuộc tính của class KungfuClass !";

// Đưa course KungfuClass vào object $object
$object = new KungfuClass;
// Xem nội dung thing
var_dump($object);
?>

3.) Truy xuất tính chất trong class

Để có thể truy xuất thuộc tính trong class, ta sử dụng con trỏ “->” của đối tượng object. giả tỉ chúng ta muốn truy xuất thuộc tính $property1 và xuất ra ngoài màng hình dòng chữ “Mình là tính chất của class KungfuClass!”, hãy xem đoạn code dưới đây
<?php
$object = recent KungfuClass();
echo $object->property1;
?>

4.) Khai báo phương thức trong lesson

Cũng như thuộc tính, phương thức của class hiểu đơn giản chính là function được đặt trong course, và có mối liên can mật thiết với class. Để tạo phương thức trong class, chúng ta làm như sau
<?php
course KungfuClass

public $property1 = "Mình là thuộc tính của class KungfuClass !";
function myMethod()
echo "Xin chào, tôi là phương thức của class KungfuClass !";


// Đưa class KungfuClass vào thing $object
$object = novel KungfuClass;
// Xem nội dung object
var_dump($object);
?>

5 .) Truy xuất phương thức trong lesson

Để truy xuất phương thức trong course, cũng như truy xuất tính chất, đơn giản chúng ta dùng con trỏ ->
<?php
class KungfuClass

public $property1 = "Mình là thuộc tính của lesson KungfuClass !";
function myMethod()
echo "Xin chào, tôi là phương thức của lesson KungfuClass !";


// Đưa course KungfuClass vào thing $object
$object = modern KungfuClass();
// Xuất ra màng hình dòng chữ "Xin chào, tôi là phương thức của class KungfuClass !";
$object -> myMethod();
?>

Tuy nhiên, hướng đối tượng cho phép chúng ta thiết lập và truy xuất tính chất, phương thức bên trong lesson thông qua con trỏ $this
<?php
lesson KungfuClass

public $property1 = "Mình là thuộc tính của course KungfuClass !";
function myMethod()
echo "Xin chào, tôi là phương thức của class KungfuClass !";

function myMethod2()
//truy xuất đến thuộc tính $property1
echo $this->property1;
echo "<br />";
$this->myMethod();


// Đưa lesson KungfuClass vào object $object
$object = modern KungfuClass();
// Xuất ra màng hình dòng chữ "Mình là tính chất của course KungfuClass !" và "Xin chào, tôi là phương thức của lesson KungfuClass !"
$object -> myMethod2();
?>

Chạy lại đoạn script trên, chúng ta sẽ thấy hiện ra ra ngoài trình duyệt 2 dòng chữ đó là “Mình là thuộc tính của course KungfuClass !” và “Xin chào, tôi là phương thức của course KungfuClass !”.
Bằng phương pháp nhóm những đối tượng có điểm tương đồng về thuộc tính và phương thức trong một course, ta gọi là lớp phụ thân, và được các lớp khác kế thừa lại (lớp con). Chúng ta sẽ ko phải mất thời gian cho việc phải khai báo đi , khai báo lại các đặc điểm chung đó. chả hạn như khi nói về xe, chúng ta có nào là xe hơi, xe máy, xe ô tô, xe tăng,…Chúng ta nhận thấy tất cả chúng đều có các đặc điểm chúng như là : vận tốc màu sắc, trọng lương, có thể chạy được,…chúng ta sẽ quy chúng về một lớp chung, tạm gọi là lớp Xe, trong lớp Xe này sẽ có các thuộc tính là vận tốc, màu nhan sắc, kích cỡ và phương thức chung đó là chạy
<?php
class XeClass

public $verhicle = "10km/h";
public $weight= "1 tấn";
public $color = "đỏ";
function run()
echo "Xe đang chạy";

// Đưa class XeClass vào object $xe
$xe= novel XeClass();
?>

Ở thí dụ trên, lớp xe là lớp cha, chứa các đặc tính chung của những loại xe và các kiểu xe như xe hơi, xe máy, xe tăng,.. là những lớp con sẽ mang nhưng đặc tính của lớp phụ thân, nhưng mà không giống nhau ở những chi tiết như xe hơi thì có vận tốc chạy cao hơn xe máy, xe máy thì chạy nhanh hơn xe tăng,.. hoặc sự không giống nhau về màu nhan sắc như xanh, đỏ, tím, đá quý,…
<?php

lesson XeClass

public $verhicle = "10km/s";

public $weight= "1 tấn";

public $color = "đỏ";

function setVerhicle($verhicle_param)

$this -> verhicle =$verhicle_param;



function getVerhicle()

return $this -> verhicle;



function run()
echo "Xe đang chạy";


// Khởi tạo đối tượng xe hơi
$xehoi = recent XeClass();

// Khởi tạo đối tượng xe máy
$xemay = modern XeClass();

// Khởi tạo đối tượng xe tăng
$xetang = novel XeClass();

//xe hơicó vận tốc 100km/h

$xehoi -> setVerhicle ("100km/h");

//xe máy có vận tốc 60km/h

$xemay -> setVerhicle("60km/h");

//xe tăngcó vận tốc 50km/h

$xetang -> setVerhicle("50km/h");

//Xuất ra vận tốc những loại xe khác nhauy

//Vận tốc xe hơi

echo $xehoi->getVerhicle();

//Vận tốc xe máy

echo $xemay->getVerhicle();

//Vận tốc xe tăng

echo $xetang->getVerhicle();
?>

Ở những thí dụ trên, các bạn có để ý thấy từ khóa “public” không ? Đó chính là tầm vực của biến, bài viết tới mình sẽ nói cụ thể hơn về vấn đề này. Thân !
 
Hiệu chỉnh bởi quản lý:
×
Quay lại
Top