public class Text extends Students{ int [] uidInfos; public void mergeSort() { uidInfos[] = {1,2,3}; 哪里出错了 } }
时间: 2024-03-01 15:55:34 浏览: 18
在这段代码中,数组的声明应该是 `int[] uidInfos` 而不是 `int [] uidInfos`。此外,在 `mergeSort()` 方法中,应该使用 `=` 运算符将数组初始化为一个数组字面量,而不是使用花括号 `{ }`。也就是说,正确的代码应该是:
```
public class Text extends Students {
int[] uidInfos;
public void mergeSort() {
uidInfos = new int[]{1, 2, 3};
}
}
```
相关问题
abstract class Express{ public int weight; public abstract int getWeight(); public abstract int getTotal(); } public class SLExpress extends Express{ public int cost; public SLExpress(){ } public SLExpress(int weight){ super.weight=weight; } public int getTotal(int weight){ cost=12+(weight-1)*2; return cost; } } public class DDExpress extends Express{ public int cost; public DDExpress(){ } public DDExpress(int weight){ super.weight=weight; } public int getTotal(int weight){ cost=5+weight-1; return cost; } } public class CaicaiStation{ public int sum; public int calculate(Express[] ex){ for(int i=0;i<ex.length;i++){ sum+=ex[i]; } } }纠错
在这段代码中,`CaicaiStation`类中的`calculate()`方法中有一个错误:
1. 在`sum+=ex[i];`语句中,`ex[i]`是`Express`类型的对象,不能直接进行加法操作,需要调用`ex[i].getTotal()`方法来获取该快递的总费用。
下面是修改后的代码:
```
abstract class Express {
public int weight;
public abstract int getWeight();
public abstract int getTotal();
}
public class SLExpress extends Express {
public int cost;
public SLExpress() {
}
public SLExpress(int weight) {
super.weight = weight;
}
public int getWeight() {
return weight;
}
public int getTotal() {
cost = 12 + (weight - 1) * 2;
return cost;
}
}
public class DDExpress extends Express {
public int cost;
public DDExpress() {
}
public DDExpress(int weight) {
super.weight = weight;
}
public int getWeight() {
return weight;
}
public int getTotal() {
cost = 5 + weight - 1;
return cost;
}
}
public class CaicaiStation {
public int sum;
public int calculate(Express[] ex) {
for (int i = 0; i < ex.length; i++) {
sum += ex[i].getTotal();
}
return sum;
}
}
```
public class ZH01 { public int i = 1; ZH01(int m){ i = 1; } } class Fd extends ZH01{ Fd(int i){ this.i = 2; } }为什么会编译错误
这段代码会编译错误,因为子类 `Fd` 没有显式调用父类 `ZH01` 的构造函数。当父类没有提供无参构造函数时,子类必须显式地调用父类的构造函数,否则编译器会默认调用父类的无参构造函数,而这里父类没有提供无参构造函数,所以编译会报错。
可以通过在子类构造函数中使用 `super` 关键字来显式调用父类的构造函数,如下所示:
```
public class ZH01 {
public int i = 1;
ZH01(int m) {
i = 1;
}
}
class Fd extends ZH01 {
Fd(int i) {
super(i); // 调用父类的构造函数
this.i = 2;
}
}
```
这样就可以解决编译错误了。