为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的数组列表只填充了一个元素?

为什么我的数组列表只填充了一个元素?

狐的传说 2022-09-22 16:01:57

在代码中打印 f(i).x 时,将显示正确的 x 值。但是当我试图得到作为例子:points.get(2).x或任何其他值,我总是得到相同的x值。任何帮助都会很棒。


主要类:


import java.util.ArrayList;


public class Main {


    public static ArrayList<Point> points = new ArrayList();


    public static void main(String[] args) {


        for (float i = -5; i <= 5; i+=0.1) {

            points.add(f(i));


        }


        for (int i = 0; i < points.size(); i++) {

            System.out.println(points.get(i).x);

            // shows always the same number: 4.95...

        }


    }


    public static Point f(float x) {

        return new Point(x, (-0.15f*((x + -2.1f) * (x + -2.1f)) + 4.3f));

    }

}

积分等级:


public class Point {


    public static float x;

    public static float y;


    public Point(float x_, float y_) {

        x = x_;

        y = y_;


    }


}


查看完整描述

1 回答

?
慕桂英4014372

TA贡献1562条经验 获得超1个赞

正如您在类中将静态定义和静态时,这就是导致所有点具有相同值的原因。请阅读静态变量xyPoint

静态成员属于类而不是特定实例,这意味着如果使成员成为静态成员,则可以在没有对象的情况下访问它


查看完整回答
反对 回复 2022-09-22

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信