任务
编写一个带有实例变量 age 的 Person 类,以及一个采用整数initialAge作为参数的构造函数。构造函数必须在确认传入的参数initialAge不为负后,将initialAge赋值给 age;如果传递负参数作为initialAge,构造函数应将age设置为 0 并且打印 Age 无效,将age设置为 0。此外,您必须编写以下实例方法:
yearPasses()应该将 age 实例变量增加 1
amIOld()应执行以下条件操作:
如果年龄 < 13,打印你还年轻。
如果 age>=13 且 age<18,则打印 You are a teenager。
否则,打印 You are old。
为了帮助您通过示例学习并完成这一挑战,我们为您提供了大部分代码,但您将在未来编写所有代码。创建 Person 类的每个实例的代码都在 main 方法中。如果您还不完全理解,请不要担心!
注意:不要删除或更改编辑器中的存根代码。
解决方案
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
=
i
n
t
v
a
l
(
f
g
e
t
s
(
S
T
D
I
N
)
)
;
f
o
r
(
T = intval(fgets(STDIN)); for (
T=intval(fgets(STDIN));for(i = 0; $i < $T; $i++) {
$age = intval(fgets(STDIN));
p
=
n
e
w
P
e
r
s
o
n
(
p = new Person(
p=newPerson(age);
p
−
>
a
m
I
O
l
d
(
)
;
f
o
r
(
p->amIOld(); for (
p−>amIOld();for(j = 0; $j < 3; $j++) {
$p->yearPasses();
}
$p->amIOld();
echo “\n”;
}
这是30 天的代码 - 第 4 天的一部分