码迷,mamicode.com
首页 > Web开发 > 详细

PHP面向对象编程题(方法的实践)

时间:2019-02-19 18:55:43      阅读:336      评论:0      收藏:0      [点我收藏+]

标签:属性   ati   cte   smon   共享   个人   col   type   prot   

<?php
header(‘content-type:text/html;charset=utf-8‘);
/*设计一个peron类(有名字,年龄和蛋糕三个属性)
    蛋糕一共1000块,是所有人共享的,
    创建唐僧师徒四人,他们每人都吃蛋糕,唐僧每天吃3块,悟空吃五块,沙僧吃九块,猪八戒吃30块(编写一个eat方法来吃)
    问两天后,还剩多少块蛋糕(编写一个showCake()来显示)
    请计算,蛋糕一共可以吃多少天*/

class Person{
    public $name;
    public $age;
    /*因为是共享的,因此设置static*/
    protected static $cakeNum = 1000;
    
    /*构造函数*/
    public function __construct($name,$age){
        $this->name = $name;
        $this->age = $age;    
    }
    /*编写eat方法*/  //传入要吃的蛋糕
    public function eat($num){
        //判断一下蛋糕是否够吃
        if(self::$cakeNum >= $num){
            self::$cakeNum -= $num;
        }else{
            echo ‘<br>蛋糕不够吃了‘;
        }
    }
    //编写一个方法,显示还有多少块蛋糕
    public function showNum(){
        echo ‘<br> 当前还有 ‘ . self::$cakeNum . ‘蛋糕.‘;
    }
}
//使用
//1.创建四个对象
$monk = new Person(‘唐僧‘,30);
$monkey = new Person(‘悟空‘,500);
$pig = new Person(‘八戒‘,400);
$sMonk = new Person(‘沙僧‘,300);
//2.统计2天后
$day = 2 ;
for($i = 0 ; $i<$day;$i++){
    $monk->eat(3);
    $monkey->eat(5);
    $sMonk->eat(9);
    $pig->eat(30);
}
//3.看看还剩多少块

$monk->showNum();

另一个需求 

 请计算,蛋糕一共可以吃多少天 并且输出当谁要吃的时候蛋糕不够吃
<?php
header(‘content-type:text/html;charset=utf-8‘);
/*设计一个peron类(有名字,年龄和蛋糕三个属性)
    蛋糕一共1000块,是所有人共享的,
    创建唐僧师徒四人,他们每人都吃蛋糕,唐僧每天吃3块,悟空吃五块,沙僧吃九块,猪八戒吃30块(编写一个eat方法来吃)
    问两天后,还剩多少块蛋糕(编写一个showCake()来显示)
    请计算,蛋糕一共可以吃多少天*/

class Person{
    public $name;
    public $age;
    /*因为是共享的,因此设置static*/
    protected static $cakeNum = 1000;
    
    /*构造函数*/
    public function __construct($name,$age){
        $this->name = $name;
        $this->age = $age;    
    }
    /*编写eat方法*/  //传入要吃的蛋糕
    public function eat($num){
        //判断一下蛋糕是否够吃
        if(self::$cakeNum >= $num){
            self::$cakeNum -= $num;
            return true;   //如果够吃返回true
        }else{
            echo ‘<br> 当‘ .$this->name. ‘想吃‘ . $num . ‘块蛋糕时,蛋糕不够吃了‘;
            return false;    //如果不够吃返回false
        }
    }
    //编写一个方法,显示还有多少块蛋糕
    public function showNum(){
        echo ‘<br> 当前还有 ‘ . self::$cakeNum . ‘蛋糕.‘;
    }
}
//使用
//1.创建四个对象
$monk = new Person(‘唐僧‘,30);
$monkey = new Person(‘悟空‘,500);
$pig = new Person(‘八戒‘,400);
$sMonk = new Person(‘沙僧‘,300);
//2.统计2天后
$day = 30 ;
for($i = 0 ; $i<$day;$i++){
    //给每个人吃的时候加判断,当不够吃的时候break终止循环
    if(!$monk->eat(3)){
        break;
    };
    if(!$monkey->eat(5)){
        break;    
    };
    if(!$sMonk->eat(9)){
        break;    
    };
    if(!$pig->eat(30)){
        break;    
    };
}
//3.看看还剩多少块

$monk->showNum();

技术图片

换一个思路,输出能吃多少天

<?php
header(‘content-type:text/html;charset=utf-8‘);
/*设计一个peron类(有名字,年龄和蛋糕三个属性)
    蛋糕一共1000块,是所有人共享的,
    创建唐僧师徒四人,他们每人都吃蛋糕,唐僧每天吃3块,悟空吃五块,沙僧吃九块,猪八戒吃30块(编写一个eat方法来吃)
    问两天后,还剩多少块蛋糕(编写一个showCake()来显示)
    请计算,蛋糕一共可以吃多少天*/

class Person{
    public $name;
    public $age;
    /*因为是共享的,因此设置static*/
    protected static $cakeNum = 1000;
    
    /*构造函数*/
    public function __construct($name,$age){
        $this->name = $name;
        $this->age = $age;    
    }
    /*编写eat方法*/  //传入要吃的蛋糕
    public function eat($num){
        //判断一下蛋糕是否够吃
        if(self::$cakeNum >= $num){
            self::$cakeNum -= $num;
            return true;   //如果够吃返回true
        }else{
            echo ‘<br> 当‘ .$this->name. ‘想吃‘ . $num . ‘块蛋糕时,蛋糕不够吃了‘;
            return false;    //如果不够吃返回false
        }
    }
    //编写一个方法,显示还有多少块蛋糕
    public function showNum(){
        echo ‘<br> 当前还有 ‘ . self::$cakeNum . ‘蛋糕.‘;
    }
}
//使用
//1.创建四个对象
$monk = new Person(‘唐僧‘,30);
$monkey = new Person(‘悟空‘,500);
$pig = new Person(‘八戒‘,400);
$sMonk = new Person(‘沙僧‘,300);

$count_day = 0; //思路:天数从0开始,没循环一次加1,最后输出$count_day while(true){ if(!$monk->eat(3)){ break; }; if(!$monkey->eat(5)){ break; }; if(!$sMonk->eat(9)){ break; }; if(!$pig->eat(30)){ break; }; $count_day ++; } echo ‘<br>蛋糕能吃多少:‘.$count_day.‘天‘; //3.看看还剩多少块 $monk->showNum();

 

PHP面向对象编程题(方法的实践)

标签:属性   ati   cte   smon   共享   个人   col   type   prot   

原文地址:https://www.cnblogs.com/lsqbk/p/10402837.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!