就是说,你在类里无法引用对象里的东西。
静态方法是属于类的,而非静态方法则属于类的实例,也就是对象的,属于两个范围,所以不能直接引用。
具体到你的这段代码,Test1类里的a(),b()方法要在main里调用,应该先生成Test1的一个实例对象,也就是要先Test1 t = new Test1(),然后用t.a(),t.b()来调用。
或者你把这两个方法也改成静态方法就可以在main里直接调用(在public void间加static)。
建议你补一下面向对象基础知识。
public static void main()是静态函数,根据静态函数的定义,静态方法不再是针对于某个对象调用,所以不能访问非静态成员,而 public void a() 属于非静态方法,不能在main中调用,如果需要调用,可以给a()函数加上static 修饰符
你把a()方法和b()方法修改添加一个static就能直接调用a()和b()了。
否则你只能用Test1.a();和Test1.b();
或者new这个对象调用也行。Test1 t=new Test1();
t.a();
t.b();
至于为什么不能直接调用,就像楼上两位说的。