有人可以解释为什么它不起作用吗?错误发生在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);


将您的成员公开是不好的编程习惯。始终建议使用二传手。

10-08 04:57