“java类”;a「;当类为“时运行方法”;a「;创建

“java类”;a「;当类为“时运行方法”;a「;创建,java,class,object,Java,Class,Object,当类a被创建为对象时,如何运行“print()”方法?我想在“a obj=newa();”行之后运行“print()”方法 我的意思是,只调用类,而不是方法。它将在呼叫后立即运行 class a { public static void print() { System.out.println("Hey!"); } } public class MyClass { public static void main(Str

当类a被创建为对象时,如何运行“print()”方法?我想在“a obj=newa();”行之后运行“print()”方法

我的意思是,只调用类,而不是方法。它将在呼叫后立即运行

class a {

    public static void print() {
        System.out.println("Hey!");
    }
    

}


public class MyClass {
    public static void main(String[] args) {
        a obj = new a(); // I want to run print() method right after it

    }
}

我想如果这是某种奇怪的java拼图(你为什么不把
print()
放在构造函数中?),你可以把它放在一个初始值设定项中:

class a {
    { print(); }
    public static void print() {
        System.out.println("Hey!");
    }
}
我会把工作做完的。但这是一个非常愚蠢的想法——在类文件级别,无论是这样做还是将
print()
语句放入构造函数中,都是一样的。现在我们只是在挑剔语言特性

也许退一步。你有一些未知的问题。你想:我知道!我将以某种方式使此类对象的构造导致print方法运行,但不在构造函数中调用print!哦,但是,我该怎么做呢?最好这样问

那是错误的想法。因此,陈述未知的问题,而不是关于糟糕的“解决方案”的问题

注意:您还可以创建静态初始值设定项,例如:

class a {
    static { print(); }
    public static void print() {
        System.out.println("Hey!");
    }
}
现在print()实际上将在该构造函数之前运行。它也只会运行一次,这就是静态初始值设定项的要点:它们在你看到
a
类时运行(对它做任何事情),运行完之后,它们就再也不会运行了


你的问题很不清楚,所以我这里只是随便说说。

从构造函数调用?不调用*,我现在就编辑它。“不调用”是什么意思?您确实意识到这听起来像是在问如何让您的程序在不要求它做某事的情况下做某事。这毫无意义。如果软件在没有开发人员在源代码中调用上述方法的情况下调用方法,那将是非常奇怪的。如果没有任何附加的框架,您就无法在构造函数执行后立即自动运行代码。为什么不想在构造函数中进行调用呢?因为我想在能够访问类“a”中的变量之前执行该方法哇,太深了!很抱歉你这么想。不管怎样,你帮了我,谢谢。在访问变量之前,我必须学会运行一个方法,因为我想知道用户如何提交一个“密码”,然后才能访问代码