编写测试类Test1,要求随机产生不同的对象,并将这些对象存储到数组中,并用方法printMessages(Person[] persons)将对象的信息输出。
时间: 2023-06-13 18:03:19 浏览: 63
好的,以下是一个可能的实现:
```java
import java.util.Random;
public class Test1 {
public static void main(String[] args) {
Person[] persons = new Person[5];
Random random = new Random();
// 随机产生不同的对象
for (int i = 0; i < persons.length; i++) {
if (random.nextBoolean()) {
persons[i] = new Student("学生" + i, random.nextInt(20) + 10, "Java");
} else {
persons[i] = new Teacher("教师" + i, random.nextInt(30) + 20, "计算机科学");
}
}
// 输出对象信息
printMessages(persons);
}
public static void printMessages(Person[] persons) {
for (Person person : persons) {
if (person instanceof Student) {
System.out.println("姓名:" + person.getName() + ",年龄:" + person.getAge() +
",专业:" + ((Student) person).getMajor() + ",身份:学生");
} else if (person instanceof Teacher) {
System.out.println("姓名:" + person.getName() + ",年龄:" + person.getAge() +
",专业:" + ((Teacher) person).getSubject() + ",身份:教师");
}
}
}
}
```
上面的代码中,我们先创建了一个长度为5的`Person`数组,然后用`Random`随机产生不同类型的对象,存储到数组中。最后,我们调用`printMessages`方法,将数组中每个对象的信息输出。
在`printMessages`方法中,我们使用了`instanceof`运算符来判断对象的类型,然后分别输出不同类型对象的信息。这种做法虽然有些繁琐,但是可以确保输出的信息是正确的。
相关推荐
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)