为什么11行显示错误呀

class Ca {
int a;
static int b;//定义一个静态整型属性b
public static void m1() {
Ca p=new Ca();
p.a=10;//把属性a赋值为10
b=10; //把属性b赋值为10
}
public static void m2()
{
a=5;
b=5;
}
public static void m3() {
m1();//调用m1()方法
Ca k=new Ca();
k.m2();
}
}
class Cb
{
public static void main(String[] args)
{
Ca s1=new Ca();
Ca s2=new Ca();
Ca.b=5;
s1.b=6;
s2.b=7;
System.out.println("Ca.b="+Ca.b);
System.out.println("s1.b="+s1.b);
System.out.println("s2.b="+s2.b);
}
}

你的m1 2 3 这三个方法都是静态方法,用static标识的方法都叫做静态方法,静态方法需要调用静态变量,你的b是静态变量,a不是,所以你要在a前面加上static