我试图理解为什么这不会运行。我想我可能需要导入一个包。我还想知道myObject.f()行上的LocalVariables类会发生什么。
我认为我刚刚在前一行实例化了myObject,但是我用myObject.f()调用了f方法; ?????我不明白该行应该发生什么 任何帮助将不胜感激。
class MyObject{
static short s = 400; //static variable
int i = 200; //instance variable
void f() {
System.out.println("s = " + s);
System.out.println("i = " + i);
short s = 300; //local variable
int i = 100; //local variable
double d = 1E100; //local variable
System.out.println("s = "+s);
System.out.println("i = " +i);
System.out.println("d = " + d);
}
}
class LocalVariables{
public static void main(String[] args){
MyObject myObject = new MyObject();
myObject.f();
}
}
答案 0 :(得分:1)
是的,您正在调用f()
方法。因此,控制流将跳转到f()
函数的顶部并逐个执行这些语句。
一旦完成,它将返回main
方法,从它停止的地方继续。这并不意味着什么,因为myObject.f()
是最后一行,但如果你有更多的代码,那么一旦f()
方法返回就会执行。
答案 1 :(得分:0)
执行此操作应该打印几行
s = 400
i = 200
s = 300
i = 100
d = <something>
您的输出中是否出现过这种类型的内容?
答案 2 :(得分:0)
change void f() to public void f() { //Code... }