有人可以解释为什么它不起作用吗?错误发生在obj[0][0]=1;
。它说GPA不能转换为int,对于String
变量赋值s
同样。
public class GPA {
public String s;
public int n;
public GPA[][] a;
//constructor
public GPA(GPA[][] a){}
public static void main(String[] args) {
GPA[][] obj=new GPA[2][2];
obj[0][0]=1; //error here
}
}
最佳答案
它不起作用,并且会给您带来编译时错误,因为GPA是类类型,并且您正在尝试为其分配int值。
您有两个选择。
选项1:
GPA[] obj = new GPA[4];
obj[0] = new GPA();
obj[0].n = 1;
选项2:
您可以将GPA成员设为私有,并使用设置器来设置值。以下是示例。
public class GPA {
private String s;
private int n;
private GPA[] a;
public GPA() {}
public GPA(GPA[] a) {}
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
public int getN() {
return n;
}
public void setN(int n) {
this.n = n;
}
public GPA[] getA() {
return a;
}
public void setA(GPA[] a) {
this.a = a;
}
}
然后使用设置器进行设置。
obj[0].setN(1);
将您的成员公开是不好的编程习惯。始终建议使用二传手。