用PHP把本人的姓名、性别,本人的一句话和一个动作,定义作一个类。要求完成以下关于 类的练习中必做的练习。 (1)练习定义类。(必做) (2)在类中添加构造函数和析构函数。(必做) (3)练习定义对象。(必做) (4)练习使用对象引用类中的属性和方法。(必做) (5)编写类的继承的程序。 (6)编写类的多态的程序。
时间: 2023-12-28 07:03:46 浏览: 138
以下是一个示例程序,实现了对本人的姓名、性别,一句话和一个动作进行封装的类,并完成了必做练习:
```php
<?php
class Person {
// 姓名
public $name;
// 性别
public $gender;
// 一句话
public $motto;
// 一个动作
public $action;
// 构造函数
public function __construct($name, $gender, $motto, $action) {
$this->name = $name;
$this->gender = $gender;
$this->motto = $motto;
$this->action = $action;
echo "一个名叫 {$this->name} 的 {$this->gender} 生被创建了!<br>";
}
// 析构函数
public function __destruct() {
echo "{$this->name} 向您道别了!<br>";
}
// 打招呼方法
public function sayHello() {
echo "{$this->name} 说:大家好,我是一个{$this->gender}生,我的一句话是“{$this->motto}”,现在我正在{$this->action}!<br>";
}
}
// 创建一个名叫 Tom 的男生对象
$person = new Person("Tom", "男", "少壮不努力,老大徒伤悲", "学习");
// 调用对象的方法
$person->sayHello();
?>
```
在上面的程序中,首先定义了一个 `Person` 类,包含了姓名、性别、一句话和一个动作四个属性,以及构造函数、析构函数和打招呼方法三个方法。在构造函数中,通过 `this` 关键字将传入的参数赋值给类的属性,并输出一句话表示对象被创建了。在析构函数中,输出一句话表示对象被销毁了。在打招呼方法中,使用类的属性和方法输出一句话表示对象的基本信息。最后,在程序中创建了一个名叫 Tom 的男生对象,并调用了其打招呼方法。
除了必做练习外,程序还可以进行继承和多态的练习,例如:
```php
class Student extends Person {
// 学号
public $id;
// 构造函数
public function __construct($name, $gender, $motto, $action, $id) {
parent::__construct($name, $gender, $motto, $action);
$this->id = $id;
echo "{$this->name} 的学号是 {$this->id}!<br>";
}
// 学习方法
public function study() {
echo "{$this->name} 正在学习!<br>";
}
}
// 创建一个名叫 Alice 的女生对象
$student = new Student("Alice", "女", "欲穷千里目,更上一层楼", "听课", "20180101");
// 调用对象的方法
$student->sayHello();
$student->study();
```
在上面的程序中,定义了一个 `Student` 类,继承自 `Person` 类,并添加了一个学号属性和一个学习方法。在 `Student` 类的构造函数中,通过 `parent::__construct()` 调用父类的构造函数,并在此基础上添加了一个输出学号的语句。在学习方法中,输出一个学习的语句。最后,在程序中创建了一个名叫 Alice 的女生对象,并调用了其打招呼方法和学习方法。这里展示了继承和多态的练习。
阅读全文