1.面向对象的三大特征:
封装、继承、多态
2.面向对象的基础?
面向对象的基础是抽象。
抽象可以将复杂的东西将他们的一些公共的内容抽出来,封装在一个类中。
抽象只关注对象的属性和行为,不关注行为的细节。
3.如何理解下面两句话,这两句话和面向对象的抽象有什么关系?
①我们要注重多少人来干事,而不是干多少事
②我们要注重谁来干事,而不是怎么干事
我们可以把这两句话中的“人”还有“谁”都来解释为对象,这两句话告诉我们在抽象的过程中要注重的是对象,我们要关注的是对象以及多少对象的问题。
(注:这两句话中要关注的是谁。而不是让谁,在抽象的过程中,抽象的是类而不是抽象过程。)
我们在课程上以打水为例,进行抽象。
①那么可以抽象抽多少个类呢?场地,打水人、打水工具、受水人、水等等
②在此基础上,还可以将打水人、受水人再次进行抽象出一个父类,进行减少类的操作。
在自己思考的时候只是想到打水这个过程,打水能够抽象出来的也只有打水人这个类。在写代码的时候也只会考虑到要完成打水这个过程需要怎么做,整体的就是面向过程的思想而不是面向对象的思想。
现在我们要转换自己的思想,通过打水这件事,能够涉及到多少个对象,在哪 有谁 用什么工具 给谁做事,以及水,这是我们需要考虑的对象。
4.总结:
抽象的时候要考虑的内容:参与者、使用的工具、场所(UI页面等)、使用的参数或者说是材料
面向对象重点是谁,对象。不把如何实现作为重点。有多少个对象参与了。
怎么做这个事情拆分成颗粒,颗粒小容易复用,小的颗粒封装到对象内部,可扩充,可维护。
(就像我们盖房子使用的沙子和水泥一样,石头可以该平房但是不能盖楼房,因为石头的颗粒不够小。)