一个基础练习题,菜鸟不会求高手解惑!Java code class HeapQuiz {int id 0/*** @param args*/public sta
一个基础练习题,菜鸟不会求高手解惑!
- 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方法的启动类来测试它
