Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中创建对象_Java_Object - Fatal编程技术网

在Java中创建对象

在Java中创建对象,java,object,Java,Object,我有以下课程: class Position { private double x,y; private int id; private static int count=0; //counts number of times a Position object has been created public Position (double initX, double initY) { x=initX

我有以下课程:

class Position {

        private double x,y;
        private int id;

        private static int count=0; //counts number of times a Position object has been created

        public Position (double initX, double initY) {
            x=initX;
            y=initY;
            id=count;
            count++;
        }

        public Position (Position a) {
            id=count;
            count++;
            x=a.x;
            y=a.y;
        }
现在我想在另一个.java文件中创建一个Position对象。我该怎么做?我不使用位置x=新位置?那不行。我必须将position类导入文件吗?我也试过了,没用。不让我进口。我的文件在默认文件夹中

这是我想用的地方。我甚至不确定我是否正确阅读了说明书。这就是他们想要我做的吗?要将数组的每个元素初始化为新的位置对象

/**
     * Returns an array of num positions. Each position is initialized to a random
     * (x,y) position.
     * if num is less than zero, just return an empty array of length 0.
     * 
     * @param num
     *            number of positions to create
     * @return array of newly minted Points
     */
 public int[] randomPos(int[] a) {
     int numPositions=Position.getNumPositionsCreated();
     int[] posArr=new int[numPositions];
     int x,y;
     for (int i=0; i<numPositions;i++)
         Position rand = new Position(x,y);
         //

您需要调用构造函数

Position x = new Position(2.0,2.0);
因为您的一个构造函数使用两个double作为参数,所以我将它们作为示例

或者,您可以通过传入另一个位置对象来创建新的位置对象

此外,为了防止您不确定,实例化和声明之间存在差异

实例化: 现在,posX是Position对象的实例,因为我们通过调用构造函数来构造对象

public Position() {
}
宣言: 注意,posX变量被声明为Position对象,但尚未实例化,因此posX将具有空引用

更新: 没有真正为你做家庭作业,因为你不会那样学习。我可以告诉您,到目前为止,您所拥有的,以及上面javadoc中列出的内容并不一致。另外,考虑到javadoc的编写方式,很难理解,因此让我试着为您清理它,剩下的事情由您来做

/* Returns an array of n Positions. Each Position is initialized to a random
 * (x,y) position.
 * if n is less than zero, just return an empty array of length 0.
 * 
 * @param n
 *     number of Positions to create
 * @return array of newly created Positions
 */
现在我们可以分解javadoc了,让我们来确定我们所知道的

我们正在传递一个参数n,它指示位置数组应该有多大。 我们需要检查n是否等于0,如果是,则返回一个空位置数组。 每个位置对象都将使用随机的x和y值进行实例化。 我们知道我们需要返回一个位置数组。
这应该可以让你开始了,我相信你可以解决剩下的问题。

你需要调用构造函数

Position x = new Position(2.0,2.0);
Position x = new Position(1.0, 2.0);
因为您的一个构造函数使用两个double作为参数,所以我将它们作为示例

或者,您可以通过传入另一个位置对象来创建新的位置对象

此外,为了防止您不确定,实例化和声明之间存在差异

实例化: 现在,posX是Position对象的实例,因为我们通过调用构造函数来构造对象

public Position() {
}
宣言: 注意,posX变量被声明为Position对象,但尚未实例化,因此posX将具有空引用

更新: 没有真正为你做家庭作业,因为你不会那样学习。我可以告诉您,到目前为止,您所拥有的,以及上面javadoc中列出的内容并不一致。另外,考虑到javadoc的编写方式,很难理解,因此让我试着为您清理它,剩下的事情由您来做

/* Returns an array of n Positions. Each Position is initialized to a random
 * (x,y) position.
 * if n is less than zero, just return an empty array of length 0.
 * 
 * @param n
 *     number of Positions to create
 * @return array of newly created Positions
 */
现在我们可以分解javadoc了,让我们来确定我们所知道的

我们正在传递一个参数n,它指示位置数组应该有多大。 我们需要检查n是否等于0,如果是,则返回一个空位置数组。 每个位置对象都将使用随机的x和y值进行实例化。 我们知道我们需要返回一个位置数组。 这应该会让你开始,我相信你能解决剩下的问题

Position x = new Position(1.0, 2.0);
比如说。现在的方式是缺少方法参数

Position x = new Position(1d,2d);
比如说。现在的方式是缺少方法参数

Position x = new Position(1d,2d);
您需要传递构造函数参数。由于在Position类上定义了两个构造函数,因此必须使用其中一个。在类上放置一个不做任何事情的构造函数通常不是一个坏主意。像

Postion () {}
还是你的情况

Position () {
   Position.static++;
}
因为你在数数。注意,您应该静态引用静态成员

您需要传递构造函数参数。由于在Position类上定义了两个构造函数,因此必须使用其中一个。在类上放置一个不做任何事情的构造函数通常不是一个坏主意。像

Postion () {}
还是你的情况

Position () {
   Position.static++;
}

因为你在数数。注意,您应该静态引用静态成员。

在调用new时,不要忘记要传递到构造函数中的括号和参数,例如:

Position p = new Position(x, y);
根据其他类所在的位置,您可能还需要将Position设置为public类,因为您使用的是包private的默认可见性


还要注意,x和y必须首先初始化,

调用new时不要忘记要传递到构造函数中的括号和参数,例如:

Position p = new Position(x, y);
根据其他类所在的位置,您可能还需要将Position设置为public类,因为您使用的是包private的默认可见性


还要注意,x和y必须首先初始化,

构造函数接受参数,因此必须提供一些参数

Position p = new Position(1.0, -2.0);
如果要创建一个没有参数的构造函数,则需要添加一个零参数构造函数

public Position() {
}
然后通过执行Pos调用 ition p=新位置不传入参数时需要括号

如果不定义任何构造函数,java会自动创建一个隐含的零参数构造函数,但一旦定义了不同的构造函数,就必须显式定义一个零参数构造函数


如果两个类都在默认包中,则不需要导入任何内容。

构造函数接受参数,因此必须提供一些参数

Position p = new Position(1.0, -2.0);
如果要创建一个没有参数的构造函数,则需要添加一个零参数构造函数

public Position() {
}
然后通过执行Position p=new Position调用该函数。不传入参数时需要括号

如果不定义任何构造函数,java会自动创建一个隐含的零参数构造函数,但一旦定义了不同的构造函数,就必须显式定义一个零参数构造函数


如果两个类都在默认包中,则不需要导入任何内容。

Java已经有一个Point类。这对你来说可能太过分了,不过我还是要提一提


Java已经有了一个Point类。这对你来说可能太过分了,不过我还是要提一提


您可以发布导致错误的代码吗?请将Position设置为公共类,并确保调用它的内容在同一个包中,或者导入Position类。我们创建了一个公共静态int getNumpositions{方法,这就是我们应该使用的。所以当他说“返回一个num positions数组”时,他的意思是返回一个带有size numPositions的数组吗?我不知道你的家庭作业,但我把它理解为返回一个n数组,参数在positions中传递。当读取num positions时,听起来像是positions的数量,这让我很困惑关闭。您可以发布导致错误的代码吗?请将Position设置为公共类,并确保调用它的对象位于同一个包中或导入Position类。我们创建了一个公共静态int GetNumPositions{方法,这就是我们应该使用的。所以当他说“返回一个num positions数组”时,他的意思是返回一个带有size numPositions的数组吗?我不知道你的家庭作业,但我把它理解为返回一个n数组,参数在positions中传递。当读取num positions时,听起来像是positions的数量,这让我很困惑关