Chúng ta có thể tưởng tượng vũ trụ của chúng ta được làm từ các vật thể khác nhau như mặt trời, trái đất, mặt trăng, v.v ... Tương tự chúng ta có thể tưởng tượng chiếc xe của chúng ta được làm từ các vật thể khác nhau như bánh xe, tay lái, thiết bị, v.v. Thực hiện một phần mềm bằng các đối tượng khác nhau. Show
Khái niệm định hướng đối tượngTrước khi chúng ta đi chi tiết, hãy xác định các thuật ngữ quan trọng liên quan đến lập trình hướng đối tượng.
Xác định các lớp PHPMẫu chung để xác định một lớp mới trong PHP như sau - <?php class phpClass { var $var1; var $var2 = "constant string"; function myfunc ($arg1, $arg2) { [..] } [..] } ?> Đây là mô tả của từng dòng -
Thí dụDưới đây là một ví dụ xác định loại sách loại - <?php class Books { /* Member variables */ var $price; var $title; /* Member functions */ function setPrice($par){ $this->price = $par; } function getPrice(){ echo $this->price ."<br/>"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ." <br/>"; } } ?> Biến $ Đây là một biến đặc biệt và nó đề cập đến cùng một đối tượng IE. chính nó.$this is a special variable and it refers to the same object ie. itself. Tạo đối tượng trong PHPKhi bạn đã xác định lớp của mình, thì bạn có thể tạo bao nhiêu đối tượng như bạn muốn loại lớp đó. Sau đây là một ví dụ về cách tạo đối tượng bằng toán tử mới.new operator. $physics = new Books; $maths = new Books; $chemistry = new Books; Ở đây chúng tôi đã tạo ra ba đối tượng và những đối tượng này độc lập với nhau và chúng sẽ có sự tồn tại riêng biệt. Tiếp theo chúng ta sẽ xem cách truy cập chức năng thành viên và xử lý các biến thành viên. Gọi các chức năng thành viênSau khi tạo các đối tượng của bạn, bạn sẽ có thể gọi các chức năng thành viên liên quan đến đối tượng đó. Một hàm thành viên sẽ chỉ có thể xử lý biến thành viên của đối tượng liên quan. Ví dụ sau đây cho thấy cách đặt tiêu đề và giá cho ba cuốn sách bằng cách gọi các chức năng 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( 7 ); Bây giờ bạn gọi các chức năng thành viên khác để có được các giá trị được đặt bởi ví dụ trên - $physics->getTitle(); $chemistry->getTitle(); $maths->getTitle(); $physics->getPrice(); $chemistry->getPrice(); $maths->getPrice(); Điều này sẽ tạo ra kết quả sau - Physics for High School Advanced Chemistry Algebra 10 15 7 Chức năng xây dựngCác hàm xây dựng là loại chức năng đặc biệt được gọi là tự động bất cứ khi nào một đối tượng được tạo. Vì vậy, chúng tôi tận dụng tối đa hành vi này, bằng cách khởi tạo nhiều thứ thông qua các chức năng xây dựng. PHP cung cấp một hàm đặc biệt gọi là __construct () để xác định hàm tạo. Bạn có thể truyền nhiều đối số bạn thích vào hàm tạo hàm.__construct() to define a constructor. You can pass as many as arguments you like into the constructor function. Ví dụ sau sẽ tạo ra một hàm tạo cho lớp sách và nó sẽ khởi tạo giá và tiêu đề cho cuốn sách tại thời điểm tạo đối tượng. function __construct( $par1, $par2 ) { $this->title = $par1; $this->price = $par2; } Bây giờ chúng ta không cần gọi riêng chức năng tập hợp để đặt giá và tiêu đề. Chúng ta có thể khởi tạo hai biến thành viên này tại thời điểm tạo đối tượng. Kiểm tra ví dụ sau đây - $physics = new Books( "Physics for High School", 10 ); $maths = new Books ( "Advanced Chemistry", 15 ); $chemistry = new Books ("Algebra", 7 ); /* Get those set values */ $physics->getTitle(); $chemistry->getTitle(); $maths->getTitle(); $physics->getPrice(); $chemistry->getPrice(); $maths->getPrice(); Điều này sẽ tạo ra kết quả sau - Physics for High School Advanced Chemistry Algebra 10 15 7 Người phá hủyGiống như hàm hàm tạo, bạn có thể xác định hàm phá hủy bằng hàm __destruct (). Bạn có thể phát hành tất cả các tài nguyên với một chất phá hủy.__destruct(). You can release all the resources with-in a destructor. Di sảnĐịnh nghĩa lớp PHP có thể tùy chọn kế thừa từ định nghĩa lớp cha bằng cách sử dụng mệnh đề mở rộng. Cú pháp như sau - class Child extends Parent { <definition body> } Hiệu quả của việc thừa kế là lớp con (hoặc lớp con hoặc lớp dẫn xuất) có các đặc điểm sau -
Ví dụ sau kế thừa lớp sách và thêm nhiều chức năng dựa trên yêu cầu. <?php class Books { /* Member variables */ var $price; var $title; /* Member functions */ function setPrice($par){ $this->price = $par; } function getPrice(){ echo $this->price ."<br/>"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ." <br/>"; } } ?>0 Bây giờ ngoài các chức năng kế thừa, Class Novel giữ thêm hai chức năng thành viên. Chức năng ghi đèĐịnh nghĩa chức năng trong các lớp con ghi đè các định nghĩa với cùng tên trong các lớp cha. Trong một lớp con, chúng ta có thể sửa đổi định nghĩa của một hàm được kế thừa từ lớp cha. Trong ví dụ sau đây, các hàm getTitle được ghi đè để trả về một số giá trị. <?php class Books { /* Member variables */ var $price; var $title; /* Member functions */ function setPrice($par){ $this->price = $par; } function getPrice(){ echo $this->price ."<br/>"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ." <br/>"; } } ?>1 Thành viên công cộngTrừ khi bạn chỉ định khác, các thuộc tính và phương thức của một lớp là công khai. Điều đó có nghĩa là, chúng có thể được truy cập trong ba tình huống có thể -
Cho đến bây giờ chúng tôi đã thấy tất cả các thành viên là thành viên công cộng. Nếu bạn muốn giới hạn khả năng tiếp cận của các thành viên của một lớp thì bạn xác định các thành viên lớp là riêng tư hoặc được bảo vệ.private or protected. Thành viên tư nhânBằng cách chỉ định một thành viên riêng tư, bạn giới hạn khả năng tiếp cận của nó đối với lớp mà nó được khai báo. Thành viên tư nhân không thể được giới thiệu từ các lớp kế thừa lớp mà nó được khai báo và không thể được truy cập từ bên ngoài lớp. Một thành viên lớp có thể được thực hiện riêng tư bằng cách sử dụng từ khóa riêng tư của thành viên.private keyword infront of the member. <?php class Books { /* Member variables */ var $price; var $title; /* Member functions */ function setPrice($par){ $this->price = $par; } function getPrice(){ echo $this->price ."<br/>"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ." <br/>"; } } ?>2 Khi lớp MyClass được kế thừa bởi một lớp khác bằng cách sử dụng mở rộng, myPublicFunction () sẽ được hiển thị, cũng như $ Driver. Lớp mở rộng sẽ không có bất kỳ nhận thức nào về hoặc truy cập vào MyPrivateFunction và $ Car, bởi vì chúng được tuyên bố riêng tư. Thành viên được bảo vệMột thuộc tính hoặc phương thức được bảo vệ có thể truy cập được trong lớp mà nó được khai báo, cũng như trong các lớp mở rộng lớp đó. Các thành viên được bảo vệ không có sẵn bên ngoài hai loại lớp đó. Một thành viên lớp có thể được bảo vệ bằng cách sử dụng từ khóa được bảo vệ trước thành viên.protected keyword in front of the member. Đây là phiên bản khác nhau của MyClass - <?php class Books { /* Member variables */ var $price; var $title; /* Member functions */ function setPrice($par){ $this->price = $par; } function getPrice(){ echo $this->price ."<br/>"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ." <br/>"; } } ?>3 Giao diệnCác giao diện được xác định để cung cấp một tên chức năng chung cho người thực hiện. Người thực hiện khác nhau có thể thực hiện các giao diện đó theo yêu cầu của họ. Bạn có thể nói, giao diện là bộ xương được thực hiện bởi các nhà phát triển. Kể từ PHP5, có thể xác định giao diện, như thế này - <?php class Books { /* Member variables */ var $price; var $title; /* Member functions */ function setPrice($par){ $this->price = $par; } function getPrice(){ echo $this->price ."<br/>"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ." <br/>"; } } ?>4 Sau đó, nếu một lớp khác thực hiện giao diện đó, như thế này - <?php class Books { /* Member variables */ var $price; var $title; /* Member functions */ function setPrice($par){ $this->price = $par; } function getPrice(){ echo $this->price ."<br/>"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ." <br/>"; } } ?>5 Hằng sốMột hằng số có phần giống như một biến, trong đó nó giữ một giá trị, nhưng thực sự giống như một hàm vì một hằng số là bất biến. Một khi bạn khai báo một hằng số, nó không thay đổi. Tuyên bố một hằng số rất dễ dàng, như được thực hiện trong phiên bản MyClass này - <?php class Books { /* Member variables */ var $price; var $title; /* Member functions */ function setPrice($par){ $this->price = $par; } function getPrice(){ echo $this->price ."<br/>"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ." <br/>"; } } ?>6 Trong lớp này, bắt buộc là một hằng số. Nó được tuyên bố với từ khóa Const, và trong mọi trường hợp, nó không thể được thay đổi thành bất cứ điều gì khác ngoài 1.7. Lưu ý rằng tên của hằng số không có $ hàng đầu, như tên biến làm. Lớp học trừu tượngMột lớp trừu tượng là một lớp không thể được khởi tạo, chỉ được thừa hưởng. Bạn tuyên bố một lớp trừu tượng với từ khóa trừu tượng, như thế này -abstract, like this − Khi kế thừa từ một lớp trừu tượng, tất cả các phương pháp được đánh dấu trừu tượng trong tuyên bố lớp của cha mẹ phải được xác định bởi đứa trẻ; Ngoài ra, các phương pháp này phải được xác định với cùng một tầm nhìn. <?php class Books { /* Member variables */ var $price; var $title; /* Member functions */ function setPrice($par){ $this->price = $par; } function getPrice(){ echo $this->price ."<br/>"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ." <br/>"; } } ?>7 Lưu ý rằng các định nghĩa chức năng bên trong một lớp trừu tượng cũng phải được đi trước bởi Tóm tắt từ khóa. Nó không hợp pháp để có các định nghĩa chức năng trừu tượng trong một lớp không phải là người. Từ khóa tĩnhTuyên bố các thành viên hoặc phương thức của lớp là tĩnh giúp chúng có thể truy cập mà không cần phải khởi tạo lớp. Một thành viên được tuyên bố là không thể truy cập tĩnh với một đối tượng lớp khởi tạo (mặc dù phương thức tĩnh có thể). Thử ví dụ sau - <?php class Books { /* Member variables */ var $price; var $title; /* Member functions */ function setPrice($par){ $this->price = $par; } function getPrice(){ echo $this->price ."<br/>"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ." <br/>"; } } ?>8 Từ khóa cuối cùngPhp 5 giới thiệu từ khóa cuối cùng, ngăn chặn các lớp con ghi đè một phương thức bằng cách tiền tố định nghĩa với Final. Nếu bản thân lớp đang được xác định cuối cùng thì nó không thể được mở rộng. Ví dụ sau dẫn đến lỗi gây tử vong: Không thể ghi đè phương thức cuối cùng Baseclass :: moretesting () <?php class Books { /* Member variables */ var $price; var $title; /* Member functions */ function setPrice($par){ $this->price = $par; } function getPrice(){ echo $this->price ."<br/>"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ." <br/>"; } } ?>9 Gọi các nhà xây dựng cha mẹThay vì viết một hàm tạo hoàn toàn mới cho lớp con, hãy viết nó bằng cách gọi cho hàm tạo của cha mẹ một cách rõ ràng và sau đó làm bất cứ điều gì cần thiết ngoài việc khởi tạo lớp con. Đây là một ví dụ đơn giản - $physics = new Books; $maths = new Books; $chemistry = new Books;0 Trong ví dụ này, chúng tôi có một lớp cha (tên), có một hàm tạo hai đối tượng và một lớp con (Tên1), có một hàm tạo ba đối tượng. Chất xây dựng của các chức năng của NameB1 bằng cách gọi hàm tạo cha mẹ của nó một cách rõ ràng bằng cách sử dụng cú pháp :: Syntax (chuyển hai đối số của nó theo) và sau đó đặt một trường bổ sung. Tương tự, NAMEUB1 định nghĩa hàm TOSTRING () không xây dựng của nó theo hàm cha mà nó ghi đè. Lưu ý - một hàm tạo có thể được xác định với cùng tên với tên của một lớp. Nó được định nghĩa trong ví dụ trên. − A constructor can be defined with the same name as the name of a class. It is defined in above example. Loại đối tượng PHP là gì?Trong PHP, đối tượng là một loại dữ liệu hỗn hợp (cùng với các mảng). Giá trị của nhiều loại có thể được lưu trữ cùng nhau trong một biến duy nhất. Đối tượng là một thể hiện của lớp tích hợp hoặc người dùng được xác định. Ngoài các thuộc tính, lớp xác định chức năng được liên kết với dữ liệu.a compound data type (along with arrays). Values of more than one types can be stored together in a single variable. Object is an instance of either a built-in or user defined class. In addition to properties, class defines functionality associated with data.
Đối tượng giải thích với ví dụ là gì?Một đối tượng là một danh từ (hoặc đại từ) được tác động bởi một động từ hoặc giới từ.Có ba loại đối tượng: đối tượng trực tiếp (ví dụ: tôi biết anh ta.) Đối tượng gián tiếp (ví dụ: cho cô ấy giải thưởng.)a noun (or pronoun) that is acted upon by a verb or a preposition. There are three kinds of object: Direct Object (e.g., I know him.) Indirect Object (e.g., Give her the prize.)
Đối tượng trong ngôn ngữ lập trình là gì?Một đối tượng là một loại dữ liệu trừu tượng với việc bổ sung tính đa hình và di truyền.Thay vì các chương trình cấu trúc dưới dạng mã và dữ liệu, một hệ thống hướng đối tượng tích hợp cả hai bằng cách sử dụng khái niệm "đối tượng".Một đối tượng có trạng thái (dữ liệu) và hành vi (mã).Đối tượng có thể tương ứng với những thứ được tìm thấy trong thế giới thực.an abstract data type with the addition of polymorphism and inheritance. Rather than structure programs as code and data, an object-oriented system integrates the two using the concept of an "object". An object has state (data) and behavior (code). Objects can correspond to things found in the real world.
Đối tượng trong OOP là gì?Trong lập trình hướng đối tượng (OOP), các đối tượng là những điều bạn nghĩ về đầu tiên trong việc thiết kế một chương trình và chúng cũng là đơn vị mã cuối cùng có nguồn gốc từ quy trình.the things you think about first in designing a program and they are also the units of code that are eventually derived from the process. |