关于java对象属性的访问

项目场景:

IntelliJ IDEA


问题描述:

当方法中参数名和类的属性名相同时,无法给属性赋值。

关于java对象属性的访问
关于java对象属性的访问

上图中我们通过调用setname()的方法给对象h赋了名字,但是最后打印出的结果却是null,这说明赋值并没有成功。


原因分析:

属性和属性名一样
在方法体中,只能访问到参数name


解决方案:

方法一:既然是重名导致的错误,那就把参数中的名字改一下

关于java对象属性的访问
关于java对象属性的访问
成功输出“盖伦”,可见方法是可行的。

方法二:通过this来指明哪个是属性的name
关于java对象属性的访问
关于java对象属性的访问
也成功输出了“盖伦”,可见也没问题。