Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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_Console_Println - Fatal编程技术网

我们可以在控制台上打印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