• 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();
  • 相关阅读:
    linux 进程
    VFS dup ,dup2
    文件操作 之 各类函数
    文件系统之 stat与access
    xml文件
    Java学习笔记42(数据库连接池 druid连接池)
    java学习笔记41(数据库连接池 C3p0连接池)
    java学习笔记39(sql事物)
    java学习笔记38(sql注入攻击及解决方法)
    java学习笔记37(sql工具类:JDBCUtils)
  • 原文地址:https://www.cnblogs.com/lsqbk/p/10402837.html
Copyright © 2020-2023  润新知