1

这个项目还有很多,但我不知道如何开始我坚持如何创建一个带有数组的构造函数,该数组将在一个点上采用未知数量的维度。

4

2 回答 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 回答