在这个项目中还有更多,但我不知道如何开始我坚持如何创建一个带有数组的构造函数,该数组将在一个点上采用未知数量的维度。
答案 0 :(得分: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);
这样的参数。
实践:
使用以下代码创建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();
}
}
答案 1 :(得分:0)
如果您不想传递数组,可以使用所谓的&#34; varargs&#34;。
public class Point
{
public Point(double... x)
{
}
}
然后你可以打电话:
new Point(1, 2, 3);
new Point(1, 2, 3, 4);