Java 对象数组返回Null
我刚刚开始在处理中使用对象数组。我使用Java 对象数组返回Null,java,processing,Java,Processing,我刚刚开始在处理中使用对象数组。我使用 Mass[] masses = new Mass[n]; 但是,这将返回一个空数组。 这是我的密码: float dt = 1; int n = 10; Mass[] masses = new Mass[n]; void setup(){ size(1000, 1000); background(0); for (Mass mass : masses) { mass.initialize();//null point excepti
Mass[] masses = new Mass[n];
但是,这将返回一个空数组。
这是我的密码:
float dt = 1;
int n = 10;
Mass[] masses = new Mass[n];
void setup(){
size(1000, 1000);
background(0);
for (Mass mass : masses) {
mass.initialize();//null point exception here
println("done");
}
frameRate(1000);
}
void draw(){
for (Mass mass : masses) {
mass.update();
mass.dr();
}
println(frameRate);
}
我的类定义如下:
class Mass {
float x=0; //xpos
float y=0; //ypos
float vx=0; //xvel
float vy=0; //yvel
float ax=0; //xacc
float ay=0; //yacc
void initialize(){
x = random(0, width);
y = random(0, height);
vx = random(0, 1);
vy = random(0, 1);
}
void update(){
float r = sqrt(sq(x-width/2)+sq(y-height/2));
float xcomp = ((width/2)-x)/r;
float ycomp = ((height/2)-y)/r;
float str = 200;
ax = str*xcomp/sq(r);
ay = str*ycomp/sq(r);
x = x + vx*dt + 0.5*ax*sq(dt);
y = y + vy*dt + 0.5*ay*sq(dt);
vx = vx + ax*dt;
vy = vy + ay*dt;
}
void dr(){
stroke(255);
point(x, y);
}
}`
如果你能帮我,我会很高兴的。你已经创建了一个数组,但没有创建数组中的对象。构造新对象:
void setup(){
// [...]
对于(int i=0;i
但是,我建议删除
initialize
方法,但实现构造函数:(见附件)
void setup(){
// [...]
对于(int i=0;i
类质量{
// [...]
//ValueIrimalIZE(){@ HarshavardhanReddyNareddula:请阅读并考虑您发现最有用的。