Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我想打印“我想打印”;“你好”;甚至在执行main()之前_Java - Fatal编程技术网

Java 我想打印“我想打印”;“你好”;甚至在执行main()之前

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

我想在Java程序中执行
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