system.out.println语句在java中的任何方法之外

时间:2013-09-13 21:22:35

标签: java main

我的问题是我们不能在java之外写一个输出声明吗?如果我将它括在{}括号中,那么我不会得到错误,但如果我直接写它,我会收到错误。为什么呢?

public class abc 
{ 
   int a=3; 
   int b=0; 
   System.out.println("this statement gives error"); //Error!! 
   {System.out.println("this works fine");} 
   public static void main(String args[]) {

   System.out.println("main"); 
      abc t=new abc();
   }
} 

我尝试用main编写它,它有效。如果没有方法,它为什么不起作用?

3 个答案:

答案 0 :(得分:8)

将它括在大括号中时,将它放在初始化块中,该块在实例化类时运行。除变量声明/初始化之外的任何语句都不能在Java中的方法或初始化块之外进行。

答案 1 :(得分:4)

Class只能有属性或方法。

class是创建单个对象的蓝图。

    int a=3;   // attributes
    int b=0;   // attributes
    System.out.println("this statement gives error"); //Error!! 

    {System.out.println("this works fine");}  // init block whenever an object is created.
                                              // since it is inside { }

答案 2 :(得分:3)

它被称为instance initializer。每次创建实例对象时,它都会在构造函数之外运行。

还有另一种类型的块称为Static Initializer,它是在{}之前添加静态关键字时的。此静态初始化程序仅在首次加载类时运行。

因此,您可以在这两个块和类成员函数中编写代码。

除此之外,剩下的唯一地方是用于类数据成员声明和初始化。