Java 我想打印“我想打印”;“你好”;甚至在执行main()之前
我想在Java程序中执行Java 我想打印“我想打印”;“你好”;甚至在执行main()之前,java,Java,我想在Java程序中执行main()之前打印“Hello”。有什么方法可以做到这一点吗?您需要的是一个静态关键字。其中一个选项是使用静态函数作为静态变量的初始值设定项 class Main { public static int value = printHello(); public static int printHello() { System.out.println("Hello"); return 0; } public static void ma
main()
之前打印“Hello”
。有什么方法可以做到这一点吗?您需要的是一个静态
关键字。其中一个选项是使用静态函数作为静态变量的初始值设定项
class Main {
public static int value = printHello();
public static int printHello() {
System.out.println("Hello");
return 0;
}
public static void main(String[] args) {
System.out.println("Main started");
}
}
value
是一个静态变量,因此在执行main
函数之前初始化。此程序打印:
Hello
Main started
此外,您甚至可以通过调用printHello()
来简化此过程,即使没有变量初始化,如下所示:
static {
printHello();
}
使用静态块:
static {
System.out.println("hello");
}
public static void main(String[]args) {
System.out.println("After hello");
}
输出:
hello
after hello
输出
Hello
Inside Main
在静态代码块中打印语句。静态块在类加载到内存中时甚至在创建对象之前执行。因此,它将在main()方法之前执行。并且它将只执行一次。除了使用静态块之外,您还可以尝试插装和premain 公共类示例{
static {
System.out.println("Hello first statement executed first ");
}
public static void main(String[] args) {
System.out.println("Main started");
}
}
还有一种方法:
class One{
public One() {
System.out.println("Before main");
}
}
class Two extends One{
public Two() {
super();
}
public static void main(String[] args) {
Object abj = new Two();
System.out.println("in the main");
}
}
在运行配置中,类2将是主类
import java.io.*;
class ABCD {
public static int k= printit();
public static int printit(){
System.out.println("Hello it will be printed before MAIN");
return 0;
}
public static void main (String[] args) {
System.out.println("Main method is Executed");
}
}
静态变量是在程序开始执行时初始化的。因此,要初始化它,将调用将要执行的printit();函数和“Hello,它将在打印MAIN之前打印”,最后一个函数将返回值“0”,最后在执行此主块之后
最终输出:
Hello it willl be printed before MAIN
Main method is Executed
在包含
main
的类中使用一个静态块。只是好奇或者需要完成一些真正的功能需求?@Nambari这是完全可能的。他从来没有说过他根本不想让main执行。我非常想回答这个问题,并获得宝贵的反转徽章的机会,但却重复了我的符文life@NullPoi这根本不是重复,他从来没有说他不想要一个主方法。因为我写了同样的,也同意我的答案:+1。简单而简短,没有方法这是我在寻找的答案,对于我的应用程序,因为我知道静态技巧,但我想在那之前运行一些东西。谢谢提示。如果我在Object cr之前写一个打印语句如果在主函数中使用两个类,则这将不起作用。例如:System.out.println(“第一行”);Object abj=new Two();
请更新您的答案,以解释此代码块如何解决问题。
Hello it willl be printed before MAIN
Main method is Executed