封装
■Java中通过将数据声明为私有的(private), 再提供公共的(public) 方法:getXxx()和setXxx()实现对该属性的操作。
当我创建完对象以后,我如果直接通过"对象名.属性名”的方式给属性赋值的话,可以回出现一些不符合实际情况的问题。所有我们不考 虑使用“对象名、属性名”的方式赋值,而是通过"对象名.方法名()"的方式进行赋值,因为我可以在方法里面加上大量的业务逻辑, 对属性值进行限制。
public 构造方法名(形参){
}
注意
1.构造方法没有返回值
2.构造方法名必须和你当前类的名字-致,包括大小写
作用:
1.创建对象,new的时候就是调用了构造方法I
2.在创建对象的同时,我们可以调用有参的构造方法直接对属性赋值
构造方法是一个方法,他可以进行方法重载。
this关键字
成员变量和局部变量重名时,方法打印局部变量的值,根据就进原则。
如果想区分成员和局部变量可以使用this关键字
格式:this.成员变量
什么是this?
1.this代表当前使用的对象或者正在创建的对象,谁通过那个对象调用了方法谁就是this。
2.this可以修饰成员变量还可以修饰构造方法和方法。
3.可以在构造方法中通过“this(形参)”的方法调用本类其他构造方法。
继承 共性抽取
如果没有继承就没有多态
一个子类继承父类,子类可以使用父类公有的属性和方法。
优点:提高了代码复用性
缺点:由于继承会有多层的继承关系,会提高他们点依赖关系,耦合度更高。
//所有类的基类都是object,Java所有类的父类。
//子类中可以单独定义独有的属性方法,子类通常比父类功能多。
//子类可以再派生其他子类。
//一个父类可以有多个子类,一个子类不能有多个父类,Java的继承是单继承。
语法:
class 子类 extends 父类{
}
super关键字
super关键字可以修饰属性、方法、构造方法
1.当前子类和父类的属性出现重名时,默认会调用子类的属性,可以通过" super.属性名"的方式显示的调用父类声明同名属性
2、子类重写父类方法后,如果子类想再次调用父类被重写的方法,可以通过“super .方法名()"的方法调用父类方法
3、super可以修改构造方法,通过子类构造方法中使用"super(形参)"来显示的调用父类对应的构造方法
注意:
1.super(形参)必须声明在首行
2.说明this(形参)和super (刑参)只能出现一个
3.在构造法方法中,不显示的通过super (形参)的方式调用父类对应的构造方法
默认会调用父类无参的构造方法