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面向对象编程题(方法的实践)的更多相关文章
- Python 渗透测试编程技术方法与实践 ------全书整理
1.整个渗透测试的工作阶段 ( 1 )前期与客户的交流阶段.( 2 )情报的收集阶段.( 3 )威胁建模阶段.( 4 )漏洞分析阶段.( 5 )漏洞利用阶段.( 6 )后渗透攻击阶段.( 7 )报告阶 ...
- Python - 面向对象编程 - 子类方法的重写
继承的详解 https://www.cnblogs.com/poloyy/p/15216652.html 方法的重写 在子类继承父类时,子类会拥有父类的所有属性和方法 但当父类的方法实现不满足子类需要 ...
- Python - 面向对象编程 - MRO 方法搜索顺序
为什么会讲 MRO? 在讲多继承的时候:https://www.cnblogs.com/poloyy/p/15224912.html 有讲到, 当继承的多个父类拥有同名属性.方法,子类对象调用该属性. ...
- Python - 面向对象编程 - 魔术方法(双下划线方法)
什么是魔术方法 在Python中,所有以 __ 双下划线包起来的方法,都统称为 Magic Method 魔术方法,也叫双下划线方法 有哪些重要的魔术方法? __new__ https://www.c ...
- python之面向对象编程
1.面向对象介绍: 世界万物,皆可分类 世界万物,皆为对象 只要是对象,就肯定属于某种类 只要是对象,就肯定有属性 2. 面向对象的几个特性: class类: 一个类即对一类拥有相同属性的对象的抽象, ...
- JavaScript面向对象编程(二)构造函数和类
new关键字和构造函数 在文章JavaScript面向对象编程(一)原型与继承中讨论啦JavaScript中原型的概念,并且提到了new关键字和构造函数.利用new关键字构造对象的实例代码如下: // ...
- Python3面向对象编程实例
/*认真研究完这个实例,理解python面向对象编程的方法*/class Person: """人员信息""" # 姓名(共有属性) nam ...
- PHP面向对象编程 对象的基本概念 PHP面向对象的基本实践 PHP面向对象的高级实践 PHP面向对象的特殊实践
再次梳理一下面向对象编程的要点. 此文是以php为例,但思想是通用的. 总结的PHP面向对象编程笔记 对象的基本概念 对象的基本构成 对象包含两部分 一.对象的组成元素 是对象的数据模型,用于描述对象 ...
- 2018.3.5 Java语言基础与面向对象编程实践
Java语言基础与面向对象编程实践 第一章 初识Java 1.Java特点 http://www.manew.com/blog-166576-20164.html Java语言面向对象的 Java语言 ...
随机推荐
- Oracle 修改 新增 触发器 针对字段修改 触发器 误删Oracle表、数据、触发器找回 闪回查询
emmmm 写这个博客心情很复杂,,,本来这个触发器早就写好了,后来发生点事就写个博客当个备份吧,就当留纪念了:话不多数上问题以及SQL: 问题: 在ABONPB表上增加一个触发器,针对车牌号字段做u ...
- 【JZOJ6403】a
description analysis 考虑\((0,0,0)\)走到某个点\((i,j,k)\)的贡献,相当于插板问题 \(i+j\)个空插\(k\)个板可以有空,\(i\)个空插\(j\)个板可 ...
- Apache 环境变量配置
在path 中加入 C:\__S_D_K__\AndroidApache\apache-ant-1.9.14\bin 我的路径在C盘
- QueryList 内容过滤
<?php require 'vendor/autoload.php'; use QL\QueryList; $html =<<<STR <div id="de ...
- BZOJ 1415: [Noi2005]聪聪和可可(记忆化搜索+期望)
传送门 解题思路 还是比较简答的一道题.首先\(bfs\)把每个点到其他点的最短路求出来,然后再记忆化搜索.记搜的时候猫的走法是确定的,搜一下老鼠走法就行了. 代码 #include<iostr ...
- JVM内核-原理、诊断与优化学习笔记(三):常用JVM配置参数
文章目录 Trace跟踪参数 -verbose:gc (打开gc的跟踪情况) -XX:+printGC(打开gc的log开关,如果在运行的过程中出现了gc,就会打印出相关的信息.) -XX:+Prin ...
- 剑指offer——26树的子结构
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 题解: 注意,所谓的子结构,是树的形状和值相同,并非判断B是不是A的一部分[如果是这样,那就是 ...
- Python中字典的详细用法
#字典 #字典是Python中唯一内建的映射类型.字典中没有特殊的顺序,但都是存储在一个特定的键(key)下面,键可以是数字,字符串,甚至是元组 #一.字典的使用 #在某些情况下,字典比列表更加适用: ...
- java_函数式编程
创建函数式接口: //定义了一个函数式接口 @FunctionalInterface public interface BlogTest { /* 函数式接口: 概念:有且仅有一个抽象方法的接口 接口 ...
- pytorch,cuda8,torch.cuda.is_available return flase (ubuntu14)
因为ubuntu 系统是14.0的,安装pytorch1.0的时候,本身已经安装好了cuda8,在验证gpu的时候,torch.cuda.is_available()返回false 安装命令是: co ...