system.out.println语句位于java中任何方法之外

system.out.println语句位于java中任何方法之外,java,main,Java,Main,我的问题是,我们不能用java在main之外编写输出语句吗?如果我把它括在{}大括号中,那么我不会得到错误,但是如果我直接写它,我会得到错误。为什么会这样 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

我的问题是,我们不能用java在main之外编写输出语句吗?如果我把它括在{}大括号中,那么我不会得到错误,但是如果我直接写它,我会得到错误。为什么会这样

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来写,效果不错。为什么没有方法它就不能工作?

当你用大括号括起来时,你把它放在初始化程序块中,初始化程序块在类实例化时运行。在Java中,除了变量声明/初始化之外,任何语句都不能发生在方法或初始化块之外。

A
Class
只能有属性或方法

A是创建单个对象的蓝图

    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 { }
它被称为一个。每次创建实例对象时,它都会与构造函数一起运行

在{}之前添加静态关键字时,还有另一种类型的块被称为。此静态初始值设定项仅在类首次加载时运行

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


除此之外,剩下的唯一位置是类数据成员声明和初始化

{…}
语法实际上与将其放在类的构造函数中是一样的。这意味着您需要更多地了解java的基础知识,如果您需要有关java基础知识的任何解释,请随时询问askI,我们不知道为什么人们会再次回答“为什么”问题。为什么我们不能?不知道为什么你不能什么?许多“为什么”问题的答案是“因为语言就是这样设计的”