Scanner s=new Scanner(System.in); Student st1=new Student(); Student st2=new Student(); String name=s.next(); double score=s.nextDouble(); st1.setName(name); st1.setScore(score); st2.setName(name); st2.setScore(score); System.out.println("\n"+"stu1: name="+st1.name+",score="+st1.score); System.out.println("stu2: name="+st2.name+",score="+st2.score); 这段代码哪里出错了
时间: 2024-04-11 07:27:50 浏览: 106
在这段代码中,你使用了`Scanner`类来接收用户输入的姓名和分数,并将它们分别赋值给`st1`和`st2`的姓名和分数属性。然而,由于Java中的浮点数类型是不可变的,所以你需要将分数从`double`转换为适当的数据类型。
修改如下:
```java
Scanner s = new Scanner(System.in);
Student st1 = new Student();
Student st2 = new Student();
String name = s.next();
int score = (int) s.nextDouble(); // 将分数转换为整数类型
st1.setName(name);
st1.setScore(score);
name = s.next(); // 重新读取姓名
score = (int) s.nextDouble(); // 将分数转换为整数类型
st2.setName(name);
st2.setScore(score);
System.out.println("\n" + "stu1: name=" + st1.getName() + ", score=" + st1.getScore());
System.out.println("stu2: name=" + st2.getName() + ", score=" + st2.getScore());
```
在这个修改后的代码中,使用`(int)`进行了强制类型转换,将浮点数分数转换为整数类型。并且在输出学生信息时,使用了`getName()`和`getScore()`方法来获取学生的姓名和分数。
请确保你的`Student`类中有适当的成员变量、构造函数、setter和getter方法,并且在需要时进行相应的调整。
阅读全文