可以,比如:
Chair kk=new Chair();
....
.. kk.aMethod();
Chair kk=new Chair();
kk.anotherMethod();//这儿 的 kk 和上面的是不一个对象
Chair kk=new Chair();
....
.. kk.aMethod();
Chair kk=new Chair();
kk.anotherMethod();//这儿 的 kk 和上面的是不一个对象
解决方案 »
- java日历简单问题
- qq有消息 时 Scroll Lock 灯闪烁
- 请大家帮我看看(我也不知道是哪方面的问题)
- 外国人是怎么开发软件的?是在什么系统下、用什么工具开发的多些?
- 2只女菜鸟在树上等你呢!
- 我想做一个 登录的窗体?
- 各位虾哥虾妹:偶是新手,想请教什么地方有关于程序设计的练习题目之类的网站,越多越好,偶想多练习一下,可惜找不到题目,如果有买的书也行,谁给推荐一本。
- 各位高手好,我是菜鸟,有一问题,请帮忙!!谢谢
- JAVA应用程序中使用jdbc-odbc bridge与jdbc有什么区别?它们在分发应用方面有什么区别
- 急 jstl怎么遍历list啊?
- 在applet中,怎么在面板上绘图呢?用滚动轴怎么控制?
- 诚聘Java工程师(Junior and Senior)
for(int j=0;j<3;j++){
Chair kk= new Chair();
System.out.println(kk.i);//i是Chair中的变量
}
中可以执行,为什么
Chair kk=new Chair();
System.out.println(kk.i);
Chair kk=new Chair();
System.out.println(kk.i);就不行?
{
Chair kk= new Chair();
System.out.println(kk.i);//i是Chair中的变量
//kk被收集,因为到了"}"
}循环一次kk就被清掉一次(垃圾收集)
System.out.println(kk.i);
Chair kk=new Chair();
System.out.println(kk.i);因为变量的作用域不一样改成
{Chair kk=new Chair();
System.out.println(kk.i);
}
Chair kk=new Chair();
System.out.println(kk.i);
或
Chair kk=new Chair();
System.out.println(kk.i);
kk=new Chair();
System.out.println(kk.i);
就可以。
for循环里面定义的变量范围只是在for循环里面,所以每次循环都是一个不同的临时变量。
你后面的代码,等于是在一个空间里面定义了两个同名的变量,当然不行了(任何语言里都不行)
建议你去看看变量的作用域。
for(int j=0;j<3;j++)
{
Chair kk= new Chair();
System.out.println(kk.i);//i是Chair中的变量
//kk被收集,因为到了"}"
}循环一次kk就被清掉一次(垃圾收集)
****************
kk被收集了吗?
我看过一个程序:
在这样一个循环中
while(!Chair.f) {
new Chair();
}
Chair.f是在finalize()中变成的true。在这个程序中,new Chair()了2903次后,java才开始调用垃圾回收器。kk应该是对象的句柄吧?当用new分配后,每个对象都有独立的储存空间和各自的句柄,如果不加{}则创建的句柄就不是唯一的。我是这样理解的,不知道对不对?唉,最近看Thingk in java都看傻了,变得爱钻牛角尖了。
v.add(new Chair());
v.add(new Chair());(Chair()v.elementAt(0)).method();