我们可以在java中使用类外的静态方法吗?
Posted
技术标签:
【中文标题】我们可以在java中使用类外的静态方法吗?【英文标题】:Could we use static method outside class in java [duplicate] 【发布时间】:2014-05-14 18:47:36 【问题描述】:我在java中为名为@987654323@的类定义了一个静态方法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中使用类外的静态方法吗?的主要内容,如果未能解决你的问题,请参考以下文章