作业
本文章涉及的知识点有
1.类与对象
2.对象属性
3.对象方法
4.构造方法
5.类的继承
6.访问控制
(我这是刚开始学习对象,可能代码现在非常臃肿,后面我会改进(经过测试暂时没有发现bug))
实例
<?php class xs { // 创建对象属性 ------ public $name; //姓名 protected $bm; //部门 private $cj; // 成绩 public $nl; //年龄 // 构造方法 public function __construct($name,$bm,$cj,$nl) { $this->name = $name; $this->bm = $bm; $this->cj = $cj; $this->nl = $nl; } // 创建访问接口 public function getbm() // 进行判断收到的数据有没有和下面要求对等 { // 部门 return $this->bm === '培训部' ? $this->bm : '无权查看'; } public function getnl() { // 年龄 return $this->nl === 22 ? $this->nl :'没有权限'; } // 成绩 public function getcjw() { // 成绩 return $this->cj === 150 ? $this->cj :'没有权限'; } // 成绩评价 public function getcj($value) { // 成绩 return $this->cj === 150 ? 'A' :'没有权限'; } } $x = new xs('小明同学', '培训部', 150, 22); echo '姓名:'.$x->name.'<br>'; echo '年龄:'. $x->getnl(). '<br>'; echo '成绩:'.$x->getcjw(). '<br>'; echo '成绩评价:'.$x->getcj(150). '<br> <hr>'; // var_dump($x->getbm()); // 总成绩 // 子类 增加属性和方法,扩展父类功能(相当于增加新功能) class xs1 extends xs { public $yw; public $sx; public $yy; // 子类的构造方法 public function __construct($name,$bm,$cj,$nl,$yw,$sx,$yy) { // parent:: 调用被覆写的父类方法内容 parent::__construct($name,$bm,$cj,$nl); $this->yw=$yw; $this->sx=$sx; $this->yy=$yy; } public function zcj() { return $this->yw+$this->sx+$this->yy; } } // 实例化子类 $x1 = new xs1('小明同学', '培训部', 150, 22,150,150,150); echo '姓名:'.$x1->name.'<br>'; echo '年龄:'. $x1->getnl(). '<br>'; echo '总成绩'. $x1->zcj(). '<br>'; echo '成绩评价:'.$x1->getcj(150). '<br> <hr>'; // 第三个子类, 继承自xs1, 而xs1又继承自xs,这就形成了多层给的继承关系 class xs2 extends xs1 { public function zc() { // 获取总成绩 $zcj = parent::zcj(); // 设置成绩评分 switch(true){ case($zcj >=1 && $zcj <200): $pf = 'C'; break; case($zcj >=200 && $zcj <300): $pf = 'B'; break; case($zcj >=300 && $zcj <400): $pf = 'A'; break; case($zcj >=400 && $zcj <450): $pf = 'S'; break; case($zcj =450): $pf = 'SSS'; } return $pf; } } // 实例化子类 $x2 = new xs2('小明同学', '培训部', 150, 22,150,150,10); echo '姓名:'.$x2->name.'<br>'; echo '年龄:'. $x2->getnl(). '<br>'; echo '总成绩'. $x2->zcj(). '<br>'; echo '成绩评价:'.$x2->zc(). '<br> <hr>';
运行实例 »
点击 "运行实例" 按钮查看在线实例