java学习之java基本概念-面向对象程序设计

要明白是什么是面向对象的程序设计,我觉得单独的讨论它容易让人感到迷惑,把与之对应的一些程序设计方法对比起来就会变得容易理解一些。记得以前学习java的时候我们老师给我们讲的时候说,程序设计大概经过了三个阶段过程式程序设计,结构化程序设计和面向对象的程序设计。下面我们来说说这三种程序设计方法。

过程式程序设计

  面向过程的程序设计可以理解为将一个要实现的程序分解为一个又一个的步骤,然后一个一个的实现他们。举个简单的例子,假如我们想做的项目就是要炒一盘醋溜土豆丝,我们需要怎么做?第一步,我们要准备材料,到市场去购买土豆,白醋,蒜辫等等;第二步,我们我们要清洗材料(当然我有个同事的确试过做完菜,才想起来才没有洗。。。);第三步,切菜;第四步,炒菜;第五步,装盘。这样设计的方式就是一种面向过程的设计方式。

结构化的程序设计

  结构化的程序设计就像盖房子,在盖房子之前我们先要设计一下房子的大概框架,画出各种各样的图纸,然后不断细化,精化得到我们期望的最终结果。

面向对象的程序设计

  现在我们做的大多数程序应该都是这种方式吧,这种方式就是将对象作为程序的基本单元,将数据和行为封装在对象中。像之前炒菜的例子,这个时候不是一上来就考虑怎么炒菜了,应该首先考虑的是这个项目中都有哪些对象(购买者,贩卖者,蔬菜等)会参与进来,然后这些对象有什么行为(购买,清洗,切菜,炒菜,装盘)等等,然后才对这些行为进行具体分析。这样做的好处是使得程序结构比较清晰,易于维护和拓展。

通过上面的对比,应该对于理解面向对象设计有所帮助吧。现在再来看看面向对象程序设计的三大基本特征:封装,继承和多态。

封装

  将抽象得到的数据和行为结合成一个有机的整体形成我们所说的类。通过封装可以隐藏具体的实现细节,调用者可以通过类提供的接口来访问类中的成员。

继承

  一个类继承另一个类的话,就可以继承这个类的属性和方法。我们称之为子类和父类。通过这种方式可以实现代码的复用。而且子类可以新增属性和行为或者重写父类的行为来进行扩展。注意一点,在java中类是单继承的也就是说一个子类只能继承一个父类(接口是需要多继承的)。

多态

  在java中多态实现方式有方法重载(同名的方法通过参数类型,个数,次序来决定具体调用那个方法),子类重定义父类成员(子类属性隐藏父类属性,子类重写父类方法等)。通过多态的方式可以提高软件的灵活性。例如一个父类的不同的子类可以用父类来接收,接口可以接收其实现类。如果你有兴趣的话,可以考虑一个问题,如果一个父类型对象A接收子类型对象B,父类和子类中都有C方法,请问这个父类型对应调用的C方法是父类型的C方法还是子类型的C方法?为什么?

你可能感兴趣的:(java学习之java基本概念-面向对象程序设计)