批改状态:未批改
老师批语:
作业
本文章涉及的知识点有
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>';点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号