-
封装:
指的是:- 隐藏内部实现,防止数据被随意修改,提升安全性;
- 将复杂/有共同点的代码放到一块,简化调用方,提高代码的复用性。
例如:- 判断人是不是老了的一个方法,这种,我只需要告诉你一个人,你马上能判断出来这个人是不是老了【简单、方便、可复用、对方无需知道太多细节】;
- 把计算数字加减乘除都放到一个类里,这个类叫“计算器”。这也叫封装。
/** * 判断一个人是不是老了。【身体年龄 >= 60 或者 心理年龄大于50】 * @param person 需要判断的对象 * @return 老了返回true;否则返回false */ public boolean isOld(Person person) { // ...省略 }
- 隐藏内部实现,防止数据被随意修改,提升安全性;
-
抽象:
-
使用抽象来限定一个类的所有对外提供的方法。提高代码的维护性,可扩展性。
例如:生活中的双脚插座。我们不知道未来会有多少需要连接插座的设备,我们只是规定,要想用双脚插座,你得有两个金属接触点等等。这样,只要我们制造新设备时,遵循这个双脚插座的要求就可以了。(这是可扩展性)
可以被容易替换(符合可维护):如果我们一直在使用某品牌的插座,突然换一种品牌,基本对我们的设备不会造成太大影响。
-
可以有效过滤掉无需关注的信息。
例如:我们对于车的定义是,能快速移动,能供人操作。
public interface Car{ void quickMove(); void operate(); }
这样我们就知道,车是可以快速移动的。我只要见到一个可以快速移动的非生命体,且可以由人力操控,我们就可以将其定义为车。
至于你说你自己造了一个车,拿给别人用,他变无需关注你的车是几个轮胎,什么引擎,只知道可以拿来操控并且快速移动。这就够了。他可以把自己之前用的车放在家里,改用你的车,也是可以达到快速移动的效果的。
而且你也可以在车的基本接口基础上加上自己的方法,比如,你的车可以敞篷等。
-
-
继承
-
如果我们在两个及以上类中重复一遍一段代码,那我们最好还是将它放在一个父类中,由子类去继承它。这样做的好处显而易见,能达到复用。
/* * 房子类,基本的房子都有的元素。 * 只要你想造房子,继承这个基本的类就可以了 */ public class BaseHouse{ private String position; private double value; public House(String position, double value) { this.position = position; this.value = value; } // 省略getter和setter }
但是也有一点,那就是如果父类的更改使得对于特定的子类不能使用时,那就比较不好了。
-
-
多态
- 指子类可以替换父类,在实际的代码中,调用子类的方法实现。上述提到的车可以换,以及房子,都是实现多态的方法。
封装,抽象,继承,多态。
于 2019-11-26 21:00:16 首次发布