Java中的三大特性
1、封装
什么是封装,封装的目的是什么?
程序中的封装,可以加强了我们数据的安全性和数据的可靠性。数据不直接对外暴露。
public class Person { private String personName; private String personSex; //get和set方法书写规范 public String getPersonName() { return personName; } public void setPersonName(String personName) { this.personName = personName; } public String getPersonSex() { return personSex; } public void setPersonSex(String personSex) { this.personSex = personSex; } }
封装数据,不单独只是为了通过两个函数来对私有的属性进行操作,而是对属性的数据进行一个可控的操作。避免一些脏数据发生。我们可以再赋值函数中(set方法)中进行数据的校验。
针对不同的业务我们去采用函数来进行封装业务,这本身也是一种数据的封装,能够达到我们程序模块独立,降低耦合度。
2、继承
继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。
继承的格式:
public class Student extends Person{ }
extends前是子类,后是父类。
继承关系可以节约代码。
不能因为节约代码而去继承,只有真正存在着继承关系才能去继承。
初始化过程:
子类的构造函会默认的调用父类无参构造函数。jvm虚拟机在编译的时候会默认给子类无参构造函数中添加super()。
如果父类中没有无参构造函数,只有有参构造函数,那么在子类构造函数中我们可以访问父类的有参构造函数super(xxx),或者手动再给父类添加一个无参的构造函数。
如果父类不想被子类继承的话,可使用private修饰符。被private修饰的成员变量或者函数,都不能被子类所继承。
3、重写
重载:在一个类中存在至少两个以上的同名函数。
重写:前提条件是必须要有继承关系,父类中的行为满足不了子类时,我们称之为重写父类的方法。
重写方法前提条件:
1、继承关系下,子类的函数名和父类函数名相同。
2.子类重写父类的方法,子类的修饰符要大于等于父类修饰符权限。
3.子类重写父类方法,子类中的方法返回值数据类型要小于或者等于父类的返回值数据类型。