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

本文通过一个具体的PHP面向对象编程示例,演示了如何设计一个Person类,并通过该类模拟唐僧师徒四人每天消耗共享蛋糕的过程,进而计算蛋糕能够维持的天数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 '
蛋糕不够吃了';

}

}

//编写一个方法,显示还有多少块蛋糕

public function showNum(){

echo '
当前还有 ' . 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

$monk->eat(3);

$monkey->eat(5);

$sMonk->eat(9);

$pig->eat(30);

}

//3.看看还剩多少块

$monk->showNum();

另一个需求

请计算,蛋糕一共可以吃多少天 并且输出当谁要吃的时候蛋糕不够吃

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 '
当' .$this->name. '想吃' . $num . '块蛋糕时,蛋糕不够吃了';

return false; //如果不够吃返回false

}

}

//编写一个方法,显示还有多少块蛋糕

public function showNum(){

echo '
当前还有 ' . 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

//给每个人吃的时候加判断,当不够吃的时候break终止循环

if(!$monk->eat(3)){

break;

};

if(!$monkey->eat(5)){

break;

};

if(!$sMonk->eat(9)){

break;

};

if(!$pig->eat(30)){

break;

};

}

//3.看看还剩多少块

$monk->showNum();

cedb277cd49b4a314459e1f7de7281e6.png

换一个思路,输出能吃多少天

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 '
当' .$this->name. '想吃' . $num . '块蛋糕时,蛋糕不够吃了';

return false; //如果不够吃返回false

}

}

//编写一个方法,显示还有多少块蛋糕

public function showNum(){

echo '
当前还有 ' . 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 '
蛋糕能吃多少:'.$count_day.'天';

//3.看看还剩多少块

$monk->showNum();

Python 渗透测试编程技术方法与实践 ------全书整理

1.整个渗透测试的工作阶段 ( 1 )前期与客户的交流阶段.( 2 )情报的收集阶段.( 3 )威胁建模阶段.( 4 )漏洞分析阶段.( 5 )漏洞利用阶段.( 6 )后渗透攻击阶段.( 7 )报告阶 ...

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语言 ...

[Java入门笔记] 面向对象编程基础(二):方法详解

什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

深入理解javascript中实现面向对象编程方法

介绍Javascript中面向对象编程思想之前,需要对以下几个概念有了解: 1. 浅拷贝和深拷贝:程序在运行过程中使用的变量有在栈上的变量和在堆上的变量,在对象或者变量的赋值操作过程中,大多数情况先是 ...

[.net 面向对象编程基础] (10) 类的成员(字段、属性、方法)

[.net 面向对象编程基础] (10) 类的成员(字段.属性.方法) 前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态 ...

随机推荐

DataTable是否存在某个列的判断

使用 DataTable.Columns.Contains方法可以判断某个列名是否存在于某个DataTable中 //添加模拟数据 DataTable t = new DataTable(); Dat ...

LightOj1418 - Trees on My Island(Pick定理)

题目链接:http://lightoj.com/volume_showproblem.php?problem=1418 题意:给你多边形中的顶点,n个点按顺时针或逆时针方向给出,然后求出多边形内部有多 ...

Android常用Manager整理

Android中常用Manager: ActivityManager,FragmentManager,PackagerManager, DownloadManager,ConnectivityMana ...

Elasticsearch教程之基础概念

基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 1.接近实时(NRT)        Elasticsearch是一个接近实时的搜索平台.这意味 ...

The ToolStripMenuItem visible value always false

http://social.msdn.microsoft.com/Forums/vstudio/en-US/8cf60e57-6d97-43c6-bb3a-394b9bf130af/the-tools ...

QT 中使用 c++ 的指针

之前没有接触过 c++,不过听说 c++ 的指针很坑,直到最近在用 QT / C++ 写一个 Linux Deepin 系统上检测网络流量和网速的小程序时,发现 c++ 的指针用起来真的特别蛋疼. 不 ...

深入解析C语言数组和指针

概述 指针是C语言的重点,同时也是让初学者认为最难理解的部分.有人说它是C语言的灵魂,只有深入理解指针才能说理解了C语言.暂且撇开这些观点不谈.这章是我在阅读这本书的读书笔记. ...

TP5报错总结

LNMP一键安装包上部署TP5项目500错误或者空白解决 [问题原因] TP5的入口文件在public下,当他调用类文件时,跨目录所以造成500错误,或者一片空白的问题 [解决方法] 1.public ...

HTTP、TCP、UDP的区别

TCP.UDP的区别 1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2.TCP提供可靠的服务.也就是说,通过TCP连接传送的数据,无差错,不丢失,不重 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值