第八章 封装
面向对象的三大特征之:封装性
1.创建完对象以后,如果直接通过“对象名.属性名”的方式给属性赋值的话,可能会出现一些不符合实际情况的问题,所以不考虑使用这种方式赋值,而是通过“对象名.方法名()”的方式进行赋值,可以在方法里面加上大量的业务逻辑,对属性进行限制
解决方式:
①将属性私有化
②提供公用的(get and set)方法实现属性的取值和赋值
2.在我们去创建对象的时候,会用到一个特殊的方法叫做构造方法,构造器
怎么去创建一个构造方法?
public 构造方法名(形参)
注意:
①构造方法没有返回值
②构造方法名必须和你当前类的名字一模一样
作用:
①创建对象,new的时候就是调用了构造方法
②在创建对象的同时,我们可以调用有参的构造方法,直接对属性赋值
构造方法是一个方法,可以实现方法重载
注意:
如果没有显示的定义构造方法,系统会默认的提供一个无参的构造方法
如果显示的定义了一个构造方法,系统不会再提供,需要我们手动的创建一个无参的
有参构造方法和无参构造方法
①使用有参的构造方法给属性赋值,new对象的同时给属性赋值,省去了set方法的麻烦,针对多个属性同时赋值
②set针对于单个变量进行更改
3.成员变量和局部变量出现重名时,方法会根据就近原则使用局部变量的值
如果想区分成员变量和局部变量,可以使用this关键字
this.成员变量
什么是this?
①this代表当前使用的对象或者正在创建的对象,谁通过对象调用了方法谁就是this
②this可以修饰成员变量、方法、构造方法,直接在成员变量名,或者成员方法名前面加上this即可
③可以在构造方法中通过“this(形参)”的方式调用本类其他构造方法
注意
在构造方法内部this(“形参”)必须放在首行
如果一个类里有n个构造方法,最多有n-1个构造方法内部使用了this