zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    「10.10」神炎皇(欧拉函数)·降雷皇(线段树,DP)·幻魔皇
    「10.8」simple「数学」·walk「树上直径」
    10.5「嘟嘟噜」·「天才绅士少女助手克里斯蒂娜」·「凤凰院凶真」
    csp-s模拟测试59(10.4)「Reverse」(set)·「Silhouette」(容斥)
    csp-s模拟测试58「Divisors」·「Market」·「Dash Speed」
    csp-s模拟测试57(10.2)「天空龙」·「巨神兵」·「太阳神」
    csp-s模拟测试56(10.2)Merchant「二分」·Equation「树状数组」
    csp-s模拟测试55(9.29)联「线段树」·赛「??」题「神仙DP」
    消防(树上直径)
    模拟测试65
  • 原文地址:https://www.cnblogs.com/lsqbk/p/10402837.html
Copyright © 2011-2022 走看看