import java.util.*;
class Cat
{
String name;
int age;
float size;
int times;
public void miaow(int times)
{
      
  
 
  Scanner input=new Scanner(System.in);
  times=input.nextInt();
   System.out.println("这只小猫咪叫了"+times);
} public static void main(String[] args)
{
Cat cat=new Cat();
cat.age=10;
cat.name="xiaohuamao";
cat.size=1.01f;
cat.miaow(times); }
}
打红线的部分,我这么写不对,为什么一定要写成  cat.miaow(cat.times);    请给我详细讲下这个问题,谢谢各位了。

解决方案 »

  1.   

    public static void main(String[] args)
    是静态方法,不能引用非静态的成员times(如:cat.miaow(times);)
    如果
    int times;
    改成
    static int times;
    cat.miaow(times);就没有问题
      

  2.   

    这里的times和Cat里的times根本不一样,如果要你这样写,就必须声明一个times变量,或者实例化Cat类,然后调用属性times。没有没有实例,没有声明变量,它不知道你用的times是啥,甚至连times的类型是啥都不知道
      

  3.   

    times是对象的属性,你在MAIN方法里面必须要用对象.属性的方式调用。另外你的miaow方法参数可以不用传,因为你是在控制台输入的,而且你也没给属性times赋值。
      

  4.   

    public static void main(String[] args)
    是静态方法,不能引用非静态的成员times(如:cat.miaow(times);)
    如果
    int times;
    改成
    static int times;
    cat.miaow(times);

    这里的times和Cat里的times根本不一样,如果要你这样写,就必须声明一个times变量,或者实例化Cat类,然后调用属性times。
      

  5.   

    public static void main(String[] args)
    是静态方法,不能引用非静态的成员times(如:cat.miaow(times);)
    都已经很明白了,结贴吧