什么是面向对象?
对比面向过程来说,这是两种不同解决问题的角度。
面向过程更倾向于事情的每一个步骤和顺序,面向对象来讲更倾向于事物中的对象(也就是参与者)各自要做什么。
举个例子:用烤箱烤肉
面对对象:会拆出对象有两个(人和烤箱)
人:打开烤箱 放肉 刷油
烤箱:烤
面向过程:面向过程会把任务拆成一系列的步骤
1、打开烤箱 →2、放肉 → 3、烤 →4、取出烤熟的肉
由此可见,面向过程更加直接高效,面向对象更易于复用、扩展和维护。
面向对象三大特征:封装、继承、多态
封装:封装的意义,明确标识出允许外部使用的所有成员函数和数据项,外部调用无需修改或者关心内部如何实现。
1、javabean的属性私有,提供getset对外访问,因为属性的复制或者获取逻辑只能有javabean来决定,不能由外部来决定。
private String name;
public void setName(String name){
this.name = "Hzzz" + name;
}
name有自己的命名规则,不能让外部直接赋值
继承:继承基类的方法,并做出自己的改变或拓展
我们在写代码的时候,有很多不一样的子类,但是子类有很多相同的属性,此时我们可以把相同的属性写进父类当中,不需要自己再进行定义了,只需要拓展自己的属性。
多态:基于对象所属类的不同,外部对同一个方法的调用,实际上执行的逻辑不同。
多态的三个条件:继承,方法重写,父类引用指向子类对象
无法调用子类特有的功能
父类类型 变量名 = new 子类对象
变量名.方法名();