Blogger Information
Blog 24
fans 4
comment 0
visits 20134
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
1月15日 学号:478291 类与对象
Lin__
Original
725 people have browsed it

类是一个具备某种功能的抽象模型,是一个抽象的概念,只有在被实例化之后才能使用。对象是类进行实例化后的产物,是一个实体。类是对象的模板,对象是类的实例。

创建类、添加类成员与实例化类

  1. 权限修饰符 class 类名{//定义类
  2. 权限修饰符 $属性名;//定义类属性
  3. 权限修饰符 function 方法名([参数]){}//定义类方法
  4. }
  5. $变量名=new 类名([参数]);//实例化类
  6. $变量名->属性名;//访问类属性
  7. $变量名->属性名=值;//为类属性赋值
  8. $变量名->方法名([参数]);//访问类方法
  • 定义类时可省略权限修饰符,但定义属性与方法时必须加上权限修饰符
  • 在类中声明的变量称为属性,在类中声明的函数称为方法
  • 类需要实例化之后才能使用,一个类可以实例化多个对象,每个对象都是独立的
  • 在类中实例化自身时可使用self()代替类名(),避免修改类名时需要重复修改代码
  • 访问类的属性和方法使用->,在类中调用自身的属性和方法可使用$this->操作符

构造方法

  1. function __construct([参数]){
  2. //方法体
  3. }
  • 方法名前带__的为系统预定义的魔术方法,无需用户调用,在满足一定条件下会被自动调用
  • 构造方法在类被实例化后第一个自动调用的方法,如果没有特别声明,会默认生成一个没有任何参数且内容为空的构造方法
  • 一个类只能有一个构造方法

权限修饰符

  • public,公共成员,可以在类内部、类外部和子类中被访问
  • private,私有成员,只能够在类内部被访问
  • protected,受保护成员,能够类内部和子类中被访问

类的继承

  1. class 类名 extends 父类名{
  2. }
  • 一个类只能继承一个父类
  • 子类继承父类就可以访问父类的公共和受保护成员,子类中创建与父类名称相同的方法,即为重写父类的方法
  • 通过parnet()::来访问父类的方法

Trait

  1. trait 名称{
  2. 权限修饰符 $属性名;//定义属性
  3. 权限修饰符 function 方法名([参数]){}//定义方法
  4. }
  5. use 名称;//使用trait
  • trait是针对于PHP的单继承而产生的,实现代码复用,相当于将trait中的代码直接插入使用trait的类中
  • 一般在父类中使用,尽量不在最底层的子类中使用
  • trait不能被实例化,只能通过use关键字来使用
  • 优先级:当前类同名方法>trait同名方法>从父类继承的同名方法

示例

  1. <?php
  2. trait TropicalFruits{
  3. public $litchi='我是荔枝';//公共成员
  4. private $mango='我是芒果';//私有成员
  5. protected $pineapple='我是菠萝';//受保护成员
  6. public function setFruitName($litchi,$mango,$pineapple){
  7. $this->litchi=$litchi;
  8. $this->mango=$mango;
  9. $this->pineapple=$pineapple;
  10. echo $this->litchi.','.$this->mango.','.$this->pineapple;
  11. }
  12. }
  13. class Fruit{
  14. public $fruit='我是水果';
  15. public function __construct($fruit){//构造方法
  16. echo $this->fruit;
  17. $this->fruit=$fruit;
  18. }
  19. public function eat(){
  20. echo '每个水果有不同的食用方式';
  21. }
  22. use TropicalFruits;//使用trait
  23. }
  24. class Apple extends Fruit{
  25. public function eat(){//重写父类eat()方法
  26. echo '食用方式:洗净后,使用水果刀切块食用';
  27. }
  28. }
  29. $apple=new Apple('我是苹果');
  30. echo '<hr />';
  31. echo $apple->fruit;
  32. echo '<hr />';
  33. $apple->setFruitName('荔枝','芒果','菠萝');
  34. echo '<hr />';
  35. $apple->eat();

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
Author's latest blog post