写给自己看的java教程。
1.面向对象“如果你要洗衣服,你可以选择手洗,但丢进洗衣机里明显更方便。” 面向对象设计是一种程序设计技术。它将重点放在数据(即对象)和对象的接口上。如果你想洗衣服,你首先想到的是找一个会洗衣服的工具(对象),把洗衣服的事交给工具做,这里的洗衣机就是对象。如果你学过c,对比一下c语言的面向过程设计,以洗衣服为例: ? c语言:把问题分解成一个一个步骤,每个步骤用函数实现,即把脏衣服放进盆里->放洗衣粉->加水->手搓->漂洗->甩干 java:先定义一个洗衣机的类,这个类中包含了洗衣服所需要的方法,创建一个洗衣机的对象,然后你要做的是把脏衣服扔进洗衣机里。 ? 二者的优劣对比: 面向对象:占用资源相对较高,速度相对较慢 面向过程:占用资源相对较低,速度相对较快 ? 这么一看好像面向对象与面向过程相比毫无优点可言?占用又高,速度又慢,别急,接下来我们要了解面向对象的三大特性 1.封装性所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 在上述例子中,洗衣机就是封装了洗衣服这个功能的类的对象。这里的类指的是一种规范,如果厂家要制造一台洗衣机,必须按照洗衣机的规范来制造,比如说洗衣机必须要有滚筒,要有进水口,要有控制按钮等等。这些都是一个洗衣机所必需的拥有的“属性”,而洗衣机还要有最重要的洗衣服的功能,要有甩干的功能,这些就是规范中规定的洗衣机必须要有的“方法”。按照这个规范生产出来的就是洗衣机的“对象”。 又比如,格力在国家制定的洗衣机规范之下有自己制定的规范,格力生产的洗衣机都必须有指纹解锁功能。而其他品牌的洗衣机不是按照格力的规范来生产的洗衣机,就没有办法使用指纹解锁的功能,这里就类似于“类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏” 2.继承继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 还是以洗衣机为例,之前我们说过,类就相当于洗衣机的生产规范,那么类的继承呢?一个类如果继承了另一个类,那么这个类就叫做被继承类的子类,被继承类就是父类,子类可以直接拥有父类所有公开的(public)“属性”和“方法”。这里,格力的洗衣机规范就是国家的洗衣机规范的子类,格力生产出来的洗衣机必须符合国家规范的所有要求,同时可以添加一些自己独有的特别功能。 继承的关系是一种“is-a”的关系,即小学生是一个人,但一个人不一定就是小学生,这里的子类和父类与父与子的关系不是一回事,毕竟儿子不可能是他爹。 ? 3.多态多态性是面向对象编程的又一个重要特征,它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。在国家制定的洗衣机规范中,规定了洗衣机必须能有洗衣服的功能,而格力洗衣机通过超声波洗衣服,其他的洗衣机通过水洗衣服,格力的是干洗,其他的是普通水洗。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |