登录  /  注册
博主信息
博文 77
粉丝 0
评论 0
访问量 76238
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
子类三个应用场景与类成员的三种方法修饰符_0930
Jet的博客
原创
1192人浏览过

9月30日作业, 实例演示子类的三个应用场景, 实例演示类成员的三种访问限制符的使用场景

1 实例演示子类的三个应用场景(1、继承;2、扩展;3、重写方法)

实例

<?php
//实例演示子类的三个应用场景(1、继承;2、扩展;3、重写方法)
//定义一个类
class phone{
    //属性
    public $product;
    public $price;

    //构造方法,也叫魔术方法
    public function __construct($product,$price)
    {
        //初始化对象
        $this->product  = $product;
        $this->price    = $price;
    }

    //方法
    public function getInfo(){
        return '商品名称:' . $this->product . ',商品价格:' . $this->price; 
    }
}

//场景1:子类,继承父类
class phone1 extends phone{}
//new出子类phone1对象
$phone1 = new phone1('HuaWei p30pro','99998');
//打印,调用getInfo()方法
echo $phone1->getInfo() . '<hr>';

//场景2:子类扩展父类功能
class phone2 extends phone{
    //添加一个公共属性
    public $num;

    //公共的构造方法
    public function __construct($product,$price,$num)
    {
        //直接调用父类构造方法
        parent::__construct($product,$price);
        $this->num  = $num;
    }

    //子类新增新方法
    public function total(){
        return round($this->price * $this->num, 2);
    }
}
//new出对象
$phone2 = new phone2('某为手机','6999.99','14');
echo $phone2->product .  $phone2->num .'台的总价是:' . $phone2->total() . '<hr>';

//场景3 :方法重写
class phone3 extends phone2{
    //重写total()
    public function total(){
        $total = parent::total();
        //设置折扣率
        switch (true){
            case ($total > 2000 && $total < 40000):
                $dis = 0.88;
                break;
            case ($total >=40000 && $total < 60000):
                $dis = 0.78;
                break;
            case ($total >= 60000):
                $dis = 0.68;
                break;
            default:
                $dis = 1;
        }

        //打折后价格
        $disPrice = round($total*$dis,2);
        if($dis<1){
            $disPrice = $disPrice . '元<span style="color: red">('. $dis.'折)</span>';
        }
        return $disPrice;
    }
}

$phone3 = new phone3('笔记本','4999.99',50);
echo '折扣价是:' . $phone3->total();













?>

运行实例 »

点击 "运行实例" 按钮查看在线实例





2 实例演示类成员的三种访问限制符的使用场景

实例

<?php
//实例演示类成员的三种访问限制符的使用场景
//访问控制符
//public    公共权限修饰符,可以在任何地方被访问
//protected 受保护权限修饰符,可以被其自身、子类、父类访问
//private   私有权限修饰符,只能被其所在类访问

class Demo{
    public      $name;          //姓名
    protected   $position;      //职位
    protected   $department;    //部门
    private     $salary;        //工资

    //创建公共的构建方法
    public function __construct($name,$position,$department,$salary)
    {
        $this->name         = $name;
        $this->position     = $position;
        $this->department   = $department;
        $this->salary       = $salary;
    }

    //职位访问方法
    public function getPosition()
    {
        return $this->position === '开发部' ? $this->position : '无权查看';
    }

    //部门访问方法
    public function getDepartment(){
        return $this->department;
    }

    //工资方法方法
    public function getSalary()
    {
        //工资只允许财务部的人查看
        return $this->department ==='财务' ? $this->salary : '无权查看';
    }
}
$obj = new Demo('朱老师','开发部','讲师',8888);
echo $obj->name,'<br />';
echo $obj->getPosition(),'<br />';
echo $obj->getDepartment(),'<br />';
echo $obj->getSalary(),'<br />';

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

 




批改状态:合格

老师批语:子类最重要的应用就是代码复用
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学