批改状态:合格
老师批语:在学习阶段, 遇到问题是好事, 又学到新东西了

<?php// 创建类sumclass sum{//对公共变量进行赋值public $a =1;public $b =1;//创建函数public function sum($x,$y){$c =$x + $y ;echo $c;}}/*** 访问当前类中的属性,实例化1*/class mydemo{public $site = '1.朱老师不帅';public $date = '3.朱老师很帅';//private: 属于私有成员,只属于当前,只允许当前类访问,不允许子父类访问,外部也不行private $cat = '4.私有的猫';//protected:属于受保护的成员,不允许类外部访问,但可以在子类中访问protected $pig = '5.帅哥';public function getSite(){// 实例化类$obj = new mydemo();// 输出site属性return '2.反复强调:'.$q=$obj ->site;}// 运用当前类的实例$thispublic function getIn(){return $this ->site;}// 构造方法:实例化自动调用public function __construct ($date='555'){$this ->site = $date;}}$obj = new mydemo(333);// 访问site属性,并输出,因为构造方法先执行,实例化重新赋值siteecho $obj ->site;echo "<br>";//重新实例化,没传参数,数值变成555echo $obj ->getSite();echo "<br>";echo $obj ->getIn();echo '<hr>';//外部无法访问我的猫cat属性echo '2.反复强调:'.$q=$obj ->site;// 访问下面无法访问的属性,下面的也显示不出来// echo $obj ->cat;// echo $obj ->pig;echo '<br>'.'无法显示的获取的部分';echo '<hr>';//对于继承的使用,继承mydemo类,继承所有满足条件的元素class Demo2 extends mydemo{// 对父类方法扩张public function getIn(){return parent:: getIn()."666". $this->hhh;;}// public function getIn()// {// return parent::getIn() . "讲师: " . $this->hhh;;// }public $hhh;public function __construct($hhh,$date){parent::__construct($date='朱老师帅呆了');$this -> hhh = $hhh;}}$mobj = new Demo2(9,8);echo $mobj ->hhh;echo '<br>';echo $mobj ->getIn();echo '<br>';//通过构造方法赋的值,指这部分construct($hhh,$date),并不会改变类的属性元素echo $mobj ->date;?>
<?php// trait: 改变了单继承的模式,实现了代码复用trait Test{public function getInfo(){return '我是: ' . $this->site . ' 在学: ' . $this-> role;}}// 不能实例化// $o = new Test();// 1. 创建类class mydemo2{// 引用traituse Test;public $site;protected $role;public function __construct($site='', $role=""){$this->site = $site;$this->role = $role;}}// 基于mydemo2创建子类class Sub extends mydemo2{protected $shuai;// 重写了父类的__construct()public function __construct($site, $role, $shuai){parent::__construct($site, $role);$this->shuai = $shuai;}// 重写了父类的getInfo()public function getInfo(){return parent::getInfo() . ', 我帅不帅: '. $this->shuai;}}class Sub99 extends Sub{}//实例化化,传值$sub = new Sub99('小辰', 'php开发', '帅');echo $sub->getInfo();
通过这次实验,我对于类与对象有了进一步的理解,在第一部分,对于重新实例化,却没有值,所以没地二个结果产生影响。在做trait实验的时候,我把大括号,用成了中文状态下的括号,就一直出错,还好最后找出来问题了,另外基本基本就没有什么问题了。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号