Bài giảng Phát triển ứng dụng Web: Bài 5 - Nguyễn Hữu Thể
lượt xem 4
download
Bài giảng Phát triển ứng dụng Web: Bài 5 Object oriented programming cung cấp cho người học những kiến thức như: Visibility; Properties & Methods; Getter & Setter; Create objects; Constructor; Destructor; Inheritance; Abstract class; Interfaces; Autoloading classes; Anonymous functions; Closures; Namespace.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Phát triển ứng dụng Web: Bài 5 - Nguyễn Hữu Thể
- PHÁT TRIỂN ỨNG DỤNG WEB OBJECT ORIENTED PROGRAMMING Nguyễn Hữu Thể
- Content 1. Class 2. Visibility 3. Properties & Methods 4. Getter & Setter 5. Create objects 6. Constructor 7. Destructor 8. Inheritance 9. Abstract class 10. Interfaces 11. Autoloading classes 12. Anonymous functions 13. Closures 14. Namespace 2
- Class class ClassName { // Properties // Methods } 3
- Visibility (public, private, protected) − Three levels: • public • private • protected − By default, all class members are public. 4
- Properties & Methods class Person { private $name; //public, protected private $age; public function show(){ echo $this->name . " is " . $this->age . " years old!"; } } 5
- Create objects (Create a new instance of the class) − Using the new keyword: new ClassName() − For example: $person = new PerSon(); $person2 = new PerSon(); 6
- Getter & Setter PHP JAVA class Person class Person { { private $name; private String name; private $age; private int age; public function getName(){ public String getName(){ return $this->name; return name; } } public function setName($name){ public void setName(String name){ $this->name = $name; this.name = name; } } public function getAge(){ public int getAge(){ return $this->age; return age; } } public function setAge($age){ public void setAge(int age){ $this->age = $age; this.age = age; } } } } 7
- class Person{ Ex: Person.php private $name; private $age; public function getName(){ return $this->name; } public function setName($name){ $this->name = $name; } public function getAge(){ return $this->age; } public function setAge($age){ $this->age = $age; } public function show(){ echo $this->name . " is " . $this->age . " years old!"; } $p = new Person(); } $p->setName("Nguyễn Văn A"); $p->setAge(18); echo $p->getName() . " is " . $p->getAge() . " years old."; //echo "{$p->getName()} is {$p->getAge()} years old."; $p->show(); 8
- __set() method class SetName { public function __set($variable, $value) { // echo $variable; echo "My " . $variable . " is " . $value . "\n"; } } $obj = new SetName (); $obj->Name = ‘Tom'; $obj->Name = ‘Jerry'; My Name is Tom My Name is Jerry 9
- __get() method class GetName { public $type = 'chocolate'; public $choctype = array ( 'milk' => 0, 'dark' => 1, 'plain' => 2 ); public function wrap() { echo 'Its a wrap'; } public function __get($index) { echo '$choctype property with index of: ' . $index . ''; return $this->choctype [$index]; } } $candy = new GetName (); // set a non existant property echo 'Value of property is: ' . $candy->milk; $choctype property with index of: milk 10 Value of property is: 0
- Constructor public function __construct() { //... } public function __construct($name, $age) { //... } 11
- Constructor class Person{ private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } public function show(){ echo $this->name . " is " . $this->age . " years old!"; } } $p = new Person("Nguyễn Trần Lê", 18); $p->show(); 12
- Destructor public function __destruct() { //... } − Example: public function __destruct() { echo "Bye bye!"; //... } − Using: $p = new Person("Nguyễn Trần Lê", 18); unset( $p ); // or exit: call __destruct() object $p->show(); // Object not found 13
- Inheritance class ParentClass { public function myMethod() { // Method code here } } class ChildClass extends ParentClass { public function myMethod() { // For ChildClass objects, this method is called // instead of the parent class's MyMethod() } } 14
- Calling a parent method from a child method parent::myMethod(); Example: parent::show(); parent::__construct(); 15
- require_once 'Person.php'; class Employee extends Person{ private $salary; Inheritance public function __construct($name, $age, $salary){ parent::__construct($name, $age); // Call __construct() parent $this->salary = $salary; } public function getSalary(){ return $this-> $salary; } // Override public function show(){ parent::show(); echo " Salary: " . $this->salary; } public function display(){ echo " Name: " . $this->getName() . ""; echo " Age: " . $this->getAge() . ""; echo "Salary: " . $this->salary; } $e = new Employee("Nguyễn Lê", 20, 200); } $e->show(); Nguyễn Lê is 20 years old! Salary: 200 16
- Visibility (Example 1) Property Visibility class MyClass { public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private'; function printHello() { echo $this->public; echo $this->protected; echo $this->private; } } $obj = new MyClass(); echo $obj->public; // Works echo $obj->protected; // Fatal Error echo $obj->private; // Fatal Error $obj->printHello(); // Shows Public, Protected and Private 17
- Visibility (Example 2) Property Visibility class MyClass2 extends MyClass { // We can redeclare the public and protected method, but not private public $public = 'Public2'; protected $protected = 'Protected2'; function printHello() { echo $this->public; echo $this->protected; echo $this->private; } } $obj2 = new MyClass2(); echo $obj2->public; // Works echo $obj2->protected; // Fatal Error echo $obj2->private; // Undefined $obj2->printHello(); // Shows Public2, Protected2, Undefined 18
- Visibility (Example 3) Method Visibility class MyClass { // Declare a public constructor public function __construct() { } // Declare a public method public function MyPublic() { } // Declare a protected method protected function MyProtected() { } // Declare a private method private function MyPrivate() { } // This is public function Foo() { $this->MyPublic(); $myclass = new MyClass; $this->MyProtected(); $myclass->MyPublic(); // Works $this->MyPrivate(); $myclass->MyProtected(); // Fatal Error } $myclass->MyPrivate(); // Fatal Error } $myclass->Foo(); // Public, Protected and Private work 19
- Visibility (Example 4) Method Visibility class MyClass2 extends MyClass { // This is public function Foo2() { $this->MyPublic(); $this->MyProtected(); $this->MyPrivate(); // Fatal Error } } $myclass2 = new MyClass2; $myclass2->MyPublic(); // Works $myclass2->Foo2(); // Public and Protected work, not Private 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Phát triển ứng dụng Web – Web Programming: Chương 0 - ThS. Lương Trần Hy Hiến
20 p | 242 | 19
-
Bài giảng Phát triển ứng dụng Web bằng PHP: Phần 2(1) - Dương Khai Phong
45 p | 132 | 17
-
Bài giảng Phát triển ứng dụng Web bằng PHP: Phần 3 - Dương Khai Phong
60 p | 119 | 15
-
Bài giảng Phát triển ứng dụng Web – Web Programming: Chương 5 - ThS. Lương Trần Hy Hiến
0 p | 108 | 15
-
Bài giảng Phát triển ứng dụng Web bằng PHP: Phần 2(2) - Dương Khai Phong
49 p | 131 | 14
-
Bài giảng Phát triển ứng dụng Web bằng PHP: Phần 4 - Dương Khai Phong
50 p | 101 | 12
-
Bài giảng Phát triển ứng dụng cho các thiết bị di động: Phần 2
76 p | 27 | 12
-
Bài giảng Phát triển ứng dụng cho các thiết bị di động: Phần 1
123 p | 48 | 11
-
Bài giảng Phát triển ứng dụng web: Bài 3 - Lê Đình Thanh
42 p | 122 | 11
-
Bài giảng Phát triển ứng dụng Web bằng PHP: Phần 1 - Dương Khai Phong
28 p | 135 | 10
-
Bài giảng Phát triển ứng dụng đa nền tảng - Chương 7: Nguyên lý phát triển ứng dụng với Flutter
88 p | 23 | 8
-
Bài giảng Phát triển ứng dụng đa nền tảng - Chương 8: Đánh giá hiệu năng ứng dụng đa nền tảng
66 p | 23 | 8
-
Bài giảng Phát triển ứng dụng đa nền tảng - Chương 0: Giới thiệu về môn học
27 p | 31 | 7
-
Bài giảng Phát triển ứng dụng đa nền tảng - Chương 2: Tổng quan về kiến trúc của di động
53 p | 19 | 7
-
Bài giảng Phát triển ứng dụng đa nền tảng - Chương 3.2: Cross-Platform
17 p | 21 | 7
-
Bài giảng Phát triển ứng dụng đa nền tảng - Chương 1: Tổng quan về phát triển ứng dụng di động
46 p | 29 | 6
-
Bài giảng Phát triển ứng dụng Web: Bài 6 - Nguyễn Hữu Thể
24 p | 43 | 4
-
Bài giảng Phát triển ứng dụng web: Chương 0 - Lê Đình Thanh
10 p | 14 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn