什么是正确的方法调用?

时间:2015-09-23 02:27:23

标签: java methods

抱歉,我只是在学习Java的基础知识。

如果我的标题是:

public static int bar(int j, ArrayList<String> arr)

这些是否是调用该方法的正确方法?

int bar(j, arr);
bar(int j, ArrayList<String> arr);
int bar(int j, ArrayList<String> arr);
int i = bar(j, arr);

1 个答案:

答案 0 :(得分:1)

首先,对于您的4个示例,其中只有一个是方法调用。

int i = bar(j, arr);

对于这个特定的调用,它在很大程度上取决于你调用方法的上下文。例如,如果你有一个简单的类Test和类中的方法,你可以像这样调用它。 / p>

package test;

public class Test {

    public static int bar(int j) {
        return j + 2;
    }

    public static void main(String[] args) {
        int a = bar(0); // a = 2
    }

}

但是,假设您尝试从同一个包中的其他类调用它。

package test;

public class TestTwo {

    public void foobar()
    {
        int a = bar(0); // error.
    }

}

您现在必须指定您所指的bar

int a = Test.bar(0); // a = 2

但是,如果您还可以使用static import作为blm提及。

添加类似

的内容
import static test.Test.bar;

您可以再次使用bar拨打bar()

但请注意,如果bar不是static,那么您将处于完全不同的情况。

假设我们的方法foo不是static

package test;

public class Test {

    public int foo(int i) {
        return i + 1;
    }

    public static void main(String[] args) {
        int i = foo(1); // error
    }

}

您必须通过创建foo的新实例来致电Test

int i = new Test().foo(1); // 2