首页 > 其他分享 >类与对象基础练习_学生登记

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

时间:2024-10-18 10:14:56浏览次数:7  
标签:登记 name 对象 age 练习 学生 int Student 编号

要求

定义一个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;
    }
}

 

标签:登记,name,对象,age,练习,学生,int,Student,编号
From: https://www.cnblogs.com/xkxf/p/18473654

相关文章

  • 【重学 MySQL】七十、揭秘数据库对象,打造高效数据管理之旅
    【重学MySQL】七十、揭秘数据库对象,打造高效数据管理之旅数据库(Database)数据表(Table)视图(View)存储过程(StoredProcedure)触发器(Trigger)索引(Index)在MySQL中,数据库对象是用于存储、管理和操作数据的实体。这些对象在数据库设计中扮演着至关重要的角色,它们共同......
  • c++ --类和对象(篇1)
    目录1.类的概念:2.类的定义3.对象的创建:4.封装5.继承1.类的概念:                类用于指定对象的形式,是一种用户自定义的数据类型,                它是一种封装了数据和函数的组合。类中的数据称为成员变量,函数称为成员函数。 ......
  • Java-类与对象
    一、面向对象在了解类与对象前,我们需要先知道"面向对象"这个词的概念:在Java语言中,我们的主要思想就是"面向对象",而在之前我们所学习的C语言中大部分时候的思想是"面向过程"。那么什么是"面向对象",什么是"面向过程"呢?在之前我们学习C语言,想要实现一个操作时,里面可能会有很多......
  • 20241017 练习记录
    今天duel了一整天CF的题!虽然都是800-2000的……CF1131C平。开始其实就猜到结论了,但感觉很假就没想下去,还去写什么二分答案随机化,唐完了。结论题,维护双端队列,an从队头进,an-1从队尾,an-2从队头……以此类推,正确性显然。CF888D输!想复杂了……对k分类讨论计算即可......
  • C++核心编程、面向对象
    目录一、内存分区模型1、运行程序前代码区全局区总结:2、运行程序后栈区堆区 3、new关键字基本使用开辟数组二、引用1、基本使用2、引用的注意事项3、引用做函数参数4、引用做函数返回值5、引用的本质6、常量引用三、函数提高1、函数的默认参数2、函数......
  • (新!)c++类与对象
    C++ 类&对象C++在C语言的基础上增加了面向对象编程,C++支持面向对象程序设计。类是C++的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,是一种用户自定义的数据类型,它是一种封装了数据和函数的组合。类中的数据称为成员变量,函数称为成员函数。类可以被看作......
  • JVM系列(九) -垃圾对象的回收算法介绍
    一、摘要在之前的文章中,我们介绍了JVM内部布局、对象的创建过程以及运行期的相关优化手段。今天通过这篇文章,我们一起来了解一下对象回收的判定方式以及垃圾对象的回收算法等相关知识。二、对象回收判定方式当一个对象被创建时,虚拟机会优先分配到堆空间中,当对象不再被......
  • 算法(第4版)练习题 3.3.20 的一种解法
    本文给出了对于《算法(第4版)》(以下简称原书或书)中的练习题3.3.20的一种解法。◆要求原书中的练习题3.3.20要求计算一棵大小为N且完美平衡的二叉查找树的内部路径长度,其中N为2的幂减1。◆解答N为2的幂减1的一颗完美平衡的二叉查找树是一棵满二叉树。在这样的......
  • 实现对象字段在转换为 JSON 时大小写保持不变
    实现对象字段在转换为JSON时大小写保持不变预期效果:对象中字段名是Age,NAME转成json后:{"Age":"12","NAME":"张三"}使用场景:给外系统传参数rest接口参数时,对方要求;方式一使用Jackson的@JsonProperty注解importcom.fasterxml.jackson.annotation.JsonProperty;import......
  • h3cne-rs+题库GB0-192新华三初级网络工程师认证模拟练习题限时领!
    很高兴你对H3CNE-RS+(GB0-192)新华三初级网络工程师认证感兴趣。为了帮助你备考,以下是一些模拟练习题及解析示例。请注意,这只是部分示例,并非完整的题库。真实的考试题目可能会涉及更多细节和实际应用场景。想要完整题库的,加老师。IP地址132.119.100.200的子网掩码是255.......