1、定义一个Person类完成如下功能: (1)在Person类中有私有属性name,age, sex。 (2)完成Person类的构造方法、getter/setter (3)重写Person类的toString()方法 在测试类TestPerson类中创建两个Person对象,第一个用带参构造方法创建,第二个用默认构造方法创建,由用户输入其属性值,最后输出两个Person对象的信息。(输出的信息写自己的姓名,年龄以及性别) 2、在问题1的基础上: (1)定义Person类的子类xxx(xxx用自己的姓名全拼替代) (2)在xxx类中添加一个私有成员变量score(分数). (3)在xxx类中添加带4个参数的构造方法:参数的顺序是name、 age、sex、score,并且分别为对应的属性赋值. (4)在xxx类中重写toString()方法,使其可以完整输出xxx对象的所有属性信息(输出自己的姓名,年龄,性别以及成绩)。 (5)写一个测试类Testxxx类中完成如下功能(xxx用自己的姓名全拼替代): 创建两个xxx对象,第一个用带参构造方法创建,第二个用默认构造方法创建,由用户输入其属性值,最后输出两个xxx对象的信息。(其中xxx用自己的姓名全称代替) 3、在问题1的基础上,定义一个Person类型的一维数组,通过循环,可向数组 中录入n个Person对象的值并输出(n从键盘输入)。 4、在问题1 的基础上定义一个Person类型的List,通过循环,可向列表中录入n个Person对象的值并输出。JAVA
时间: 2024-03-06 09:48:06 浏览: 164
好的,以下是问题1~4的解答:
问题1:
Person.java
```java
public class Person {
private String name;
private int age;
private String sex;
public Person(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public Person() {
this.name = "";
this.age = 0;
this.sex = "";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "姓名:" + name + ",年龄:" + age + ",性别:" + sex;
}
}
```
TestPerson.java
```java
import java.util.Scanner;
public class TestPerson {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 使用构造方法创建第一个Person对象
System.out.println("请输入第一个人的姓名:");
String name1 = scanner.nextLine();
System.out.println("请输入第一个人的年龄:");
int age1 = scanner.nextInt();
scanner.nextLine();
System.out.println("请输入第一个人的性别:");
String sex1 = scanner.nextLine();
Person person1 = new Person(name1, age1, sex1);
// 使用默认构造方法创建第二个Person对象
Person person2 = new Person();
System.out.println("请输入第二个人的姓名:");
String name2 = scanner.nextLine();
person2.setName(name2);
System.out.println("请输入第二个人的年龄:");
int age2 = scanner.nextInt();
scanner.nextLine();
person2.setAge(age2);
System.out.println("请输入第二个人的性别:");
String sex2 = scanner.nextLine();
person2.setSex(sex2);
// 输出两个Person对象的信息
System.out.println(person1);
System.out.println(person2);
}
}
```
问题2:
Myself.java
```java
public class Myself extends Person {
private int score;
public Myself(String name, int age, String sex, int score) {
super(name, age, sex);
this.score = score;
}
public Myself() {
super();
this.score = 0;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
@Override
public String toString() {
return super.toString() + ",成绩:" + score;
}
}
```
TestMyself.java
```java
import java.util.Scanner;
public class TestMyself {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 使用构造方法创建第一个Myself对象
System.out.println("请输入第一个人的姓名:");
String name1 = scanner.nextLine();
System.out.println("请输入第一个人的年龄:");
int age1 = scanner.nextInt();
scanner.nextLine();
System.out.println("请输入第一个人的性别:");
String sex1 = scanner.nextLine();
System.out.println("请输入第一个人的成绩:");
int score1 = scanner.nextInt();
scanner.nextLine();
Myself myself1 = new Myself(name1, age1, sex1, score1);
// 使用默认构造方法创建第二个Myself对象
Myself myself2 = new Myself();
System.out.println("请输入第二个人的姓名:");
String name2 = scanner.nextLine();
myself2.setName(name2);
System.out.println("请输入第二个人的年龄:");
int age2 = scanner.nextInt();
scanner.nextLine();
myself2.setAge(age2);
System.out.println("请输入第二个人的性别:");
String sex2 = scanner.nextLine();
myself2.setSex(sex2);
System.out.println("请输入第二个人的成绩:");
int score2 = scanner.nextInt();
scanner.nextLine();
myself2.setScore(score2);
// 输出两个Myself对象的信息
System.out.println(myself1);
System.out.println(myself2);
}
}
```
问题3:
```java
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要录入的Person对象个数:");
int n = scanner.nextInt();
scanner.nextLine();
Person[] persons = new Person[n];
for (int i = 0; i < n; i++) {
System.out.println("请输入第" + (i + 1) + "个人的姓名:");
String name = scanner.nextLine();
System.out.println("请输入第" + (i + 1) + "个人的年龄:");
int age = scanner.nextInt();
scanner.nextLine();
System.out.println("请输入第" + (i + 1) + "个人的性别:");
String sex = scanner.nextLine();
persons[i] = new Person(name, age, sex);
}
for (Person person : persons) {
System.out.println(person);
}
```
问题4:
```java
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要录入的Person对象个数:");
int n = scanner.nextInt();
scanner.nextLine();
List<Person> personList = new ArrayList<>();
for (int i = 0; i < n; i++) {
System.out.println("请输入第" + (i + 1) + "个人的姓名:");
String name = scanner.nextLine();
System.out.println("请输入第" + (i + 1) + "个人的年龄:");
int age = scanner.nextInt();
scanner.nextLine();
System.out.println("请输入第" + (i + 1) + "个人的性别:");
String sex = scanner.nextLine();
personList.add(new Person(name, age, sex));
}
for (Person person : personList) {
System.out.println(person);
}
```
阅读全文