任务
写一个具有实例变量,年龄和构造函数的人类类,该构建器将整数, 作为参数。构造函数必须将初始> 分配给确认为初始> 的论点后的年龄不是负面;如果通过否定的论点为初始> ,则构造函数应将年龄设置为0,并且打印年龄无效,设置 age in。此外,您必须编写以下实例方法:
- YearPass()应将年龄实例变量增加1
- amiold()应执行以下条件动作:
- 如果年龄<13,打印你很年轻。
- 如果年龄> = 13且年龄<18,则打印你是一个少年。
- 否则,打印你是老的。
- 为了帮助您以身作则并完成此挑战,为您提供了许多代码,但您将来会写所有的代码。创建人类类的每个实例的代码在主要方法中。如果您还不了解这一切! 是否不用担心!
注意:请勿删除或更改编辑器中的存根代码。
解决方案
class Person {
public $age;
public function __construct($initialAge) {
if ($initialAge < 0) {
echo "Age is not valid, setting age to 0.\n";
$this->age = 0;
} else {
$this->age = $initialAge;
}
}
public function amIOld() {
if ($this->age < 13) {
echo "You are young.\n";
} else if ($this->age >= 13 && $this->age < 18) {
echo "You are a teenager.\n";
} else {
echo "You are old.\n";
}
}
public function yearPasses() {
$this->age += 1;
}
}
$T = intval(fgets(STDIN));
for ($i = 0; $i < $T; $i++) {
$age = intval(fgets(STDIN));
$p = new Person($age);
$p->amIOld();
for ($j = 0; $j < 3; $j++) {
$p->yearPasses();
}
$p->amIOld();
echo "\n";
}
这是 30天代码的一部分 - 第4天