批改状态:合格
老师批语:总结的不错
->)—————————————————————————————————————————————————
//1、创建类class{类成员...}
//2、添加类成员:类中变量叫属性,函数叫方法//创建属性:必须加访问限制符public $site = 'php中文网';//创建方法public function getSite(){//要访问当前类中的属性值,必须先实例化类(创建对象)$obj = new Demo1;return $obj->site;}
// 类必须实例化后才可以访问里面的普通成员//实例化类: $变量名=new 类名([参数]);//3、访问类成员$obj = new Demo1;//访问类属性:$变量名->属性名;echo $obj->site;echo '<br>';//访问类方法:$变量名->方法名([参数]);echo $obj->getSite();
self:引用当前类$this:当前类的实例,伪对象,伪变量
—————————————————————————————————————————————————
public function __construct([参数]){//成员初始化$this->site = $site;//赋值}
4.1 使用二个下划线开始命名的方法:魔术方法
4.2 不需要用户主动调用,总是在满足一定条件的时候,被自动调用/触发
4.3 构造方法:当前类被实例化的时候自动调用,new
4.4 可以将类成员的初始化或实例化时的自动操作放里面
5.1 public,公共成员,在类内部、类外部和子类中都可以被访问
5.2 private,私有成员,只能够在类内部被访问
5.3 protected,受保护成员,能够类内部和子类中被访问
class 类名 extends 父类名{//子类会将父类中所有满足访问条件的成员全部继承过来}
6.1 通过parnet()::来访问父类的方法
//trait类的声明,使用类的语法,但不是类,不能实例化trait Test{pubilc function getInfor(){return;}}
7.1 相当于将trait中的代码直接复制到使用trait的类中,实现代码复用
7.2 trait类的声明,使用类的语法,但不是类,不能实例化
7.2 一般在父类中使用,尽量不在最底层的子类中使用
7.3 trait不能被实例化,只能通过use关键字来使用
7.4 优先级:当前类同名方法>trait同名方法>从父类继承的同名方法
<?php//trait--方法库trait Driver{public function getDriver(){return '我是trait司机:' .$this->driver;}}//1、创建类class CompanyCar{//引用traituse Driver;//2、添加类成员//创建属性public $bus ='';protected $manager ='';//private $bosscar ='';protected $driver ='';//创建方法public function user(){//实例化类//$obj = new CompanyCar();echo $this->bus .'<br>';echo $this->manager .'<br>';//echo $this->bosscar .'<br>';echo $this->driver .'<br>';}//构造方法public function __construct($bus, $manager, $driver){$this->bus = $bus;$this->manager = $manager;//$this->bosscar = $bosscar;$this->driver = $driver;}/*public function getDriver(){return '我是父类司机:' .$this->driver;}*/}//继承class BossCar extends CompanyCar{//在子类中重写父类方法、扩展public function user(){//echo $this->bus .'<br>';//parent:: ---访问父类中的成员//::---范围解析符echo parent::user() ."车牌:" .$this->carNo .'//这里可以扩展父类中的方法' .'<br>';//echo $this->bosscar .'<br>';bosscar私有的,子类不不能访问}//创建只属于子类的属性public $carNo = '';public function __construct($bus, $manager, $driver, $carNo){parent::__construct($bus, $manager, $driver);$this->carNo = $carNo;}/*public function getDriver(){return '我是子类司机:' .$this->driver;}*/}//3、访问类成员//实例化类CompanyCar()$obj = new CompanyCar('公司班车', '管理人员的车', 'alan');//在类的内部访问类成员echo $obj->user();echo '<hr>';//在类的外部访问类成员echo $obj->bus .'//外部只有public修饰的能被访问';echo '<hr>';//实例化子类$obj1 = new BossCar('KIA168', 'BENZ158', 'alan','YD1688888');//访问子类类成员echo $obj1->user();echo '<hr>';echo $obj1->getDriver();echo '<hr>';

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号