天天看点

java语言学习002_面向对象编程思想

      人类在认识世界时,为了方便自己和智慧提升,很自然的对事物进行了分类。对世界进行了抽象,若把所有各个事物看做对象,纵观所有对象,这些对象具有各自的或共有的特征,并且又有共有的或各自的的能力,这样就可以对具有相同一些特征和一些能力的事物进行了归类。

      比如,车,有汽车,火车他们都有哪些属性?

                 汽车,特征:长度,颜色,速度,轮胎,载重,平面行走……能力:移动,载东西,……

                 火车,特征:长度,颜色,速度,轮胎,载重,轨道行走……能力:移动,载东西,……

      所以看出,车这个类型,就特征:长度,颜色,速度,轮胎,载重等,能力:移动,载东西等。所以就产生了,车,这个类,并有汽车,火车等类的对象(其他的就不详细列出)。

      “类”就是事物的种类、类型,是对某些具有相似特征的事物的总称,而“对象”是“类”的“实例”。“类”是抽象概念上的定义,而“对象”是实际存在的具体的一个实体。

      根据这个思想,就产生了,面向对象的计算机编程,面向对象编程思想是相对于c语言中的面向过程编程思想。

     面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

     面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

      在面向对象的编程中(java),想完成一件事,只要去产生一个能完成此件事的类的对象(new object),并且让这个对象干这件事情的能力发挥(调用对象完成此事的方法method),就能完成我们想要的事情(业务),而这个类的对象的能力(方法method)做了什么,或者做这件事详细的过程,就不用太多的关注。这就是面向对象编程思想了。

      面向对象编程思想有三大特征:封装,(抽象),继承,多态性。

      抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

      如:找工作,公司需要编写java代码的人,就只关心:java,专业,工作经验等,而不去关心性别,身高,会不会跳舞之类的了。

      封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

     继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

    多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。