age不是类的属性吗?当然应该在类里面定义啊

解决方案 »

  1.   

    成员变量呀,当然要在类中定义了,方法中的叫局部变量,this在对象中指代当前对象,也可以用于指代构造函数
      

  2.   

    java中号称一切皆是对象,Person 就是抽象出来的对象原型。
    对象的属性,自然定义在类里面了,这样new 对象实例时,自然就带上了属性。
      

  3.   

    也就是说因为我在成员方法里调用了Person p这个类类型,所以定义的属性就要是成员属性!!
      

  4.   

    我编译了你的代码,发现没有错误。在Person类里为什么要定义age?这个是要看你的设计 ,一般定义在类里的变量,称为属性,因为在java里都是对象,所以这些变量是体现的对象的一些属性。
      

  5.   

    因为age是你定义的Person类的属性,而且你想给类的属性传值并用来比较,就必须定义在类Person的前面,因为当你执行主方法时,首先执行的就是类Person的构造方法,即给age赋值,所以定义在这最合适了。
    你定义在这个public boolean compare(Person p)方法里肯定会报错啊。原因就是上面说的。当执行构造方法的时候,找不到变量age,就说报找不到符号的错误。
    相信你明白了吧?
      

  6.   

    this指的是Person对象,如果去掉之后,定义在方法里,对象取不到的,因为是方法里的变量属于方法的,储存在JVM的栈中。如果都在的话,this.age取的是成员变量。
      

  7.   

    this表示当前person对象,当出现this.age时就说明age是一个成员变量,就一定要定义在方法外边哦!如果定义在方法里边,那么他的使用范围就只在方法内部,通过this是取不到的。