你可以这样理解:main()方法是不属于MyTest1的,他只是一个程序的执行入口
看清你的问题。
//为什么 没有MyTest1 m=new MyTest1();这句
System.out.println(b);就会编译错误??
那一句是System.out.println(m.b);
m.b表示对象m的成员变量b
MyTest1 m=new MyTest1();
创建对象,没有这一句那么Mytest1就没有对象,m也就不存在了
一个类里的非静态成员变量在没有实例化以前是不能够引用的
楼上的正确,把MyTest1提取出来,不要包到main函数里面