Java类问题,急救,急救!(菜鸟的小问题)(100分)

  • 主题发起人 主题发起人 fzzz_radium
  • 开始时间 开始时间
F

fzzz_radium

Unregistered / Unconfirmed
GUEST, unregistred user!
class Edge
{
public void setEdge(int[] point, int[] point1)
{
start = new int[3];
start[0] = point[0];
start[1] = point[1];
start[2] = point[2];
end = new int[3];
end[0] = point1[0];
end[1] = point1[1];
end[2] = point1[2];
}

public int[] getStart()
{
return start;
}
public int[] getEnd()
{
return end;
}
private int[] start;
private int[] end;
}
class cuboid
{
public cuboid(int x, int y, int z, int lx, int ly, int lz)
{
int i = 0, j = 0, k = 0;
point = new int[8*3];
edge = new Edge[12];
for (i = 0;i < 1;i++)
for (j = 0;j < 1;j++)
for (k = 0;k < 1;k++)
{
point[i*12 + j*6 + k*3 + 0] = x + lx*k;
point[i*12 + j*6 + k*3 + 1] = y + ly*j;
point[i*12 + j*6 + k*3 + 2] = z + lz*z;
}
j = 0;
for (i = 0;i < 7;i++)
if (point[i*3+1]==point[(i+1)*3+1])
{
int[] p;
int[] q;
p = new int[3];
q = new int[3];
p[0] = point[i*3+0];
p[1] = point[i*3+1];
p[2] = point[i*3+2];
q[0] = point[(i+1)*3+0];
q[1] = point[(i+1)*3+1];
q[2] = point[(i+1)*3+2];
edge[j].setEdge(p, q);
j++;
}
}
public int[] getPoint()
{
return point;
}
public Edge[] getEdge()
{
return edge;
}

private int[] point;
private Edge[] edge;
}
当生成 cuboid cuboid1 = new cuboid(50, 50 , 50 , 30 , 30 , 30);时
出现错误
问题在于,首先,要生成Edge类的实例数组是不是可以用 edge = new Edge[12]做?
其次,我调试时,发现edge[j].setEdge(p, q);这句运行时就出错,
注释掉就好了,为什么,但此句又不能少,为我的边表负值的啊
究竟怎么做啊?
多多指教!

我是一只java小菜鸟。
 
你可以这样做:
private Edge edge[]=new Edge[12];
private Edge temp=new Edge();
temp.setEdge(p, q);
edge[j]=temp;
 
注意:
edge = new Edge[12];
只是创建了一个数组,此时数组的内部成员都是null,你必须对它们初始化。
加入一行
edge[j]=new Edge();
edge[j].setEdge(p, q);
 
多人接受答案了。
 
后退
顶部