为什么id为1的学生的年龄运行输出没有增加package MianXiangDuiXiangDemo3; public class StudentsTest2 { public static void main(String[] args) { //创建数组 Students[] arr = new Students[3]; //创建学生对象 Students stu1 = new Students("财", 1, 24); Students stu2 = new Students("来", 2, 26); Students stu3 = new Students("旺", 3, 21); //添加到数组 arr[0] = stu1; arr[1] = stu2; arr[2] = stu3; //5、查询id为“heima002"的学生,如果存在,则将他的年龄加一 int index = getIndex(arr,1); if (index >= 0){ Students stu =arr[index]; int newage = stu.getAge() + 1; stu.getAge(newage); printArr(arr); }else { System.out.println("当前id不存在,修改失败"); } } //找到id在数组中的索引 public static int getIndex(Students[] arr,int id){ for (int i = 0; i < arr.length; i++) { Students stu = arr[i]; if (stu !=null){ int sid = stu.getId();//sid存在的学生id if (sid == id){ return i; } } } return -1;// } private static void printArr(Students[] arr) { for (int i = 0; i < arr.length; i++) { Students stu = arr[i]; if (stu != null) { System.out.println(stu.getId() + "," + stu.getName() + "," + stu.getAge()); } } } }
时间: 2024-01-09 20:06:10 浏览: 52
在代码中,更新学生年龄的代码有问题。应该使用 `stu.setAge(newage);` 而不是 `stu.getAge(newage);`。因为 `getAge()` 方法只是获取年龄的值,并不会修改年龄。修改后的代码如下:
```
//5、查询id为“1”的学生,如果存在,则将他的年龄加一
int index = getIndex(arr,1);
if (index >= 0){
Students stu =arr[index];
int newage = stu.getAge() + 1;
stu.setAge(newage);
printArr(arr);
}else {
System.out.println("当前id不存在,修改失败");
}
```
这样就可以正确地将 id 为 1 的学生年龄加一并输出了。
相关问题
import java.util.Scanner; package base; public class scaner { public static void main(String[] args) { } } 改错
在代码的开头处移除多余的import语句,将package语句放在import语句后面,同时将类名从"scaner"改为"Scanner",修正后的代码如下:
```java
package base;
import java.util.Scanner;
public class ScannerExample {
public static void main(String[] args) {
// 在这里编写你的代码
}
}
```
请注意,你需要在`main`方法中编写你的代码,这只是一个修正后的代码框架。
package six_6; class dog { public String name; public dog(String name) { this.name=name; } } public class _1{ public static void main(String[]args) { dog d1=new dog("X"); dog d2=new dog("X"); String s1=d1.toString(); String s2=d2.toString(); String s3="X"; String s4="X"; } }
您好,我可以回答您的问题。根据您提供的代码,我可以看出您正在创建两个“dog”对象和四个字符串对象。在Java中,“==”运算符用于比较两个对象引用是否相等(指向同一内存地址),而“equals()”方法用于比较对象的内容是否相等。所以,对于字符串比较,建议使用“equals()”方法来比较两个字符串是否相等。
在这个例子中,由于字符串“X”在Java中是常量,在编译时会被优化为同一个对象,所以对于字符串比较,使用“==”运算符来判断它们是否相等是可以的。而对于比较两个“dog”对象,因为它们是不同的实例,所以使用“==”运算符比较将返回false。如果您想比较两个“dog”对象的内容,您需要重写“equals()”方法。
希望我的解答对您有帮助!
阅读全文