我们可以在java中使用类外的静态方法吗?

Posted

技术标签:

【中文标题】我们可以在java中使用类外的静态方法吗?【英文标题】:Could we use static method outside class in java [duplicate] 【发布时间】:2014-05-14 18:47:36 【问题描述】:

我在java中为名为@9​​87654323@的类定义了一个静态方法f

我也可以在课堂外使用它作为a.f 吗?

或者我们只能将它用作类中的帮助功能?

【问题讨论】:

请发布您到目前为止所尝试的内容。 如果是public,或者包私有并且你在同一个包中。 docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html 另请注意,通过反射,您几乎可以访问任何东西,甚至是私有方法。 【参考方案1】:

如果那是public static 方法,您可以在课堂外的任何地方使用它。

如果这是包私有(默认),那么您只能在该包中使用它。

【讨论】:

【参考方案2】:

...我也可以在课堂外使用它作为 a.f 吗?

是的。如果声明为public,则可以使用静态方法:

public static void f() 
    // ...

或者如果它是 package-private(无修饰符):

static void f() 
    // ...

【讨论】:

【参考方案3】:

标记方法Public 将使它可以在任何你想要的地方访问。

标记Protected 方法将使其在同一个包和子类中可访问 标记方法没有保留它default(无修饰符)将使其在同一个包中可见

无论你在哪里尝试访问你的方法只要确保你的类也在那里可见!

希望这会有所帮助! 万事如意

【讨论】:

以上是关于我们可以在java中使用类外的静态方法吗?的主要内容,如果未能解决你的问题,请参考以下文章

我们可以在抽象类中使用静态方法吗?

Php 类中如何调用类外的变量

java中静态变量和静态方法的优缺点

C++中类里面定义 静态成员变量的问题

我可以在 Java 中覆盖和重载静态方法吗?

java 静态方法可以重载吗重写呢