类与对象基础练习_学生登记

要求

定义一个Student类,包含以下要求:

  • 实例字段:name(名字),age(年龄),id(学生编号,自动生成,从1000开始)
  • 静态字段:studentCount(静态变量,用于统计总学生数),nextId(下一个学生编号)
  • 构造器:接受名字和年龄作为参数,在构造器中应进行总学生数的统计,并为学生分配唯一的id
  • 实例方法:introduce(),当调用该方法时输出学生的基本信息
  • 静态方法:getStudentCount(),返回总学生数

测试代码如下:

public class StudentTest {
    public static void main(String[] args) {
        // 创建学生对象
        Student s1 = new Student("张三", 20);
        Student s2 = new Student("李四", 21);
        Student s3 = new Student("王五", 19);

        // 让每个学生自我介绍
        s1.introduce();
        s2.introduce();
        s3.introduce();

        System.out.println("总学生数: " + Student.getStudentCount());
    }
}

参考输出:

大家好,我是编号1000的张三,今年20岁!希望学业有成,不再靠咖啡续命!
大家好,我是编号1001的李四,今年21岁!希望学业有成,不再靠咖啡续命!
大家好,我是编号1002的王五,今年19岁!希望学业有成,不再靠咖啡续命!
总学生数: 3

参考代码

请尽量独立完成,之后再对照参考代码进行核对。

class Student {
    private final String name;
    private final int age;
    private final int id;

    private static int studentCount = 0;  // 统计学生总数
    private static int nextId = 1000;  // 下一个学生编号

    // 构造器
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
        this.id = nextId++;  // 每次创建学生时,编号自动递增,且只能赋值一次
        studentCount++;  // 增加学生总数
    }

    // 输出学生信息的方法
    public void introduce() {
        System.out.printf("大家好,我是编号%d的%s,今年%d岁!希望学业有成,不再靠咖啡续命!\n", id, name, age);
    }

    // 静态方法,返回学生总数
    public static int getStudentCount() {
        return studentCount;
    }
}

 

posted @ 2024-10-18 10:13  xkfx  阅读(97)  评论(0编辑  收藏  举报