批改状态:合格
老师批语:
[toc] //md 内容表
类的自动加载器:新建一个 autoload.php
spl_autoload_register(function($className){// 先查看要加载的类printf('类名:%s<br>',$className);// 将类命名空间与类所在的路径进行一一映射// linux / window \// 解决在linux系统中命名空间失效的问题$file = __DIR__.'\\controller\\'.str_replace('\\',DIRECTORY_SEPARATOR,$className).'.php';// echo $file;if(!(is_file($file) && file_exists($file))){throw new \Exception('文件名不合法或者不存在');}require $file;}
使用修饰符来对属性和方法进行封装:新建一个 Snacks.php
abstract class Snacks //抽象类{private $name;protected $sort;public $pri;public function __construct($name='',$sort='水果'){$this->name = $name;$this->sort = $sort;$this->pri = $pri;}//抽象方法abstract function eat();// 普通方法public function Juicing(){echo '可以榨汁喝<br>';}public function getpri(){$this->pri = $this->pri + 2;return $this->pri ;}}
新建一个类文件 Apple.php
class Apple extends Snacks //继承{public $pri = 3;public function getpri(){$this->pri = $this->pri + 2;return $this->pri ;}// 子类按照自己的需求去实现抽象方法, 如果抽象方法未全部实现 那么该类依然是一个抽象类public function eat(){echo "{$this->name}是{$this->sort} 可以直接吃";}public function Juicing(){echo "{$this->name} 可以榨汁喝<br>";}}
新建一个实例文件 demo1.php
require 'autoload.php'; // 加载类文件 类的自动加载器$Apple = new Apple("苹果",'水果');$Apple->Juicing();$Apple->eat();echo '<hr>';
在实例文件 demo1.php 中输入
$p = new Pear('香梨','水果');$p->eat();$p->Juicing();echo "苹果的价格: " . $Apple->getpri();echo "<br>";echo "香梨的价格: " . $p->getpri();//苹果和香梨的价格是都是5//echo Pear::$sort; //这里访问不到
新建一个类文件 Pear.php
class Pear extends Apple{public function getSpri(){parent::getpri();// 这里调用了父类的方法.$this->pri = $this->pri + 2;return $this->pri ;}public function eat(){echo "{$this->name}是{$this->sort} 可以直接吃<br>";}public function Juicing(){echo "{$this->name} 可以榨汁喝<br>";}public function Fried(){echo "{$this->name} 可以裹上脆皮糊炸着吃<br>";}}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号