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