前言:
面向对象的三大特征
封装 (Encapsulation)
继承 (Inheritance)
多态 (Polymorphism)
1、编程思想:
面向过程:做某件事情都需要自己亲历亲为,按照步骤去完成
面向对象:做某件事情不需要自己亲历亲为,只需指定特定的对象去完成即可。
当有多个数组都需要遍历时,我们可以将遍历的代码封装到方法中,需要遍历时,就调用相应的方法即可,提高代码的复用性。在对数组遍历的基础上继续增加需求,比如获取最值,数值逆序等,同样需要将这些功能封装到相应的方法中。这样继续封装会发现方法越来越多,于是就想能不能将这些方法继续进行封装呢?通过前面的讲解我们知道类是可以存放方法的,所以,我们就考虑使用类封装来这多个方法,将来再做数组的操作时,不用去找具体的方法,先找到这个类,然后使用这个类中的方法。这就是面向对象思想的编程方式。
1.现实世界就是由对象组成的。
2.面向对象设计和开发程序的好处
1.交流更加流畅
2.提高设计和开发效率
3.面向对象的思想符合人类思维习惯
2、封装继承多态
2.1 封装
• 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:
• 隐藏实现细节,提供公共的访问方式
• 提高了代码的复用性
• 提高安全性。
封装原则:
• 将不需要对外提供的内容都隐藏起来。
• 把属性隐藏,提供公共方法对其访问。
2.2 继承
• 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
• 通过extends关键字可以实现类与类的继承
继承的好处
• 提高了代码的复用性 多个类相同的成员可以放到同一个类中
• 提高了代码的维护性 如果功能的代码需要修改,修改一处即可
• 让类与类之间产生了关系,是多态的前提 其实这也是继承的一个弊端:类的耦合性很强
让类的耦合性增强。这样某个类的改变,就会影响其他和该类相关的类。
原则:低耦合,高内聚。
耦合:类与类的关系
内聚:自己完成某件事情的能力
2.3 多态
• 某一个事物,在不同时刻表现出来的不同状态。
• 举例:
• 猫可以是猫的类型。猫 m = new 猫();
• 同时猫也是动物的一种,也可以把猫称为动物。
• 动物 d = new 猫();
• 在举一个例子:水在不同时刻的状态
l 多态前提和体现
• 有继承关系或者实现关系
• 有方法重写
• 有父类或者父类接口引用指向子类对象