【问题标题】:Java Array with point (coordination)带点的Java数组(坐标)
【发布时间】:2015-12-29 19:11:27
【问题描述】:

我想在包含点的主方法中创建一个数组 喜欢p={(3,8),(2,8)} 与这个类

public class Point
{
    private float x,y;

    public Point(){}
    public Point(float abs){this.x=abs;}
    public Point(float abs, float ord){this.x=abs; this.y=ord;}
    public void setPoint(float abs, float ord){this.x=abs; this.y=ord;}
} 

我使用了p[1] = new Point(5,6);,但是当我尝试调用p[1].x 时,我发现 x 具有私有访问权限。 任何想法。

【问题讨论】:

  • 它是私有的,因为您将它设置为私有变量 (private float x, y;)。要么公开它,要么(正确的方法)创建一个 get 方法来获取值。

标签: java arrays initialization declaration


【解决方案1】:

您可以像这样创建Points 的数组:

Point[] points = new Point[] {
    new Point(3,8),
    new Point(2,8)
};

& 为了能够访问x & y 成员变量,它们应该有一个public 标识符。

public class Point{
    public float x,y;
    ...
}

但最好的方法是创建一个getter

public class Point{
    private float x,y;
    ...

    public float getX() { return x; }
    public float getY() { return y; }
}

那么您可以通过这种方式访问​​Pointxy

Point point = new Point(1,1);
point.getX();
point.getY();

【讨论】:

  • 我会选择 getter 而不是公共访问修饰符
猜你喜欢
  • 2019-12-02
  • 1970-01-01
  • 2019-02-19
  • 1970-01-01
  • 2017-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多