定义一个家庭类Family,包含家庭成员的变量Person[]persons,主函数main,其中主要代码逻辑是: a.输入家庭成员个数N, b.根据提示如“请输入职业:0:学生;1:教师..”)构造N个家庭成员的对象,加入到一个Person的数组
时间: 2024-10-05 13:03:20 浏览: 25
funclib.js:Funclib是一个实用且功能强大JavaScript库,通过编码,您可以高效而优雅地完成任务代码!
定义一个`Family`类,包含一个`Person`类型的数组`persons`,用于存储家庭成员。在主函数`main`中,你需要执行以下操作:
1. 输入家庭成员个数 `N`
2. 创建一个大小为 `N` 的 `Person[] persons` 数组
3. 使用循环,从用户那里获取每个家庭成员的职业信息(如学生、教师等)
4. 根据职业类型创建相应的`Person`子类对象(如`Student`, `Teacher` 或者 `Employee`)
5. 将新创建的子类对象添加到`persons`数组
下面是这个`Family`类的一个示例实现:
```java
import java.util.Scanner;
class Person {
String name;
String gender;
int age;
String career; // 假设career字段用于记录职业
// 构造函数和getCareer方法省略,因为它们已经在上面的子类中定义过了
}
public class Family {
Person[] persons;
public Family(int numMembers) {
this.persons = new Person[numMembers];
}
public void addMember(Person person) {
persons[persons.length - 1] = person;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入家庭成员的数量:");
int N = scanner.nextInt();
Family family = new Family(N);
for (int i = 0; i < N; i++) {
System.out.println("请输入第" + (i+1) + "位家庭成员的职业(0:学生;1:教师...):");
int choice = scanner.nextInt();
String career;
switch (choice) {
case 0:
career = "学生";
family.addMember(new Student("成员姓名", "性别", 年龄值, "学号", "专业"));
break;
case 1:
career = "教师";
family.addMember(new Teacher("成员姓名", "性别", 年龄值, "教师ID", "教学科目"));
break;
// 更多职业选项添加其他case
default:
throw new IllegalArgumentException("无效的职业选择");
}
}
// 显示家庭成员信息
for (Person member : family.persons) {
System.out.println(member.getName() + ",职业:" + member.getCareer());
}
scanner.close();
}
}
```
在这个示例中,我们假设年龄值需要在循环内部提供。记住要根据实际需求调整`Person`子类的构造函数和职业相关的参数。
阅读全文