类和对象的设计思想
类和对象设计思想
在研究对象时,主要考虑对象的属性和行为,有些不同的对象会呈现相同或者相似的属性,通常将相似或者相同属性和行为的对象归结为一类,类声明不仅包括属性,还包括行为。
- 抽象
抽象就是忽略和问题无关的方面,充分注意与当前目标有关的方面,抽象包括数据抽象和过程抽象两个部分。过程抽象是将系统的功能划分为若干个部分,强调功能完成的过程和步骤,而隐藏其具体的实现。数据抽象就是将系统中需要处理的数据和这些数据操作结合在一起,抽象成不同的数据类型,每个抽象既包含了数据,也包含了对数据的操作。相对过程抽象,数据抽象更迎合事物运作的普片规律,因此更容易编程。
面向对象的软件开发的主要特点之一就是采用了数据抽象的方法来构建程序的类和对象。
- 封装
封装就是给予数据类型将数据和数据操作封装在一起,用户只能看到对象的封装界面信息,而不知道内部实现方法。
封装具备三大特点,首先,清楚的边界,所有对象的内部信息都被界定在这个边界内。从物理角度来说,这个边界就是class文件,每个类的内部信息都被界定在这个class文件中。其次,用户的接口,用户通过实例化该类的对象获得其公共方法的调用权利,从而使用该类提供的方法。最后,受保护的内部实现。用户之知道调用方法,但不知道方法如何实现,而且类的私有属性和方法被private关键字修饰,用户无法通过外部作用获取这些私有值。
封装避免了直接访问对象的数据,实际上降低了程序的耦合度,从而保证了各个模块的独立性。
- 继承
继承是指新的类可以获得已有类的属性和行为,称新类为已有类的派生类。继承是一种联结型的层次模型,为类的重用提供了方便,它提供了明确表述不同类之间的共性方法。继承过程中,派生类继承了原有类的方法和实例变量,继承类也可以修改继承的方法或增加新的方法来实现特殊需求。
面向对象的继承特性中,有单继承和多继承的概念,单继承就是只有一个父类,层次结构属于树状结构,多继承有多个父类,层次结构属于网状结构。Java只支持单继承。不过接口支持多实现。
- 多态
多态是面对对象程序设计的特殊特性,多态指的是在一个程序中同名不同实现的方法共存的一种情况,这种情况通过重写(override)和重载(overload)实现。重写主要通过子类对父类方法的覆盖实现,使得不同类型的对象对相同名方法的响应也不同,重载出现在一个类当中,根据传入参数的个数和类型的不同由系统选择最适合的实现方法。
参考链接:http://blog.csdn.net/langsky001/article/details/51960508