一个基础练习题,菜鸟不会求高手解惑!
Java code
class HeapQuiz {
int id = 0;
/**
* @param args
*/
public static void main(String[] args) {
int x = 0;
HeapQuiz[] hq = new HeapQuiz[5];
while(x<3){
hq[x] = new HeapQuiz();
hq[x].id = x;
x = x+1;
}
hq[3] = hq[1];
hq[4] = hq[1];
hq[3] = null;
hq[4] = hq[0];
hq[0] = hq[3];
hq[3] = hq[2];
hq[2] = hq[0];
// TODO 自动生成方法存根
}
}
题目要求引用变量hq[0],hq[1],hq[2],hq[3],hq[4]和堆对象id=0,id=1,id=2哪个几个是相对应起来的?
我不明白ID=1,2是怎么来的?因为id根本就没有增加过啊。
这里面貌似就hq[0].id=0,hq[1].id=1,hq[2].id=2,其中id始终没有变过。
还有我看的书里面经常有这样2个不同的定义方式
Java code
class a{
int x;
public static void main(){
}}
Java code
class a{
public static void main(){
}
}
class b{
int x;
}
这2个有啥不同的?
运行起来也不一样,烦躁啊。书上又不说清楚,有时候搞的我都不知道哪个是哪个,怎么用了。
求高手解惑。谢谢。
------解决方案--------------------
题目要求引用变量hq[0],hq[1],hq[2],hq[3],hq[4]和堆对象id=0,id=1,id=2哪个几个是相对应起来的?
hq[0] -- null
hq[1] -- id 1
hq[2] -- null
hq[3] -- id 2
hq[4] -- id 0
我不明白ID=1,2是怎么来的?因为id根本就没有增加过啊。
x = x+1 ;这里递增的
这里面貌似就hq[0].id=0,hq[1].id=1,hq[2].id=2,其中id始终没有变过。
hq[x].id = x; //这里的id=x,而x在上面说的地方递增,所以相当于id递增
这2个有啥不同的?
运行起来也不一样,烦躁啊。书上又不说清楚,有时候搞的我都不知道哪个是哪个,怎么用了。
第一种只有一个类,它有一个属性,并且带有一个main方法
第二种有两个类,第一个是带有main方法的类,第二个类是带有一个属性的类,相当于第一种的分解,即把第一种的main方法写到一个单独的类
运行起来,当然是以主类名为启动类,所以稍微不同
第一种一般是开发一个类为了方便直接在该类写个main方法作为测试
第二种一般是正式用的类,不带main方法,用另一个带main方法的启动类来测试它