对于这门课程,
class Person {
int age;
public Person(int age) {
this.age = age;
}
}
在我的教科书中,作者告诉我,写年龄=年龄也可以替换this.age = age。
他说,如果参数和数据成员具有相同的名称,则赋值符号的左侧将被视为类的数据成员,右侧是参数。
我的计算机上安装了jdk1.7,而age = age等代码没有效果。哪个版本的Java有用呢?
答案 0 :(得分:4)
这本书出了问题,应予以更换。使用不同的书。 age = age
永远不会产生任何影响,并希望产生编译器警告。
答案 1 :(得分:4)
他说,如果参数和数据成员具有相同的名称,则赋值符号的左侧将被视为类的数据成员,右侧是参数。
这在Sun / Oracle发布的任何Java版本或任何符合任何Java语言规范版本的语言中都无效。
请提供您发现此声明的图书的名称和作者。
答案 2 :(得分:3)
我从未见过这个。至少我确信Java 1.4在这方面与1.7相同。
坚持使用:
this.age = age;
也许教科书引用了这种情况,因为这样可行。由于没有本地变量age
,因此会将customAge
分配给类字段age
:
class Person {
int age;
public Person(int customAge) {
age = customAge;
}
}