java为什么类体中不能创建对象并调用方法??

import java.util.*;

public class TestMap{
String s;
public static void main(String args[]){
TestMap tt=new TestMap();
System.out.println(tt.s);
}

Map map=new HashMap();
map.put(1,"wumin");
map.put(2,"donghuan");
map.put(3,"dong");

String s=(String)map.get(1);

}

报错如下:

D:\用户目录\桌面\java\contains\TestMap.java:21: 错误: 需要<标识符>
map.put(1,"wumin");
^
D:\用户目录\桌面\java\contains\TestMap.java:21: 错误: 非法的类型开始
map.put(1,"wumin");
^
D:\用户目录\桌面\java\contains\TestMap.java:21: 错误: 非法的类型开始
map.put(1,"wumin");
^
D:\用户目录\桌面\java\contains\TestMap.java:22: 错误: 需要<标识符>
map.put(2,"donghuan");
^
D:\用户目录\桌面\java\contains\TestMap.java:22: 错误: 非法的类型开始
map.put(2,"donghuan");
^
D:\用户目录\桌面\java\contains\TestMap.java:22: 错误: 非法的类型开始
map.put(2,"donghuan");
^
D:\用户目录\桌面\java\contains\TestMap.java:23: 错误: 需要<标识符>
map.put(3,"dong");
^
D:\用户目录\桌面\java\contains\TestMap.java:23: 错误: 非法的类型开始
map.put(3,"dong");
^
D:\用户目录\桌面\java\contains\TestMap.java:23: 错误: 非法的类型开始
map.put(3,"dong");
^
9 个错误
<<< Process finished. (Exit code 1)
================ READY ================

java不支持,直接将语句写在类体中。而且,OOP就是为了对象调用相应方法。这些语句应该写在一个方法里面。

可能和jdk版本有关,低版本只支持对象,不能用int做key,用"1"就好了

可以用构造块
{ // 加上
Map map=new HashMap();
map.put(1,"wumin");
map.put(2,"donghuan");
map.put(3,"dong");

String s=(String)map.get(1);
} //加上

用花括号括起来

详细:http://www.cnblogs.com/lzhp/archive/2013/06/06/3121315.html

这语句没在方法里,或者代码块里面就会报错

我知道有一种成员内部类,外部类可以创建对象调用内部类的成员和方法。