java编程思想

面向对象三要素封装、继承、多态

封装:主要是暴露接口,你不用关心内部实现。
继承:主要是让你不用重复造轮子了。
多态:让代码可读性更强,让编译器做更多的事。

面向对象隐藏了面向过程具体实现的细节,把属性和行为封装成一个抽象模型,即对象,以便用专业的方法做专业的事情。

作者:Ivony
链接:https://www.zhihu.com/question/32085928/answer/54655529
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

面向对象编程,即OOP,是一种编程范式,满足面向对象编程的语言,一般会提供类、封装、继承等语法和概念来辅助我们进行面向对象编程。

类型被设计为将数据和行为捆绑在一起的一种东西,数据和行为被称之为类型的成员。我们可以创建类型的实例,不同的实例包含不同的数据,从而其表现出来的行为也会不同,尽管其代码是一样的。

封装使得类的成员得以有选择性的暴露,一些成员只在类型的内部使用,被称之为私有的(private),一些成员可以被派生类型使用,称之为受保护的(protected),一些成员可以被任何东西使用,称之为公开的(public)。而某些语言还提供了内部的(internal)这样的访问修饰符来标识一些只能被同一个程序集或者包使用的成员。

继承可以从一个现有类型派生出新的类型来,派生类继承了基类的所有成员,也可以新增只属于自己的成员。在任何情况下,派生类类型的实例可以被当做基类类型的实例来使用。

虚方法为派生类修改基类的行为提供了一个途径,通过重写(override)虚方法可以修改基类某些方法的行为。当派生类实例被当做基类实例来使用时,这一行为的区别将会被体现出来,这种在运行时不同类型的实例在同样的代码中呈现出完全不同行为的现象被称之为多态。

面向对象编程最初是为了解决GUI程序设计问题所提出的,后来面向对象编程被发现也比较适合用于许多特定领域的开发。面向对象编程是目前运用最为广泛的一种编程范式,从而也产生了非常多的解决代码复用的技巧,其中相当一部分技巧在程序中反复出现而被提炼为设计模式。

封装可(通过固定接口而)应付需求变更、归一化可简化(类的使用者的)设计:以上,就是面向对象最最基本的好处。其它一切,都不过是在这两个基础上的衍生而已。换言之,如果得不到这两个基本好处,那么也就没有任何衍生好处——应付需求变更/简化设计并不是打打嘴炮就能做到的。

Author: bkdwei