用java编写学生类,要求如下: (1)学号和学生人数根据创建的对象自动生成; (2)学生类属性及方法自由发挥; (3)使用this\this()等关键字 (4)创建3个学生并显示学号及总人数。
时间: 2024-10-16 10:13:05 浏览: 33
编写程序,设计一个学生类Student和它的子类Undergraduate
5星 · 资源好评率100%
在Java中,我们可以按照您的要求创建一个名为`Student`的基本类,并利用`this`关键字以及一些额外的属性和方法。首先,我会定义一个计数器类来存储总学生数,然后在`Student`类中包含学号生成、属性和方法:
```java
// 定义一个静态内部类Counter来存储学生总数
class StudentCounter {
private static int totalStudents = 0;
// 添加增加学生数的方法
public static void increment() {
totalStudents++;
}
// 获取总学生数的方法
public static int getTotalStudents() {
return totalStudents;
}
}
// 学生类 Student
public class Student {
private int id; // 自动递增的学号
private String name;
private int age;
private double gpa;
// 构造函数,自动递增学号
public Student(String name) {
this.id = StudentCounter.getTotalStudents() + 1; // 使用this()获取当前的总学生数加一
this.name = name;
StudentCounter.increment(); // 每次创建新实例时增加学生数
}
// 属性设置和获取方法
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
// 其他自由发挥的方法...
public void displayInfo() {
System.out.println("学号:" + id + ",姓名:" + name);
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", gpa=" + gpa +
'}';
}
}
// 创建三个学生并显示信息
public class Main {
public static void main(String[] args) {
Student student1 = new Student("张三");
Student student2 = new Student("李四");
Student student3 = new Student("王五");
student1.displayInfo();
student2.displayInfo();
student3.displayInfo();
System.out.println("\n总学生数:" + StudentCounter.getTotalStudents());
}
}
```
在这个例子中,每次创建新的`Student`对象时,它的学号会自动增加,并且总学生数也随之更新。每个学生可以有自己特有的属性和方法。
阅读全文