你把一个.method放在一个物体后会发生什么?

时间:2010-09-30 15:36:39

标签: java

我试图理解为什么这不会运行。我想我可能需要导入一个包。我还想知道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();
    }
}

3 个答案:

答案 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... }