在构造函数和java中的方法中返回不同的值

时间:2017-03-27 22:52:21

标签: java constructor

我想知道为什么在地方(),它会返回不同的值。在构造函数中,它返回3,这是有道理的。但是,在第二个()中,它返回0.我认为这两个地方都应该返回0.我在这里遗漏了什么?

error()

1 个答案:

答案 0 :(得分:3)

您必须为构造函数参数赋值属性,否则您正在使用参数vec2d而不是属性vec2d

public Vector2D(List<List<Integer>> vec2d) {
    this.vec2d = vec2d;//assign Parameter to list
    if(this.vec2d.size() == 0) {
        this.it = null;
    } else {
        this.size = this.vec2d.size();
        System.out.println("this size is " + size); // * returns 3
        this.it = this.vec2d.get(0).iterator();   
    }
}

尝试将List<List<Integer>> vec2d方法参数重命名为其他内容,您将会看到。