黑马程序员技术交流社区
标题:
类中定义的成员变量就是对象中的属性吗,为什么?
[打印本页]
作者:
王廷顺
时间:
2013-4-5 12:00
标题:
类中定义的成员变量就是对象中的属性吗,为什么?
本帖最后由 王廷顺 于 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,为什么?类中的成员变量和对象中的属性又是什么关系呢?
作者:
刘焕新
时间:
2013-4-5 12:59
上边的代码中“private int age;”语句和“age = a;”语句中是同一个age。因为在一个类中,定义属性的名称是不可以重复的。
假如方法的参数列表里有个同名的参数,那么我们常用this作为前缀来指明它是当前类或对象的成员变量,例如:
person(int age) {
//左边的this.age代表当前类的属性age,右边的age代表此方法传入的一个名叫age的参数
this.age = age;
}
复制代码
类中的成员变量和对象中的属性是同一个概念,也就是说,它们同一个东西,只是叫法不同罢了。
顺便说下,你一定要先弄清类和对象的概念和关系啊。
作者:
jiangnan
时间:
2013-4-5 14:26
是同一个,楼上说的已经很清楚了。类的属性:数据成员(成员变量、属性、字段) 类的操作:方法成员(过程、函数)
作者:
田光峰
时间:
2013-4-5 14:29
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.成员变量=局部变两;
对象就是类的具体实现,对象中属性其实就是类中成员变量的另一种叫法,其实是一样的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2