《写给大家看的面向对象编程书》Part 1 - 3

面向对象概念介绍

1. oo程序设计与过程程序设计的区别:

  1.1面向对象程序设计是基于对象的,属性、方法包含类当中,具体操作也是针对类。而过程化编程是将属性、方法分开的。

  1.2适当的程序设计:如果oo程序设计适当的话,不会存在全局数据之类的东西,这一点保证oo程序设计的数据完整性。

2. 从过程化程序设计,转换到面向对象程序设计:

  2.1面向对象程序开发基于的是对象操作,数据传输用对象、数据操作也是对象。而过程化程序设计还是基于数据,数据传输基于属于,数据操作也是基于数据。

3. 对象到底是什么:

  对象是一组数据的集合,其中包括属性、方法、其他对象。

4. 类到底是什么:

  类是对象的一个模板。

5. 使用UML完成类图的建模:

?

6. 封装和数据隐藏:

  封装:对象同时包含属性、方法等。

  隐藏:通过可访问性来隐藏一部分属性,方法。

7. 继承:

  定义:提升代码的重用性,提升程序设计的整体性(提升宏观设计)。

  7.1父类、子类,父类只能有一个,而子类则可以有多个。

  7.2抽象,将子类当中共有的方法提取出来,从而提升代码的重用性。

  7.3is – a 关系,继承属于is – a ,组合是 has – a。

8. 多态:

  父类当中有一个定义,实现是在具体的子类当中,通过子类的调用从而执行对应的方法(多态方法子类必须实现)。

9. 组合:

  定义:多个对象通过组合的形式形成一个新的类

 

总结:

封装:将数据和方法封装到一个类当中,一个对象同时包含数据、方法,并且可以将一部分数据方、法隐藏起来。

继承:一个类继承另一个类,并且可以集成到那个类的方法和属性,从而提升代码的重用性。

多态:父类进行定义,子类必须实现。当子类调用时,则执行子类的方法。

组合:一个对象有其他对象合成。形成一个新的类。

 

如何以对象方式思考

1. 了解接口与实现之间的区别:

  接口:类提供给外界的只应该包含使用者使用的接口。Public。外界可以方法。

  实现:类内部的私有方法,外界无法访问。接口需要通过实现来完成功能。

2. 尽可能为用户提供最小的接口:

  2.1最好提供用户(使用者)需要的接口,而不是完全都提供给他们,用户需要什么接口提供什么接口。

  2.2从用户的角度去设计接口,站在使用者的角度去设计接口。

    2.2.1确认用户:调用此方法的就是用户,就是使用者

    2.2.2确认行为:从用户的角度去考虑此类的能需要提供的行为,以及此类能提供的行为。

    2.2.3明确公用接口:对于外界此类应该提供一个什么样的方法(公共接口)。

    2.2.4明确实现:对于公共接口总是需要实现来支持的。

 

总结

1.确定用户。

2.确定行为。

3.明确公共方法、行为。

4.明确实现。

5.实现的改变不影响接口的使用。

6.尽可能的提供最小接口,当用户需要的时候在提供接口。

7.对象持久化概念。 

 

高级面向对象概念

1.构造函数

  1.1何时调用构造函数:对象创建的时候就执行默认的构造函数,如果创建的时候传入参数则创建带参数的构造函数。

  1.2构造函数有什么:可以在构造函数当这初始化一些数据。例如该类是一个组合类,那么可以初始化其他类。

  1.3默认构造函数:一个默认的构造函数。

  1.4使用多个构造函数:构造函数也可以进行重载。可以有多个带参数的构造函数。

  1.5继承当中的构造函数:如果存在继承,那么先执行父类的构造函数,在执行子类的构造函数。

  1.6构造函数设计:最好的实践是将所有的初始化都放到构造函数当中。

2.错误处理

  2.1错误处理

    2.1.1忽略错误(这种最不好,因为没有解决,没有提交)。

    2.1.2检查错误并中止(这种也不好,因为也是没有解决,没有提交)。

    2.1.3检查问题,并尝试恢复(一般,因为没有将问题提交给开发人员)。

    2.1.4抛出异常(检查,解决,并且将错误提交给开发人员)。

  总结:对于错误的处理,1.检查异常。2.恢复到正常状态。3.将错误捕获并交给开发人员。

3.作用域概念

  3.1局部作用域:在方法内部,当调用方法时分配内存。

  3.2对象用域:跟局部作用域类型。

  3.3类作用域:一个类的静态变量、方法。整个程序当中都可以使用。

 

posted @ 2010-08-22 20:57  13路易的  阅读(659)  评论(0编辑  收藏  举报