通过Java实现学号和学生人数根据创建的对象自动生成
时间: 2024-05-11 10:14:46 浏览: 18
一个唯一的学号,可以使用静态变量来记录已经创建的对象数量,每创建一个对象就将这个变量加一,然后将学号设置为一个固定前缀加上这个变量。例如:
```java
public class Student {
private static int count = 0;
private String id;
public Student() {
count++;
id = "STU" + count;
}
// 其它方法
}
```
这样每创建一个 Student 对象就会自动生成一个唯一的学号,例如第一个对象的学号为 STU1,第二个对象的学号为 STU2,以此类推。
相关问题
编写学生类,要求如下: (1)学号和学生人数根据创建的对象自动生成; (2)学生类属性及方法自由发挥; (3)使用this\this()等关键字 (4)创建3个学生并显示学号及总人数。
public class Student {
private int id; // 学号
private String name; // 姓名
private int age; // 年龄
private static int count = 0; // 学生总人数
public Student(String name, int age) {
this.name = name;
this.age = age;
count++; // 每创建一个学生对象,总人数自增1
this.id = count; // 学号根据总人数自动生成
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public static int getCount() {
return count;
}
}
// 测试代码
public class Test {
public static void main(String[] args) {
Student s1 = new Student("张三", 18);
System.out.println("学生" + s1.getName() + "的学号是:" + s1.getId());
System.out.println("当前学生总人数是:" + Student.getCount());
Student s2 = new Student("李四", 19);
System.out.println("学生" + s2.getName() + "的学号是:" + s2.getId());
System.out.println("当前学生总人数是:" + Student.getCount());
Student s3 = new Student("王五", 20);
System.out.println("学生" + s3.getName() + "的学号是:" + s3.getId());
System.out.println("当前学生总人数是:" + Student.getCount());
}
}
如何创建一个Java程序实现储存全校学生和老师的学号和姓名
你可以使用 Java 中的集合框架来实现这个需求,例如使用 HashMap 来存储学号和姓名的对应关系。
具体实现步骤如下:
1. 定义一个 Student 类和 Teacher 类,包含学号和姓名两个属性。
```java
public class Student {
private String id;
private String name;
public Student(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
}
public class Teacher {
private String id;
private String name;
public Teacher(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
}
```
2. 创建一个 HashMap 对象,用于存储学号和姓名的对应关系。
```java
import java.util.HashMap;
import java.util.Map;
public class School {
private Map<String, String> students = new HashMap<>();
private Map<String, String> teachers = new HashMap<>();
public void addStudent(Student student) {
students.put(student.getId(), student.getName());
}
public void addTeacher(Teacher teacher) {
teachers.put(teacher.getId(), teacher.getName());
}
public String findStudentName(String id) {
return students.get(id);
}
public String findTeacherName(String id) {
return teachers.get(id);
}
}
```
3. 在 main 方法中创建 School 对象,调用 addStudent 和 addTeacher 方法向集合中添加学生和老师信息。
```java
public class Main {
public static void main(String[] args) {
School school = new School();
school.addStudent(new Student("1", "张三"));
school.addStudent(new Student("2", "李四"));
school.addTeacher(new Teacher("T1", "王老师"));
school.addTeacher(new Teacher("T2", "李老师"));
String studentName = school.findStudentName("1");
String teacherName = school.findTeacherName("T2");
System.out.println("学生姓名:" + studentName);
System.out.println("老师姓名:" + teacherName);
}
}
```
以上代码演示了如何使用 HashMap 存储学号和姓名的对应关系,并可以根据学号查询对应的姓名。你可以根据实际需求修改代码来适应不同的场景。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)