我的作业(现在编辑完整的作品)
一个接受两个参数x和y坐标的构造函数必须初始化为x和y值,并将它们各自的值作为参数
在打印坐标的Punt类中创建一个print()方法。 •通过在名为Main的main()类中执行以下操作来测试Punt类。 o使用不带参数的构造函数从Punt中创建一个对象。 o使用另一个构造函数(具有2个参数的那个)在Punt中创建另一个对象。 o从两个对象调用print方法并检查输出是否正确
我的问题是我应该使用哪种数据类型? x的int和y的int或者我应该使用double吗?对于不接受参数的构造函数,我该怎么写呢?
这个课将
答案 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在内存中占用更多空间,因为你没有任何关于精度浮点数的特定要求似乎是最合理的选择。)