亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 33
粉絲 0
評(píng)論 0
訪問(wèn)量 34389
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
服務(wù)端 - PHP - OOP之類成員定義與訪問(wèn)、類繼承和抽象類實(shí)現(xiàn)
原創(chuàng)
889人瀏覽過(guò)

服務(wù)端 - PHP - OOP之類成員定義與訪問(wèn)、類繼承和抽象類實(shí)現(xiàn)

一、類成員

1. 類屬性

  • 語(yǔ)法:訪問(wèn)限制符 變量;
  • 描述:帶有訪問(wèn)控制的變量
  • 分類:常規(guī)屬性、靜態(tài)屬性和抽象屬性
  • 常規(guī)屬性:被類實(shí)例訪問(wèn)
  • 靜態(tài)屬性:被類訪問(wèn)
  • 抽象屬性:沒(méi)有被賦值,無(wú)法實(shí)例化,默認(rèn)值是null,只能通過(guò)子類繼承實(shí)現(xiàn)
  1. echo '<h3>一、常規(guī)屬性的定義和訪問(wèn)</h3>';
  2. class Person {
  3. //在類內(nèi)部定義類的常規(guī)屬性
  4. public $name = '小明';
  5. public static $age = 18;
  6. public function getName() {
  7. //在類內(nèi)部訪問(wèn)類的常規(guī)屬性
  8. return $this->name;
  9. }
  10. }
  11. $p1 = new Person();
  12. //在類外部訪問(wèn)類的常規(guī)屬性
  13. echo $p1->name;
  14. echo '<br>';
  15. //在類內(nèi)部訪問(wèn)類的常規(guī)屬性
  16. echo $p1->getName();
  17. echo '<h3>二、靜態(tài)屬性的定義和訪問(wèn)</h3>';
  18. class Person1 {
  19. public $name = '小紅';
  20. //在類內(nèi)部定義類的靜態(tài)屬性
  21. public static $age = 17;
  22. public function getAge() {
  23. //在類內(nèi)部訪問(wèn)類的靜態(tài)屬性
  24. return self::$age;
  25. }
  26. }
  27. $p2 = new Person1();
  28. //在類外部訪問(wèn)類的靜態(tài)屬性
  29. echo $p2::$age;
  30. echo '<br>';
  31. //在類內(nèi)部訪問(wèn)類的靜態(tài)屬性
  32. echo $p2->getAge();

2. 類方法

  • 語(yǔ)法:訪問(wèn)限制符 函數(shù);
  • 描述:帶有訪問(wèn)控制的函數(shù)
  • 分類:常規(guī)方法、靜態(tài)方法和抽象方法
  • 常規(guī)屬性:public/protected/private
  • 靜態(tài)屬性:static。直接用類調(diào)用,被所有類實(shí)例所共享
  • 抽象屬性:沒(méi)有方法體
  1. echo '<h3>一、常規(guī)方法的定義和訪問(wèn)</h3>';
  2. class Person {
  3. public $name = '小明';
  4. public static $age = 18;
  5. //在類內(nèi)部定義類的常規(guī)方法
  6. public function getName() {
  7. return $this->name;
  8. }
  9. public function sayName() {
  10. //在類內(nèi)部調(diào)用類的常規(guī)方法
  11. echo $this->getName();
  12. }
  13. }
  14. $p1 = new Person();
  15. //在類外部調(diào)用類的常規(guī)方法
  16. echo $p1->sayname();
  17. echo '<br>';
  18. echo '<h3>二、靜態(tài)方法的定義和訪問(wèn)</h3>';
  19. class Person1 {
  20. public $name = '小紅';
  21. public static $age = 17;
  22. //在類內(nèi)部定義類的靜態(tài)方法
  23. public static function getAge() {
  24. return self::$age;
  25. }
  26. public static function sayAge() {
  27. //在類內(nèi)部調(diào)用類的靜態(tài)方法
  28. echo self::getAge();
  29. }
  30. }
  31. $p2 = new Person1();
  32. //在類外部調(diào)用類的靜態(tài)方法
  33. echo $p2::sayAge();
  34. echo '<br>';
  35. echo '<h3>三、在類方法中訪問(wèn)外部成員</h3>';
  36. $name = '小王';
  37. $age = 19;
  38. $sayName = function() {
  39. global $name;
  40. return '我的名字叫'.$name;
  41. };
  42. class Person2 {
  43. public function hello($v, $a) {
  44. return $v(). ','.'我的年齡是'.$a;
  45. }
  46. }
  47. $p3 = new Person2;
  48. echo $p3->hello($sayName, $age);

3. 類常量

  • 語(yǔ)法:const 常量名;
  • 描述:在類中始終保持不變的值

二、類繼承

  • 語(yǔ)法:class 類名 extends 基類名;
  • 二類成員:子類有權(quán)訪問(wèn)的父類成員類型,public和protected
  • 三種操作:子類對(duì)父類的三種操作,繼承、重寫和擴(kuò)展
  • 繼承:父類的二類成員自動(dòng)成為子類的成員
  • 重寫:覆寫與父類/基類同名的成員(屬性,方法)
  • 擴(kuò)展:子類添加自身的方法來(lái)增加/擴(kuò)展父類的功能
  1. /*
  2. * 時(shí)間:2020年4月30日10:42:47
  3. * 知識(shí)點(diǎn):重寫類屬性和類方法
  4. * 場(chǎng)景:重寫父類的方法并對(duì)其進(jìn)行拓展
  5. */
  6. echo '<h3>類的繼承</h3>';
  7. class Person {
  8. //定義公共的類屬性
  9. public $name;
  10. public $sex;
  11. public $age;
  12. public $test = 1;
  13. //使用一個(gè)公共方法初始化類屬性
  14. public function setInfo($name, $sex, $age)
  15. {
  16. $this->name = $name;
  17. $this->sex = $sex;
  18. $this->age = $age;
  19. }
  20. //定義一個(gè)公共方法來(lái)獲取類屬性
  21. public function getSelf() {
  22. return $this->name.$this->sex.$this->age;
  23. }
  24. }
  25. $p1 = new Person;
  26. $p1->setInfo('小明', '男', 18);
  27. echo $p1->test;
  28. echo $p1->getSelf();
  29. echo '<br>';
  30. //定義一個(gè)子類
  31. class Student extends Person {
  32. //重寫父類的屬性
  33. public $test = 2;
  34. public $school = '北京三中';
  35. //重寫父類的saySelf方法
  36. //并在該方法中使用parent關(guān)鍵字調(diào)用父類被覆蓋的saySelf方法
  37. //如果需要父類saySelf方法中的完整代碼而又要避免在該方法中對(duì)其復(fù)制粘貼,因?yàn)檫@樣會(huì)導(dǎo)致代碼冗余
  38. public function getSelf() {
  39. return parent::getSelf().$this->school;
  40. }
  41. //擴(kuò)展父類的方法
  42. public function saySchool() {
  43. echo '我在'.$this->school.'讀書';
  44. }
  45. }
  46. $p2 = new Student;
  47. $p2->setInfo('小紅', '女', 17);
  48. echo $p2->test;
  49. echo $p2->getSelf();
  50. echo '<br>';
  51. $p2->saySchool();

三、抽象類

  • 語(yǔ)法:abstract class 類名;
  • 特點(diǎn):
序號(hào) 描述
1 抽象類也叫設(shè)計(jì)類
2 不能被實(shí)例化
3 只要類中有一個(gè)抽象方法,那么這個(gè)類就是抽象類
4 抽象類中允許有抽象成員,但不是強(qiáng)制的,也可以沒(méi)有,類中也可以定義普通方法
5 必須實(shí)現(xiàn)類中的抽象方法才可以實(shí)現(xiàn)此抽象類
6 抽象類可以被繼承
  • 作用:實(shí)現(xiàn)部分分離“設(shè)計(jì)(抽象類中完成)與實(shí)現(xiàn)(工作類中完成)”
  • 場(chǎng)景:接口實(shí)現(xiàn)
  • 抽象方法:沒(méi)有方法體,不能定義其具體的功能實(shí)現(xiàn)
  • 抽象方法定義:abstract 訪問(wèn)控制 函數(shù)名;
  • 抽象類的繼承:繼承一個(gè)抽象類的時(shí)候,子類必須定義父類中的所有抽象方法,這些方法的訪問(wèn)控制必須和父類中一樣(或者更為寬松)
  1. echo '<h3>抽象類的實(shí)現(xiàn)</h3>';
  2. //設(shè)計(jì)類實(shí)現(xiàn)
  3. abstract class aPerson {
  4. protected static $name;
  5. protected static $sex;
  6. protected static $age;
  7. abstract protected function getInfo();
  8. }
  9. //工作類實(shí)現(xiàn)
  10. class Student extends aPerson {
  11. protected $school;
  12. public function setInfo($name, $sex, $age, $school) {
  13. self::$name = $name;
  14. self::$sex = $sex;
  15. self::$age = $age;
  16. $this->school = $school;
  17. }
  18. public function getInfo() {
  19. return self::$name.self::$sex.self::$age.$this->school;
  20. }
  21. }
  22. //客戶端調(diào)用
  23. $user = new Student;
  24. $user->setInfo('小明', '男', 18, '北京三中');
  25. echo $user->getInfo();

四、課程總結(jié)

  • 今天學(xué)習(xí)了 PHP 的面向?qū)ο缶幊?,通過(guò)上課認(rèn)真聽講和認(rèn)真完成老師布置的作業(yè),使得我對(duì) PHP 面向?qū)ο缶幊痰睦斫夂瓦\(yùn)用更加深入和熟悉。最主要的知識(shí)點(diǎn)是明白和掌握了類成員的定義和訪問(wèn),單繼承、以及抽象類的特點(diǎn)和基本用法。
批改老師:天蓬老師天蓬老師

批改狀態(tài):合格

老師批語(yǔ):面向?qū)ο笾杏性S多新知識(shí) , 如果自學(xué)難度不小
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
作者最新博文
關(guān)于我們 免責(zé)申明 意見(jiàn)反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)