1、学生有名字、电话号码属性,同时他有一些同学。用 Student 表达这中关系,同时为Student 类提供打电话的方法,说”hello张三”,张三为其回电话说:“Hello李四”。2、用内部类表达
时间: 2024-11-15 11:23:15 浏览: 15
首先,我们可以创建一个名为`Student`的类来表示学生的基本信息以及他们拥有的电话号码,并维护一个同学的列表。这里我会使用Java语言来描述:
```java
public class Student {
private String name;
private String phoneNumber;
private List<Student> classmates;
public Student(String name, String phoneNumber) {
this.name = name;
this.phoneNumber = phoneNumber;
this.classmates = new ArrayList<>();
}
// 提供一个方法来设置姓名
public void setName(String name) {
this.name = name;
}
// 提供一个方法获取姓名
public String getName() {
return name;
}
// 打电话的方法,内部调用学生的名字
public void call(Student target) {
System.out.println("Hello, " + getName() + " is calling.");
if (target != null) {
target.receiveCall();
}
}
// 子类Student回复电话的方法
private void receiveCall() {
System.out.println(getName() + ": Hello, I am " + name);
}
}
// 内部类用于表示具体的同学,如张三和李四
class Classmate extends Student {
private Classmate(String name) {
super(name, generatePhoneNumber()); // 生成电话号码
}
private String generatePhoneNumber() {
// 实际上应该从数据库或其他来源生成电话号码,这里简化为返回字符串
return "1234567890";
}
}
// 示例:
public static void main(String[] args) {
Student zhangSan = new Classmate("张三");
Student liSi = new Classmate("李四");
zhangSan.setName("张三"); // 设置张三的名字
zhangSan.call(liSi); // 张三打电话给李四
// 这里假设liSi接到了电话,因为同学列表尚未填充,这里只是演示如何调用
}
```
阅读全文