我是Java课程的学生,今天学习了一些关于Java的东西,这使得我的设备转向了.当我问老师如何以及为什么时,他不确定这种行为.谁能解释为什么以下示例有效?
class Example {
public int ex_val;
public Example (int a) {
this.ex_val = a;
}
public int getExVal () {
return this.ex_val;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我要在另一个类的方法中创建一个"Example"实例并"返回"该对象,它可以成功地跳出它的原始范围并随后使用.
class ParentObject {
// Instance Variables
public Example a;
public ParentObject (int number) {
// Initialize instance variable object from out-of-scope instantiation
this.a = genExample(number);
// Verify scope creep
System.out.println(this.a.getExVal());
}
public Example genExample (int a) {
return new Example(a);
}
}
Run Code Online (Sandbox Code Playgroud)
这可行,但这种行为是否稳定?我可以指望这个吗?垃圾收集器可以在一个方法的return语句和调用函数的赋值语句之间跳转吗?我是否根据操作系统的JVM版本运行失败风险?如果可以依赖它,这似乎是方便的功能.
| 归档时间: |
|
| 查看次数: |
7289 次 |
| 最近记录: |