在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的数量,这让我很困惑关