这几天盲人摸象一般的见识了什么是面相对象,终于对面向对象有了一些些概念,可以整理成文字了.

 

  一 "万物皆对象,对象引关注而产生"

  对象,实际存在于世界,生活中每一个东西都可以被看作是对象.而面相对象其实就是对不熟悉的东西的自然认知方式.根据关注把具有相同特征的对象归为一类.比如:生物,动物,哺乳动物等.都是对对象特征的抽取,形成一类,但是当我们回想这些类时,想到的总是某个具体的对象,而不是某个对象就可以表示一个类.

  在现实生活中,是先有对象,再有人去根据关注的不同将对象属性行为抽取组成一个类.而在java编码中则是反过来的,先定义类,再产生对象,模拟现实中的东西.

  属性,就是对对象本身的一个描述;行为,就是对对象能做什么事情的一个描述.

  

  二 面相对象与面相过程的区别

  总的来说,两种思想是不分优劣的,只是思考的角度不同.真的不知道怎么说,这里就偷一个别人举得例子吧

  面相过程:普通人买电脑,去电脑城,多家对比(接受忽悠),看好了砍价,商户帮忙装系统(完全看不懂),买完走人.

  面向对象:普通人买电脑,去找一个懂电脑的朋友,把钱给他让他帮忙买,等他回来,你就有了电脑.

  这是两种思想面对不熟悉的事情的处理方式,由此可见面向对象是基于面相过程的,只是这个过程不是自己来完成,是找到了熟悉的人去完成.嗯,大概就是这些......

 

  三 面向对象的特征

  面向对象的三大特征:封装,继承,多态.至于抽象,现在不做了解

  1.封装

  封装也是java的安全性的一个体现,他是把对象的属性和行为组装成一个类,然后尽可能的隐藏他内部的细节和实现.

  2.继承

  继承,具有相同属性和行为的类抽取出的一个共有的父类.

  继承,描述的是类与类之间的关系,而且是is a的关系.继承是java对设计原则开闭原则的体现.如果在编码时,需要用到之前写的或者别人写的类但是那个类不能完全满足我时,不需要修改之前的类,只需要继承父类,然后扩展自己想要的实现.

  3.多态

  相同的行为,不同的实现.