这个项目还有很多,但我不知道如何开始我坚持如何创建一个带有数组的构造函数,该数组将在一个点上采用未知数量的维度。
1084 次
2 回答
3
您可以将数组作为构造函数的参数
public class MultiDemPoint{
public MultiDemPoint(double[] coords){
}
}
您将需要传递一个双精度数组:
new MultiDemPoint(new double[]{4, 5.0, 3, 2, 6, 4.6});
您还可以期望未定义的坐标数作为分隔值
public class MultiDemPoint{
public MultiDemPoint(double... coords){
}
}
new MultiDemPoint(4, 5.0, 3, 2, 6, 4.6);
在这种情况下,您可以传递参数。
实践:
- 在 IDE 中创建一个新的空项目
MultDemPoint.java
使用以下代码创建 文件:public class MultiDemPoint{ private double[] coords; //double... coords will automatically convert all supplied coordinates to the array, // we can store it in double[] coords. public MultiDemPoint(double... coords){ this.coords = coords; } public void printCoords(){ for(int i=0; i<coords.length; i++){ System.out.println("Coordinate #"+i+": "+coords[i]); } System.out.println(""); } }
将此代码用于您的
Main.java
public class Main { public static void main(String[] args){ MultiDemPoint point1 = new MultiDemPoint(1,2,3,4); MultiDemPoint point2 = new MultiDemPoint(3); MultiDemPoint point3 = new MultiDemPoint(5.44444444,232323.12323,321321); System.out.println("Point1 coordinates:"); point1.printCoords(); System.out.println("Point2 coordinates:"); point2.printCoords(); System.out.println("Point3 coordinates:"); point3.printCoords(); } }
于 2013-11-22T20:18:52.547 回答
0
如果你不想传递一个数组,你可以使用所谓的“varargs”。
public class Point
{
public Point(double... x)
{
}
}
然后你可以调用:
new Point(1, 2, 3);
new Point(1, 2, 3, 4);
于 2013-11-22T20:23:42.613 回答