2015-02-08 86 views
0
class Test { 
    int a = 100; 
    System.out.println(a); 
} 
class Demo { 
    public static void main(String args[]) { 
     Test t = new Test(); 
    } 
} 

我是新手编程。我在练习时发现了这个代码。我不明白为什么我得到这个错误。为什么在类体中调用println方法时遇到编译错误? #Java

这是我收到的错误。

Demo.java:3: error: <identifier> expected 
System.out.println(a); 
       ^
Demo.java:3: error: <identifier> expected 
System.out.println(a); 
        ^
2 errors 
Compilation failed. 

你们能解释我为什么会遇到这个错误吗?

+1

当问“为什么这是一个错误?”问题,你应该总是发布实际的错误信息。 – 2015-02-08 04:05:26

+2

你为什么认为这条线不应该有错误? – 2015-02-08 04:05:28

+3

你认为什么时候应该执行'System.out.println(a);'?你为什么这么认为? – 2015-02-08 04:16:12

回答

2

您不能直接从java class body调用方法。

Test类创建一个构造函数,并把它的print

class Test { 
    int a = 100; 

    public Test() { 
     System.out.println(a); 
    } 
} 

请注意,如果由于某种原因,你真的想上课的时候不使用构造函数加载到执行的语句,你可以定义一个static块,这里一个例子:

class Test { 
    static int a = 100; 

    static { 
     System.out.println(a); 
    } 

} 

然而,这只是参考,真正在你的情况下,没有必要的。

+0

是的,这是因为代码需要在方法或构造函数中。但请注意,向构造函数添加具有副作用的代码(如将内容打印到屏幕上)并不是一个好习惯。 – immibis 2015-02-08 04:18:11

+0

@DhanukaLakshan我不是那种低估了你的问题的人。 – immibis 2015-02-08 04:28:10

+0

@immibis好的。无论如何谢谢你的支持。 – dnuka 2015-02-08 04:40:30

1

Declaring Classes在Java教程:

在一般情况下,类声明可以包括这些组件,依次是:

  1. 改性剂,如公共,私有,和许多其他的那你会在稍后遇到。

  2. 类名,首字母大写。

  3. 该类的父类(超类)的名称(如果有的话)以关键字extends开头。一个类只能扩展(子类)一个父类。

  4. 由类实现的以逗号分隔的接口列表(如果有)以关键字implements为先。一个类可以实现多个接口。

  5. 类体,被大括号包围{}。

你不能让任何函数调用的方法声明之外。

相关问题