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