Java需要有关构造函数的帮助

时间:2012-10-03 16:51:14

标签: java constructor

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

  • 创建一个具有上面定义属性的类Punt(坐标需要用x和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或者我应该使用double吗?对于不接受参数的构造函数,我该怎么写呢?

这个课将

4 个答案:

答案 0 :(得分:2)

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

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

public Punt() {

    //Do stuff

}

答案 1 :(得分: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();
    }
}

现在也可以完成它......

答案 2 :(得分:1)

您需要多少精度?你的坐标是否只是整数或实数的一部分?那应该回答你关于什么数据类型的问题。 Oracles JavaDocs在constructors上有几页。

答案 3 :(得分:1)

您应该使用的数据类型取决于此类将用于何种类型。如果只需要积分 - 使用int,如果你需要更多精度,则使用非积分(double在内存中占用更多空间,因为你没有任何关于精度浮点数的特定要求似乎是最合理的选择。)