第二部分 第九章 6.封装的优化
条评论9.6 封装的优化
9.6.1 this关键字
我们发现 setXxx 方法中的形参名字并不符合见名知意的规定,那么如果修改与成员变量名一致,是否就见名知意了呢?代码如下:
1 | public class Student { |
经过修改和测试,我们发现新的问题,成员变量赋值失败了。也就是说,在修改了setXxx()
的形参变量名后,方法并没有给成员变量赋值!这是由于形参变量名与成员变量名重名,导致成员变量名被隐藏,方法中的变量名,无法访问到成员变量,从而赋值失败。所以,我们只能使用this
关键字,来解决这个重名问题。
this的含义
this代表所在类的当前对象的引用(地址值),即对象自己的引用。
记住 :方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁。
this使用格式
1 | this.成员变量名; |
使用 this
修饰方法中的变量,解决成员变量被隐藏的问题,代码如下:
1 | public class Student { |
小贴士:方法中只有一个变量名时,默认也是使用
this
修饰,可以省略不写
9.6.2 构造方法
当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。
贴士:无论你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个无参数构造方法,一旦自己定义了构造方法,Java自动提供的默认无参数构造方法就会失效。
构造方法的定义格式
1 | 修饰符 构造方法名(参数列表){ |
构造方法的写法上,方法名与它所在的类名相同。它没有返回值,所以不需要返回值类型,甚至不需要void。使用构造方法后,代码如下:
1 | public class Student { |
注意事项
- 如果你不提供构造方法,系统会给出无参数构造方法。
- 如果你提供了构造方法,系统将不再提供无参数构造方法。
- 构造方法是可以重载的,既可以定义参数,也可以不定义参数。
本文标题:第二部分 第九章 6.封装的优化
文章作者:foreverSFJ
发布时间:2019-08-16 14:32:55
最后更新:2019-08-16 14:32:55
原始链接:Notes/Java/Basic/Part02/09_6 封装的优化.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!
分享