Blogger Information
Blog 32
fans 2
comment 2
visits 23249
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
类与对象(0115)
暴风战斧
Original
890 people have browsed it

编程思路

理解课件,将类与对象一步步的简化写法和重点内容重写,重在理解。

作业总结

1、类与对象比较抽象,不像之前的知识点,代码很直观好理解。这次类与对象视频看了3遍,过程中去恶补了下“面向对象编程”知识,开始抽象的概念终于能够具体理解并实操;
2、简单说面向对象就是为了代码高复用、灵活应对需求,继承、扩展和trait方法创造了面向对象的优点;
3、感觉到了这里我已经不是“hello world”初级阶段了,现在我是面向对象编程的程序员,逼格一下子就上来了!

练习代码与效果图

1.原生写法

  1. <?php
  2. //面向对象编程:三个步骤
  3. //1.创建类
  4. class Phone1
  5. {
  6. //2.添加类成员
  7. //变量叫属性,函数叫方法
  8. //2.1创建属性
  9. public $mi = '小米手机';
  10. //2.2创建方法
  11. public function getMi()
  12. {
  13. //要访问当前类中的属性需要先实例化
  14. $obj = new Phone1();
  15. return $obj->mi;
  16. }
  17. }
  18. //类必须实例化之后才可以访问里面的成员
  19. //3.访问类成员
  20. $obj = new Phone1();
  21. echo $obj->mi;
  22. echo '<br>';
  23. echo $obj->getMi();
  24. //可以简化代码
  25. ?>

  • 2.实现类中对象共享
  1. <?php
  2. //1.创建类
  3. class CPU
  4. {
  5. //实现在类方法中共享对象
  6. //2.添加类成员
  7. //2.1创建属性
  8. public $amd = '锐龙';
  9. //2.2创建方法
  10. public function getAmd()
  11. {
  12. //$this:当前类的实例(伪对象/伪变量)
  13. return $this->amd;
  14. }
  15. public function getIntel()
  16. {
  17. //实例共享
  18. return $this->amd;
  19. }
  20. }
  21. //3.访问类成员
  22. $obj = new CPU();
  23. //访问成员,使用成员指向符:->
  24. echo $obj->amd;
  25. echo '<br>';
  26. echo $obj->getAmd();
  27. echo '<br>';
  28. echo $obj->getIntel();
  29. ?>

  • 3.构造方法
  1. <?php
  2. //1.创建类
  3. class CPU1
  4. {
  5. //2.添加类成员
  6. //2.1创建属性
  7. public $A12;
  8. //2.2创建方法
  9. public function getA12()
  10. {
  11. return $this->A12;
  12. }
  13. //2.3构造方法(可将类成员初始化,当前类被实例化时自动调用)
  14. public function __construct($A12="A12处理器")
  15. {
  16. //成员的初始化
  17. $this->A12 = $A12;
  18. }
  19. }
  20. //3.访问类成员
  21. $obj = new CPU1();
  22. //访问成员
  23. echo $obj->A12;
  24. echo '<br>';
  25. echo $obj->getA12();
  26. ?>

  • 4.成员访问权限
  1. <?php
  2. //1.创建类
  3. //public:属于公共成员,类中、类外、子类均可访问
  4. //private:属于私有成员,只属于当前,只许在当前类中访问,不允许在类的外部及子类中访问
  5. //protected: 属于受保护的成员, 与private声明的成员一样,不允许在类外部访问, 但是可以在子类中访问
  6. class CPU2
  7. {
  8. //2.添加类成员
  9. //2.1创建属性
  10. private $A12;
  11. //2.2创建方法
  12. public function getA12()
  13. {
  14. return $this->A12;
  15. }
  16. //2.3构造方法(可将类成员初始化,当前类被实例化时自动调用)
  17. public function __construct($A12="A12处理器")
  18. {
  19. //成员的初始化
  20. $this->A12 = $A12;
  21. }
  22. }
  23. //3.访问类成员
  24. $obj = new CPU2();
  25. //访问成员
  26. //echo $obj->A12;
  27. echo '<br>';
  28. echo $obj->getA12();
  29. ?>

  • 5.类的继承
  1. <?php
  2. //类的继承:extends
  3. //1.创建类
  4. class CPU3
  5. {
  6. //2.添加类成员
  7. //2.1创建属性
  8. public $A12;
  9. //2.2创建方法
  10. public function getA12()
  11. {
  12. return $this->A12;
  13. }
  14. //2.3构造方法(可将类成员初始化,当前类被实例化时自动调用)
  15. public function __construct($A12="A12处理器")
  16. {
  17. //成员的初始化
  18. $this->A12 = $A12;
  19. }
  20. }
  21. //Son类继承自CPU3
  22. class Son extends CPU3
  23. {
  24. //2.继承父类成员
  25. //2.1继承属性
  26. //类会将父类中所有满足访问条件的成员全部继承过来
  27. //2.2继承方法,可扩展
  28. public function getA12()
  29. {
  30. //parent::引用当前父类,用于访问父类中的成员
  31. return parent::getA12()."价格:". $this->price;
  32. }
  33. //2.3创建只属于子类的属性
  34. public $price;
  35. //2.4构造方法(可将类成员初始化,当前类被实例化时自动调用)
  36. public function __construct($price,$A12="A12处理器")
  37. {
  38. parent::__construct($A12="A12处理器");
  39. //自有属性的初始化
  40. $this->price = $price;
  41. }
  42. }
  43. //3.访问类成员
  44. $obj = new CPU3();
  45. //实例化子类
  46. $son = new Son('$100','A12处理器');
  47. echo $son->getA12();
  48. ?>

  • 6.trait实现代码复用
  1. <?php
  2. //trait:改变了单继承的模式,实现了代码复用
  3. //声明一个trait类,使用的是类的语法,不是类,不能实例化
  4. trait Company
  5. {
  6. public function getA12()
  7. {
  8. return '名称:'. $this->A12 .'厂商:' . $this->company;
  9. }
  10. }
  11. //1.创建类
  12. class CPU5
  13. {
  14. use Company;
  15. //2.添加类成员
  16. //2.1创建属性
  17. public $A12;
  18. public $company;
  19. //2.2调用trait方法
  20. //2.3构造方法(可将类成员初始化,当前类被实例化时自动调用)
  21. public function __construct($A12,$company)
  22. {
  23. //成员的初始化
  24. $this->A12 = $A12;
  25. $this->company = $company;
  26. }
  27. }
  28. //Son类继承自CPU3
  29. class Son extends CPU5
  30. {
  31. //2.继承父类成员
  32. //2.1继承属性
  33. //类会将父类中所有满足访问条件的成员全部继承过来
  34. //2.2创建只属于子类的属性
  35. public $speed;
  36. //2.3重写父类构造方法
  37. public function __construct($A12,$company,$speed)
  38. {
  39. parent::__construct($A12,$company);
  40. //自有属性的初始化
  41. $this->speed = $speed;
  42. }
  43. //2.4重写父类方法
  44. public function getA12()
  45. {
  46. return parent::getA12().'速度:'. $this->speed;
  47. }
  48. }
  49. //3.访问类成员
  50. //实例化子类
  51. $son = new Son("A12处理器","苹果",'1200Hz');
  52. echo $son->getA12();
  53. ?>

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:近期会将类与对象细节技术重讲, 注意看公告
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments