该怎么解决下面的两个问题?

题目要求的调用m2方法的代码不会写(是要在静态方法中间接调用非静态方法吗?不是很会)还有s1.b=6那里,s1报错,要怎么改啊?

 

package tyyt;
class Ca
{
    int a;
    static int b;    //定义一个静态整型属性b
    public static void m1()
    {
        int a=10;    //把属性a赋值为10
        b=10;    //把属性b赋值为10
    }
    public void m2()
    {
        a = 5;
        b = 5;
    }
    public static void m3()
    {
        Ca.m1();    //调用m1()方法
                          //调用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);    //显示Ca.b的值
        System.out.println("s1.b的值是"+s1.b);    //显示s1.b的值
        System.out.println("s2.b的值是"+s2.b);    //显示s2.b的值
    }
}
 

1.静态中使用非静态,要通过对象去调用,new Ca().m2()

2.报错应该是修饰词的原因,这里写成public