批改状态:合格
老师批语:
//类包括成员属性和成员方法//访问修饰符:// public 公用的 内部 子类 外部// protected 受保护的 内 部 子类 可以继承// private 私有的 内 部// OPP面向对象开发,三大特性:封装 继承 多态class Teacher{// 成员属性public $name;public $age;public $gender;protected $salary;private $former;//构造方法 给与重新赋值public function __construct($name,$age=18,$gender=1,$salary=3000,$former=0){$this->name=$name;$this->age=$age;$this->gender=$gender;$this->salary=$salary;$this->former=$former;}// 成员方法public function info(){return "我的名字:{$this->name},年龄:{$this->age},工资:{$this->salary},对象:{$this->former}";// 受保护的或私有的可以在共有的方法里调用,用this// return $this->jiaoan();// return $this->silu();}public function code(){return '我会写代码';}public function teaching(){}//受保护的 不能在外部访问protected function jiaoan(){return '我写的教案';}private function silu(){return '这是我的教学思路';}}$obj = new Teacher('xiaoming');echo $obj ->name; //xiaoming 共有的直接访问echo '<hr>';//echo $obj ->salay; //受保护的,报错//echo $obj ->former; 私有的,也无法直接访问echo $obj ->code();//我会写代码echo '<hr>';echo $obj ->info(); // 我的名字:xiaoming,年龄:18,工资:3000,对象:0echo '<hr>';
class Boy extends teacher{//子类继承父类,可以直接使用父类的功能 extendspublic function get_tea(){return '父类工资:' . $this->salary;}}//继承 只能继承公共的和受保护的,不能继承私有的$obj = new Boy('花花');//echo $obj ->former; 私有无法继承//echo $obj ->salay; 受保护的不能在外部调用echo $obj ->get_tea(); //父类工资:3000 受保护的可以在子类调用
<?php// 自动加载 spl_autoload_register 文件名和类名保持一致spl_autoload_register(function ($className){require_once $className . '.php';});
//只能有一个父类,但是可以有多个子类class Girl extends Teacher{// 类重新(方法重写)//和父类方法名冲突,会覆盖父类// public function info(){// return "my name is:{$this->name}";// }// 属性可以和构造方法一起重写,属性单独无法重新public $name;public function __construct($name){$this->name=$name;}//调用父类info() , parent::public function info(){return parent::info() . 'Girl调用父类的info';}}
// 父类禁止重写finalfinal public function info(){return "我的名字:{$this->name},年龄:{$this->age},工资:{$this->salary},对象:{$this->former}";}// 子类只能改名来调用父类public function info_s(){return parent::info() . 'Girl调用父类的info';}
final class Teacher{}该类禁止继承
<?php//静态成员可以给变量也可以给方法class Shop{public static $title='苹果13PRO';public $price;public $num1=1;public static $num2=1;//构造 给与静态成员默认值会报错//使用静态成员没有经过构造方法public function __construct($title,$price){$this->title =$title;$this->price =$price;// 普通成员变量,每次从头开始计算$this->num1++;// 静态变量成员调用一次,就会增加1// 静态成员为本类调用,为所有实例共享// 存在内存中,只要使用了改变了它的值,它会在内存中保存改变后的数据self::$num2++;}public static function vedio(){// 静态成员用self 代表本类 Shop, 普通方法用$thisreturn '看视频手机:'. self::$title;}}//如果属性和方法是静态的不要使用原始的访问方法,防止浪费资源//静态成员访问方式使用 类名::属性名 方法 类名::方法名echo Shop::$title; //默认给值后,返回 苹果13PROecho '<hr>';//不实例没有对象情况下也可以使用静态成员Shop::$title='苹果 14 PRO';//也可以外面给与默认值echo Shop::$title;echo '<hr>';echo Shop::vedio();
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号