Lập trình hướng đối tượng trong PHP | 297 bài hướng dẫn PHP hay nhất php object oriented

14 168 0
Lập trình hướng đối tượng trong PHP | 297 bài hướng dẫn PHP hay nhất php object oriented

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lập trình hướng đối tượng trong PHP | 297 bài hướng dẫn PHP hay nhất php object oriented tài liệu, giáo án, bài giảng ,...

http://vietjack.com/php/index.jsp Copyright © vietjack.com Lập trình hướng đối tượng PHP Chúng ta tưởng tượng vụ trụ tạo từ đối tượng khác mặt trời, mặt trăng, trái đất, … Theo cách tương tự, bạn tưởng tượng xe tạo từ đối tượng khác bánh xe, bánh lái, cần sang số, … Theo cách vậy, khái niệm lập trình hướng đối tượng giả sử thứ đối tượng triển khai phần mềm sử dụng đối tượng khác Các khái niệm hướng đối tượng PHP Trước vào chi tiết, nhắc lại số khái niệm liên quan tới Lập trình hướng đối tượng  Class − Đây kiểu liệu định nghĩa lập trình viên, mà gồm hàm cục liệu cục Bạn nghĩ Class Template để tạo nhiều instance (sự thể hiện) loại (hoặc lớp) đối tượng  Object − Một instance (sự thể hiện) riêng biệt cấu trúc liệu định nghĩa Class Một bạn định nghĩa Class, sau tạo nhiều Object Class Các Object cịn biết Instance  Biến thành viên − Đây biến định nghĩa bên Class Dữ liệu khơng nhìn thấy với ngoại vi lớp truy cập thơng qua hàm thành viên Những biến gọi attribute đối tượng đối tượng tạo  Hàm thành viên − Đây hàm định nghĩa bên Class sử dụng để truy cập liệu đối tượng  Tính kế thừa − Khi lớp định nghĩa việc kế thừa hàm tồn lớp cha, gọi tính kế thừa Ở đây, lớp kế thừa tất số hàm biến thành viên lớp cha  Lớp cha − Một lớp mà kế thừa từ lớp khác Nó gọi lớp sở (base class) super class  Lớp − Một lớp mà kế thừa từ lớp khác Nó gọi lớp phụ lớp kế thừa http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/php/index.jsp  Copyright © vietjack.com Tính đa hình − Đây khái niệm hướng đối tượng mà hàm sử dụng cho mục đích khác Ví dụ, tên hàm giống vậy, nhận số tham số khác thực tác vụ khác  Nạp chồng (Overloading) − Một kiểu đa hình, số tất tốn tử có trình triển khai khác phụ thuộc vào kiểu tham số chúng Tương tự, hàm nạp chồng với trình triển khai khác  Trừu tượng hóa liệu − Bất kỳ biểu diễn liệu mà chi tiết trình triển khai bị ẩn  Tính bao đóng − Liên quan tới khái niệm mà bao đóng tất liệu hàm thành viên với để tạo thành Object  Constructor − Liên quan tới kiểu hàm đặc biệt mà gọi tự động có tạo thành đối tượng từ Class  Destructor − Liên quan tới kiểu hàm đặc biệt mà gọi tự động đối tượng bị xóa khỏi phạm vi Định nghĩa Class PHP Form chung để định nghĩa lớp PHP sau: Dưới phần giải thích dịng trên: http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/php/index.jsp Copyright © vietjack.com  Thủ tục class đặc biệt, theo sau tên lớp mà bạn muốn định nghĩa  Một tập hợp dấu ngoặc móc bao quanh số lượng khai báo biến định nghĩa hàm  Các khai báo biến bắt đầu với thủ tục đặc biệt var, theo sau tên biến theo qui ước $; chúng có phép gán khởi tạo tới giá trị số  Định nghĩa hàm giống với hàm standalone PHP, hàm cục cho lớp sử dụng để thiết lập truy cập liệu đối tượng Ví dụ Ví dụ sau định nghĩa lớp tên Books Biến $this biến đặc biệt tham chiếu tới đối tượng (ví dụ: nó) Tạo Object PHP Một bạn định nghĩa lớp cho mình, bạn tạo đối tượng kiểu lớp tùy bạn thích Ví dụ sau cách tạo đối tượng sử dụng từ khóa new PHP $physics = new Books; $maths = new Books; $chemistry = new Books; Ở đây, tạo đối tượng đối tượng độc lập với chúng có tồn riêng rẽ Phần tiếp theo, xem cách truy cập hàm thành viên xử lý biến thành viên PHP Gọi hàm thành viên PHP Sau tạo đối tượng, bạn gọi hàm thành viên liên quan tới đối tượng Một hàm thành viên xử lý biến thành viên liên quan tới đối tượng Ví dụ sau minh họa cách thiết lập title price cho book cách gọi hàm thành viên $physics->setTitle( "Physics for High School" ); $chemistry->setTitle( "Advanced Chemistry" ); $maths->setTitle( "Algebra" ); $physics->setPrice( 10 ); $chemistry->setPrice( 15 ); $maths->setPrice( ); Bây bạn gọi hàm thành viên khác để lấy giá trị thiết lập ví dụ trên: $physics->getTitle(); $chemistry->getTitle(); $maths->getTitle(); http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/php/index.jsp Copyright © vietjack.com $physics->getPrice(); $chemistry->getPrice(); $maths->getPrice(); Ví dụ cho kết quả: Physics for High School Advanced Chemistry Algebra 10 15 Hàm constructor PHP Hàm constructor kiểu hàm đặc biệt mà gọi tự động có tạo thành đối tượng từ Class Vì thế, lợi dụng cách vận hành này, việc khởi tạo nhiều thứ thông qua hàm constructor PHP PHP cung cấp hàm đặc biệt gọi construct() để định nghĩa constructor Bạn truyền tham số tùy bạn vào hàm constructor Ví dụ sau tạo constructor cho lớp Books khởi tạo price title cho book thời điểm tạo đối tượng function construct( $par1, $par2 ){ $this->price = $par1; $this->title = $par2; } Bây giờ, không cần gọi tập hợp hàm riêng rẽ để thiết lập price title Chúng ta khởi tạo hai biến thành viên chúng thời điểm tạo đối tượng Bạn kiểm tra ví dụ sau: $physics = new Books( "Physics for High School", 10 ); $maths = new Books ( "Advanced Chemistry", 15 ); $chemistry = new Books ("Algebra", ); /* Get those set values */ $physics->getTitle(); http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/php/index.jsp Copyright © vietjack.com $chemistry->getTitle(); $maths->getTitle(); $physics->getPrice(); $chemistry->getPrice(); $maths->getPrice(); Ví dụ cho kết quả: Physics for High School Advanced Chemistry Algebra 10 15 Destructor PHP Giống hàm constructor PHP, bạn định nghĩa hàm destructor sử dụng hàm destruct() Bạn giải phóng tất nguồn với destructor PHP Tính kế thừa PHP Các định nghĩa lớp PHP kế thừa từ định nghĩa lớp cha sử dụng mệnh đề extends PHP Cú pháp sau: class Child extends Parent { } Hiệu tính kế thừa lớp (lớp phụ lớp kế thừa) có đặc trưng sau:  Tự động có tất khai báo biến thành viên lớp cha  Tự động có tất hàm thành viên giống lớp cha, mà (theo mặc định) làm việc theo phương thức hàm làm lớp cha Ví dụ sau kế thừa lớp Books thêm số tính tùy theo yêu cầu class Novel extends Books{ http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/php/index.jsp Copyright © vietjack.com var publisher; function setPublisher($par){ $this->publisher = $par; } function getPublisher(){ echo $this->publisher ""; } } Bây giờ, hàm kế thừa, lớp Novel bổ sung thêm hai hàm thành viên Ghi đè hàm (Function Overriding) PHP Các định nghĩa hàm lớp ghi đè định nghĩa với tên lớp cha Trong lớp con, sửa đổi định nghĩa hàm kế thừa từ lớp cha Trong ví dụ sau, hàm getPrice getTitle ghi đè để trả giá trị function getPrice(){ echo $this->price ""; return $this->price; } function getTitle(){ echo $this->title ""; return $this->title; } Thành viên public PHP Trừ bạn xác định, khơng thuộc tính (property) phương thức lớp public Tức là, chúng truy cập tình sau:  Từ bên ngồi lớp khai báo  Từ bên lớp khai báo http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/php/index.jsp  Copyright © vietjack.com Từ bên lớp ngồi mà triển khai lớp khai báo Tới giờ, thấy tất thành viên thành viên public Nếu bạn muốn giới hạn truy cập thành viên lớp, bạn định nghĩa thành viên lớp private hoặcprotected PHP Thành viên private PHP Bằng việc định thành viên private, bạn giới hạn độ truy cập cho lớp khai báo Thành viên private khơng thể tham chiếu từ lớp mà kế thừa lớp khai báo khơng thể truy cập từ bên ngồi lớp Một thành viên lớp định private sử dụng từ khóa private trước thành viên class MyClass { private $car = "skoda"; $driver = "SRK"; function construct($par) { // Statements here run every time // an instance of the class // is created } function myPublicFunction() { return("I'm visible!"); } private function myPrivateFunction() { return("I'm not visible outside!"); } } http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/php/index.jsp Copyright © vietjack.com Khi lớp MyClass kế thừa lớp khác sử dụng extends, hàm myPublicFunction() nhìn thấy, $driver Lớp kế thừa không nhận biết khơng truy cập tới hàm myPrivateFunction $car, chúng khai báo private Thành viên protected PHP Một thuộc tính phương thức protected truy cập lớp mà khai báo, lớp mà kế thừa từ lớp Các thành viên protected khơng có sẵn với ngoại vi hai loại lớp Một thành viên lớp định protected sử dụng từ khóa protected trước thành viên PHP Dưới phiên khác MyClass: class MyClass { protected $car = "skoda"; $driver = "SRK"; function construct($par) { // Statements here run every time // an instance of the class // is created } function myPublicFunction() { return("I'm visible!"); } protected function myPrivateFunction() { return("I'm visible in child class!"); } } Interface PHP Interface định nghĩa để cung cấp tên hàm chung cho trình triển khai Các Implementor khác triển khai Interface chúng theo yêu cầu chúng Bạn nói, Interface khung mà triển khai lập trình viên http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/php/index.jsp Copyright © vietjack.com Như PHP 5, để định nghĩa Interface, giống như: interface Mail { public function sendMail(); } Sau đó, lớp khác triển khai Interface đó, giống như: class Report implements Mail { // sendMail() Definition goes here } Hằng số (Constant) PHP Một constant giống biến, giữ giá trị, thực giống hàm hơn, khơng thể thay đổi Một bạn khai báo hằng, khơng thay đổi Khai báo PHP dễ dàng, thực phiên MyClass class MyClass { const requiredMargin = 1.7; function construct($incomingValue) { // Statements here run every time // an instance of the class // is created } } Trong lớp này, requireMargin Nó khai báo với từ khóa const PHP, giá trị khơng thay đổi tình Ghi nhớ rằng, tên không bắt đầu với $, tên biến Lớp trừu tượng (Abstract Class) PHP Một lớp trừu tượng lớp mà thuyết minh, kế thừa Bạn khai báo lớp trừu tượng với từ khóa abstract PHP, giống http://vietjack.com/ Trang chia sẻ học online miễn phí Page 10 http://vietjack.com/php/index.jsp Copyright © vietjack.com Khi kế thừa từ lớp trừu tượng, tất phương thức đánh dấu abstract khai báo lớp cha phải định nghĩa lớp con; ra, phương thức phải định nghĩa với tính nhìn thấy abstract class MyAbstractClass { abstract function myAbstractFunction() { } } Ghi rằng, định nghĩa hàm bên lớp trừu tượng phải đặt trước từ khóa abstract Trong PHP, khơng hợp lệ bạn có định nghĩa hàm abstract bên lớp non-abstract Từ khóa static PHP Khai báo thành viên lớp phương thức lớp static làm cho chúng truy cập mà không cần khởi tạo lớp Một thành viên khai báo static truy cập với đối tượng lớp thuyết minh (mặc dù phương thức static có thể) Ban thử ví dụ sau: http://vietjack.com/ Trang chia sẻ học online miễn phí Page 11 http://vietjack.com/php/index.jsp Copyright © vietjack.com Từ khóa final PHP PHP giới thiệu từ khóa final, mà ngăn cản lớp từ việc ghi đè phương thức việc đặt vào trước định nghĩa từ khóa final Nếu lớp khai bào final, khơng thể kế thừa Ví dụ sau tạo Fatal Error: Cannot override final method BaseClass::moreTesting() Gọi constructor cha PHP Thay viết constructor cho lớp con, bạn viết cách gọi constructor lớp cha cách tường minh sau dó thực việc cần thiết để thuyết minh lớp Dưới ví dụ đơn giản PHP class Name { var $_firstName; http://vietjack.com/ Trang chia sẻ học online miễn phí Page 12 http://vietjack.com/php/index.jsp Copyright © vietjack.com var $_lastName; function Name($first_name, $last_name) { $this->_firstName = $first_name; $this->_lastName = $last_name; } function toString() { return($this->_lastName ", " $this->_firstName); } } class NameSub1 extends Name { var $_middleInitial; function NameSub1($first_name, $middle_initial, $last_name) { Name::Name($first_name, $last_name); $this->_middleInitial = $middle_initial; } function toString() { return(Name::toString() " " $this->_middleInitial); } } Trong ví dụ này, có lớp cha Name, có constructor nhận hai tham số, lớp NameSub1, có constructor nhận tham số Constructor NameSub1 thực chức việc gọi constructor cha cách tường minh sử dụng cú pháp :: (truyền hai tham số nó) sau thiết lập trường bổ sung Theo cách tương tự, NameSub1 định nghĩa hàm toString() mà ghi đè từ lớp cha Ví dụ − Một constructor định nghĩa với tên tên lớp, ví dụ http://vietjack.com/ Trang chia sẻ học online miễn phí Page 13 http://vietjack.com/php/index.jsp http://vietjack.com/ Trang chia sẻ học online miễn phí Copyright © vietjack.com Page 14 ... viên PHP Gọi hàm thành viên PHP Sau tạo đối tượng, bạn gọi hàm thành viên liên quan tới đối tượng Một hàm thành viên xử lý biến thành viên liên quan tới đối tượng Ví dụ sau minh họa cách thiết lập. .. bạn thích Ví dụ sau cách tạo đối tượng sử dụng từ khóa new PHP $physics = new Books; $maths = new Books; $chemistry = new Books; Ở đây, tạo đối tượng đối tượng độc lập với chúng có tồn riêng rẽ... http://vietjack.com /php/ index.jsp Copyright © vietjack.com } } ?> Biến $this biến đặc biệt tham chiếu tới đối tượng (ví dụ: nó) Tạo Object PHP Một bạn định nghĩa lớp cho mình, bạn tạo đối tượng kiểu lớp

Ngày đăng: 02/12/2017, 20:41

Từ khóa liên quan

Mục lục

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

    • Các khái niệm hướng đối tượng trong PHP

    • Định nghĩa Class trong PHP

      • Ví dụ

      • Tạo Object trong PHP

      • Gọi hàm thành viên trong PHP

      • Hàm constructor trong PHP

      • Destructor trong PHP

      • Tính kế thừa trong PHP

      • Ghi đè hàm (Function Overriding) trong PHP

      • Thành viên public trong PHP

      • Thành viên private trong PHP

      • Thành viên protected trong PHP

      • Interface trong PHP

      • Hằng số (Constant) trong PHP

      • Lớp trừu tượng (Abstract Class) trong PHP

      • Từ khóa static trong PHP

      • Từ khóa final trong PHP

      • Gọi constructor cha trong PHP

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan