class Demo{
static {
System.out.print("Hello");
}
}
public class A{
public static void main(String[] argc){
Demo demo = new Demo();
}
}
Q1。我们可以编译这个java类吗? 注意,我们在这个类中没有main方法。 Q2。有什么方法可以打印出类中的“Hello”消息吗?
答案 0 :(得分:3)
Q1。我们可以编译这个java类吗?请注意,我们在此课程中没有主要方法。
是的,那个类应该编译。没有要求在每个类中都需要main
方法来编译它。 (你的大部分课程都没有自己的main
方法。)
Q2。我们有什么方法可以打印消息"你好"哪个在课堂上?
是的,您可以在另一个具有main
方法的类中加载该类。当您的班级加载时,将执行static initializer block,并且将打印该信息。
答案 1 :(得分:1)
当类加载器加载类时将打印。
更多信息:
这个类没有任何意义,因为它不会运行任何东西。但是,如果在通过类加载器加载类时调用静态块,则可能仍然存在另一个引用此类的类 - 这将发生demo
将由类加载器加载并执行静态块。
答案 2 :(得分:1)
由于没有sytax错误,因此这将是complile。但是,java程序的执行以main方法开始。由于您没有main方法,因此无法运行System.out.println方法。
答案 3 :(得分:0)
我们可以编译这个java类吗?
是
注意我们这个类中没有main方法。
Main是任何程序的起点,需要实际运行它
Is there any way we can print the message "Hello" which is there in the class?
当你使用静态块时,这将在类加载时打印。所以你的程序就足够了,但会加载类
答案 4 :(得分:0)
此代码不能在Java 7上运行.Java 7在初始化类之前检查是否存在main方法。它适用于Java 6。
BTW在Windows机器上试试这个
创建一个名为A.java的文件
class Con {
static String hi = "\n\nHello World!\n\n";
}
然后编译它
javac A.java
看看会发生什么!! ;)