我们可以在控制台上打印java消息而不使用main方法、静态变量和静态方法吗?
除此之外,我们还可以以任何其他方式打印消息。当然可以,例如,从我们可以在控制台上打印java消息而不使用main方法、静态变量和静态方法吗?,java,console,println,Java,Console,Println,除此之外,我们还可以以任何其他方式打印消息。当然可以,例如,从类构造函数、方法或实例块 但是,如果您正在谈论使用命令行启动一个简单的程序(例如,java-jarmyprogram),您仍然需要在main方法中实例化实例代码打印到控制台所在的类 例如,对于给定的类Foo: public class Test { /** * @param args */ // 1st way public static void main(String[] args) { // TODO Auto-
类
构造函数、方法或实例块
但是,如果您正在谈论使用命令行启动一个简单的程序(例如,java-jarmyprogram
),您仍然需要在main
方法中实例化实例代码打印到控制台所在的类
例如,对于给定的类
Foo
:
public class Test {
/**
* @param args
*/
// 1st way
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Test....!!!!!");
}
// 2nd way
static{
System.out.println("Test....!!!!!");
System.exit(1);
}
// 3rd way
private static int i = m1();
public static int m1(){
System.out.println("Test...!!!!");
System.exit(0);
return 0;
}
。。。现在从main
类的main
方法:
public class Foo {
// Initializer block Starts
{
System.out.println("Foo instance statement");
}
// Initializer block Ends
public Foo() {
System.out.println("Foo ctor");
}
public void doSomething() {
System.out.println("something done from this Foo");
}
}
输出:
public static void main(String[] args) {
new Foo().doSomething();
}
我认为从Java7开始,您的第二种方法将不会打印(我们称之为静态块,而不是方法)@Nambari您为什么这么说?!问题还不清楚。你的意思是不使用
main()
#2和#3不起作用,除非调用了某个main()
方法加载了包含此类声明的类。@BoristheSpider:前几天在静态块中有一个关于System.out的有趣问题(假设没有主方法,只有程序中的静态块,并尝试运行它。它的运行速度低于Java7)。亲爱的Sean Owen,我想问的是,有没有办法在控制台上打印一条简单的消息。在不使用静态方法、静态变量、静态块和main()的情况下,您能进一步说明System.out.println(“Foo实例语句”)是如何实现的吗;“正在工作。我们每次创建这个类的对象时都会执行它吗?”算法学家举例说。每一个Foo
的新实例都会执行instance语句。但它的工作原理,既不是构造函数的一部分,也不是其他任何东西,它只是一个简单的块。@算法师比我更清楚地告诉它。解释在页面底部,带有实例成员初始化部分。@Mena是否使用Foo.class.newInstance()
?还是其他基于反射的方法?
Foo instance statement
Foo ctor
something done from this Foo