将值分配给在java中具有多个变量的数组

时间:2017-03-12 09:57:07

标签: java

我创建了以下类的数组,当我尝试分配新值时,它会给我null

我的代码如下

public class edge {
 public double w = 0 ;
 public int a = 0 ;
 public int b = 0 ;

}



edge edges[];
edges = new edge[5];
int c = 10 
for ( int i = 0 , i< 5 , i++) { 
  edges[i]=new edge();
  edges[i].a = i;
  edges[i].b = i + 1;
  edges[i].w = i/c ;
}

1 个答案:

答案 0 :(得分:1)

您的代码中存在一些问题:

首先:你不应该像你一样把你的代码放在你的班级之外 Secondd:您必须使用main方法启动程序
第三:您应该将循环中的语句与;分开,而不是,,您的程序应如下所示:

public class Edge {

    public double w = 0;
    public int a = 0;
    public int b = 0;

    public static void main(String[] args) {

        Edge edges[];
        edges = new Edge[5];
        int c = 10;
        for (int i = 0; i < 5; i++) {
            edges[i] = new Edge();
            edges[i].a = i;
            edges[i].b = i + 1;
            edges[i].w = i / c;
        }

    }
}

或者您可以在区分类中将它们分开,如下所示:

public class Cls {

    public static void main(String[] args) {

        Edge edges[];
        edges = new Edge[5];
        int c = 10;
        for (int i = 0; i < 5; i++) {
            edges[i] = new Edge();
            edges[i].a = i;
            edges[i].b = i + 1;
            edges[i].w = i / c;
        }
        System.out.println(Arrays.toString(edges));
        //Output
       //[edge{w=0.0, a=0, b=1}, edge{w=0.0, a=1, b=2}, edge{w=0.0, a=2, b=3}, edge{w=0.0, a=3, b=4}, edge{w=0.0, a=4, b=5}]
    }
}

class Edge {

    public double w = 0;
    public int a = 0;
    public int b = 0;

    @Override
    public String toString() {
       return "edge{" + "w=" + w + ", a=" + a + ", b=" + b + '}';
    }

}