java编写一个Person类,其中包括人的姓名、性别、年龄、子女等属性,并封装有获得姓名、获得年龄、增加一岁、获得子女、设置子女等方法,其中子女为一个Person数组。用某实际数据测试该类的设计。
时间: 2024-10-23 07:09:09 浏览: 29
java代码-使用java解决在Person类的基础上,添加一个静态变量avgAge表示所有平均年龄的源代码
好的,首先我们创建一个名为`Person`的类,包含基本的个人信息属性和相应的操作方法:
```java
public class Person {
private String name;
private char gender; // 'M' for Male, 'F' for Female
private int age;
private Person[] children;
public Person(String name, char gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
this.children = new Person[0]; // 初始化一个空的孩子数组
}
// 获取姓名
public String getName() {
return name;
}
// 获取年龄
public int getAge() {
return age;
}
// 增加一岁
public void incrementAge() {
age++;
}
// 添加子女(如果孩子数组未满)
public void addChild(Person child) {
if (children.length - 1 >= child.getAge()) {
children[child.getAge()] = child;
} else {
System.out.println("警告:无法添加更多子女,数组已满.");
}
}
// 设置子女(清空当前数组并添加新的子集)
public void setChildren(Person[] newChildren) {
this.children = newChildren;
}
// 获取子女列表(返回Person数组的一个视图,而不是直接引用)
public Person[] getChildrenList() {
return Arrays.copyOf(children, children.length);
}
// 测试用例
public static void main(String[] args) {
Person parent = new Person("张三", 'M', 35);
Person child1 = new Person("小明", 'M', 8);
Person child2 = new Person("小红", 'F', 6);
parent.addChild(child1);
parent.addChild(child2);
System.out.println(parent.getName()); // 输出 "张三"
System.out.println(parent.getAge()); // 输出 35
System.out.println(Arrays.toString(parent.getChildrenList()));
}
}
```
在这个例子中,我们创建了一个简单的`Person`类,用于存储一个人的基本信息。通过`addChild`和`setChildren`方法管理其子女列表。在`main`方法中,我们实例化了一个父母对象,然后添加了两个孩子。最后展示了获取信息的方法。
阅读全文