A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 王廷顺 于 2013-4-5 16:15 编辑

代码如下:
class Person
{
      private int age;

      public void setAge(int a)
      {
           if(a > 0 && a < 130)
           {
                        age = a;
               speak();
           }
           else
                   System.out.println("非法年龄");
      }
      public int getAge()
      {
            return age;
      }

      void speak()
      {
           System.out.println("age = "+age);
      }
}

class PersonDemo
{
      public static void main(String[] args)
      {
          Person p = new Person();
          //p.age = 20;
          p.setAge(-20);
         // p.speak();
      }

}
上边的代码中“private int age;”语句和“ age = a;
”语句中是不是同一个age,为什么?类中的成员变量和对象中的属性又是什么关系呢?

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1 新人加油

查看全部评分

3 个回复

正序浏览
class Person
{
      private int age;

      public void setAge(int a)
      {
           if(a > 0 && a < 130)
           {
                        age = a;
               speak();
           }
           else
                   System.out.println("非法年龄");
      }
      public int getAge()
      {
            return age;
      }

      void speak()
      {
           System.out.println("age = "+age);
      }
}

class PersonDemo
{
      public static void main(String[] args)
      {
          Person p = new Person();
          //p.age = 20;
          p.setAge(-20);
         // p.speak();
      }

}

代码中“private int age;”语句和 age = a;中的age表示的是同一个成员变量
因为成员变量是全局的,是可以这样写的。如果有局部变量 为了加以区分要在成员变量前加this来表示变量时成员变量
而不是局部变量
this.成员变量=局部变两;
对象就是类的具体实现,对象中属性其实就是类中成员变量的另一种叫法,其实是一样的。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
是同一个,楼上说的已经很清楚了。类的属性:数据成员(成员变量、属性、字段)  类的操作:方法成员(过程、函数)

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1 新人加油

查看全部评分

回复 使用道具 举报
上边的代码中“private int age;”语句和“age = a;”语句中是同一个age。因为在一个类中,定义属性的名称是不可以重复的。
假如方法的参数列表里有个同名的参数,那么我们常用this作为前缀来指明它是当前类或对象的成员变量,例如:
  1. person(int age) {
  2.       //左边的this.age代表当前类的属性age,右边的age代表此方法传入的一个名叫age的参数
  3.       this.age = age;
  4. }
复制代码
类中的成员变量和对象中的属性是同一个概念,也就是说,它们同一个东西,只是叫法不同罢了。
顺便说下,你一定要先弄清类和对象的概念和关系啊。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马