1.编写学生类,属性包含:学号、姓名、成绩;操作包括:带参数的构造方法,显示学生信息,重写equals()方法,实现按学号比较。 输出格式:(学号10列,姓名10列,成绩6列且保留1位小数) 学号: 200807201 姓名: wanghai 成绩: 78.0
时间: 2024-01-18 20:04:19 浏览: 207
好的,以下是一个简单的Java学生类的代码示例,满足您的需求:
```java
public class Student {
private String studentNumber;
private String name;
private double score;
// 带参数构造方法
public Student(String studentNumber, String name, double score) {
this.studentNumber = studentNumber;
this.name = name;
this.score = score;
}
// 显示学生信息
public void display() {
System.out.printf("学号:%-10s姓名:%-10s成绩:%-6.1f\n", studentNumber, name, score);
}
// 重写equals()方法,按学号比较
@Override
public boolean equals(Object obj) {
if (obj instanceof Student) {
Student other = (Student) obj;
return this.studentNumber.equals(other.studentNumber);
}
return false;
}
}
```
在这个示例中,我们定义了一个学生类 `Student`,包含三个属性:学号、姓名和成绩。我们也实现了 `Student` 类的三个方法:
- `public Student(String studentNumber, String name, double score)`:带参数的构造方法,用于初始化学生对象。
- `public void display()`:显示学生信息,按照题目要求的格式输出。
- `@Override public boolean equals(Object obj)`:重写 `equals()` 方法,按照学号比较两个学生对象是否相等。
示例代码中的 `display()` 方法使用了 `System.out.printf()` 方法来格式化输出。`%-10s` 表示输出一个字符串,占用 10 列,左对齐;`%-6.1f` 表示输出一个浮点数,占用 6 列,保留 1 位小数,左对齐。
您可以在其他类中创建 `Student` 对象,并使用 `display()` 方法来显示学生信息。例如:
```java
public class Main {
public static void main(String[] args) {
Student stu1 = new Student("200807201", "wanghai", 78.0);
Student stu2 = new Student("200807202", "zhangsan", 85.5);
stu1.display();
stu2.display();
System.out.println(stu1.equals(stu2)); // false
System.out.println(stu1.equals(new Student("200807201", "lisi", 92.5))); // true
}
}
```
在 `Main` 类中,我们创建了两个 `Student` 对象 `stu1` 和 `stu2`,并调用了它们的 `display()` 方法来显示学生信息。我们还使用了 `equals()` 方法来比较两个学生对象是否相等。输出结果如下:
```
学号:200807201 姓名:wanghai 成绩:78.0
学号:200807202 姓名:zhangsan 成绩:85.5
false
true
```
希望这个示例对您有所帮助!
阅读全文