首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java基础静态方法

java基础静态方法
EN

Stack Overflow用户
提问于 2009-08-29 18:14:57
回答 9查看 545关注 0票数 1

是否可以在构造类的单个实例之前调用静态方法?

EN

回答 9

Stack Overflow用户

发布于 2009-08-29 18:17:45

当然,这是静态方法的目的

代码语言:javascript
复制
class ClassName {

     public static void staticMethod() {

     }
}

为了调用静态方法,您必须导入类:

代码语言:javascript
复制
import ClassName;
// ...
ClassName.staticMethod();

或者使用静态导入(Java 5或更高版本):

代码语言:javascript
复制
import static ClassName.staticMethod;
// ...
staticMethod();
票数 11
EN

Stack Overflow用户

发布于 2009-08-29 18:17:50

是的,这正是静态方法的作用所在。

代码语言:javascript
复制
ClassName.staticMethodName();
票数 2
EN

Stack Overflow用户

发布于 2009-08-29 18:35:38

正如其他人已经建议的那样,在不(之前)创建实例的情况下调用类上的静态方法绝对是可能的--这就是单例的工作方式。例如:

代码语言:javascript
复制
import java.util.Calendar;
public class MyClass 
{
    // the static method Calendar.getInstance() is used to create 
    // [Calendar]s--note that [Calendar]'s constructor is private
    private Calendar now = Calendar.getInstance();
}

如果您的意思是“是否可以在初始化第一个对象之前自动调用特定的静态方法?”,请参见下面的内容:

代码语言:javascript
复制
public class MyClass
{
    // the static block is garanteed to be executed before the
    // first [MyClass] object is created.
    static {
        MyClass.init();
    }

    private static void init() {
        // do something ...
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1352028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档