0

我的作业(现在编辑完整作业)

  • 使用上面定义的属性创建一个类 Punt(坐标需要用 ax 和 y 值定义。选择正确的数据类型。
  • 为类 Punt 创建 2 个构造函数
  • 一个不接受参数并将其初始化为 (0,0) 的构造函数
  • 一个接受 x 和 y 坐标这两个参数的构造函数必须初始化为 x 和 y 值,并将它们各自的值作为参数

    在类 Punt 中创建一个打印坐标的 print() 方法。• 通过在名为Main 的main() 类中执行以下操作来测试Punt 类。o 使用不带参数的构造函数从 Punt 生成一个对象。o 使用另一个构造函数(具有 2 个参数的那个)在 Punt 中创建另一个对象。o 从两个对象调用 print 方法并检查输出是否正确

我的问题是我应该使用什么数据类型?x 的 int 和 y 的 int 还是我应该使用双精度数?同样对于不接受任何参数的构造函数,我应该如何写这个?

这堂课将

4

4 回答 4

2

您使用的数据类型取决于您的设计决策。您希望您的网格具有多少特异性?您是否希望所有Punts 都准确地落在一条网格线上,或者您是否希望在您的平面之间有度数?如果是前者,请使用int; 如果是后者,请使用double. 这个决定不需要任何真正的编程知识,只需要一些批判性思维。

无参数构造函数的编写方式与编写无参数方法的方式相同。

public Punt() {

    //Do stuff

}
于 2012-10-03T16:53:34.850 回答
1

您应该使用的数据类型取决于此类的用途。如果您只需要积分 - 使用 int,如果您需要更高的精度,请使用非积分(双精度在内存中占用更多空间,并且由于您对精度浮点数没有任何特定要求似乎是最合理的选择)。

于 2012-10-03T17:10:10.007 回答
1
public class Punt
{
    private int x, y;

    public Punt()
    {
       this(0,0);
    }

    public Punt(int x, int y)
    {
       this.x = x;
       this.y = y;
    }

    public void print()
    {
         System.out.println("(X, Y) = ("+x+", "+y+")");
    }
}

JB Nizet 确实提出了一个有效的观点。

public class Main
{
    public static void main(String[] args)
    {
        Punt p1 = new Punt();
        Punt p2 = new Punt(-2, -1);

        p1.print();
        p2.print();
    }
}

还不如现在完成...

于 2012-10-03T16:52:51.717 回答
1

您需要多少精度?你的坐标是整数还是实数的一部分?那应该回答您关于什么数据类型的问题。Oracles JavaDocs 有几页关于构造函数

于 2012-10-03T16:53:52.413 回答