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

Posted OH-MY-GOD

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP面向对象编程题(方法的实践)相关的知识,希望对你有一定的参考价值。

<?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面向对象编程题(方法的实践)的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

php面向对象

浅谈PHP面向对象编程(九设计模式)

Java面向对象编程题

《深入PHP:面向对象模式与实践》