java初学者实践教程12-面向对象

文章作者 100test 发表时间 2007:09:25 13:24:44
来源 100Test.Com百考试题网


  在第4节课中我们初步的了解到了一些面向对象的概念,和一些特性。例如封装。这节课我们来进一步认识一下,这种思想。对了,在这里我说这是一种思想,是想问题的方法。即使没有java,C ,smalltalk这样的面向对象语言也有这种思想。其实这种思想在上世纪60年代就已经存在了。还有一个常见的误区,不光是初学者,就是有些干了几年的程序员也是这样,以为用java写东西就是面向对象,这都是错误的。 那么面向对象到底是什么东西呢?能够明确的给出概念非常少,但是我们可以分析一下。它与面向过程的思想做一个比较,面向过程是指,我们考虑问题时,以一个具体的流程(事务过程)为单位,考虑它的实现过程;面向对象是指,我们考虑问题时,把任何东西看做是对象,以对象为单位,考虑它的属性及方法。

好比一个木匠在做一把凳子,如果他是面向过程的木匠,他会想到制作凳子的过程。“先做什么呢?凳子腿?凳子板?用什么工具呢?”。如果他是一个面向对象的木匠,他会把所有的东西看做成对象,“凳子腿,凳子板两个对象。凳子腿有属性,长方体的,长度,宽度是多少厘米,有方法钉钉子。凳子板的属性,正方形,边长是多少厘米等等问题。”这样的话,面向对象的木匠会依据这些条件。将一个凳子组装在一起。最终目的是做成一个凳子,用什么思想方法去做,是值得研究的。

通过刚才的例子,我们会有一种感觉,面向对象的木匠会对事务量化的分析,用“数学”的方法处理问题似的。好像他更具有进步意义。面向对象的思想也确实有着他的先进之处,它把世界上的所有事务看做成为对象,这样的话更贴近于现实世界,这样的话使得逻辑清晰,谁看报告的时候也喜欢看条理清晰的报告啊。这样使得面向对象的软件开发,成为上世纪90年代直到现在的主流开发技术。传统开发方法存在问题 1.软件重用性差 重用性是指同一事物不经修改或稍加修改就可多次重复使用的性质。软件重用性是软件工程追求的目标之一。谁愿意来来回回的写一件事情呢。 2.软件可维护性差 软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的配置成分组成。在软件开发过程中,始终强调软件的可读性、可修 改性和可测试性是软件的重要的质量指标。实践证明,用传统方法开发出来的软件,维护时其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。 3.开发出的软件不能满足用户需要 用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。现在的面向对象的思想已经扩展到很多方面,如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。而且他指的是面向对象分析(OOA),面向对象设计(OOD),面向对象编程(OOP),这一套过程了。 下面我们来看一下,经常用到的重要概念,也就是java语言的的OOP特性,这是对于OOP而言的,不含前面的OOA和OOD的。因为是初学嘛,还没有学到怎么分析和设计呢。Java的OOP有三大特性:封装、继承、多态。封装的概念已经在第4节课说过了,我们讲的是,它用权限修饰符private使得属性不能被外界访问,像是人的五脏六腑怎么能让人随意的碰呢?人的这个属性也是要封装的。如有再不明白,请访问我们的技术论坛 。说一下容易理解的继承:当一个类是另一个类的特例时,这两个类之间具有父子类的关系。子类继承了父类的方法和属性,就是说子类可以重用父类中的这部分代码。比如:轿车是车的一个特例。轿车是车的子类。就是说,轿车继承了车的一切特性。继承用关键字extends表示。

实践:

//这是基类

public class Che {

private int wheel = 4.

public int getWheel() {

return wheel.

} }

public class Jiaoche extends Che {

private String pinpai = "桑塔纳".

public String getPinpai() {

return pinpai.

} }

public class Testche {

public static void main(String[] args) {

Jiaoche car = new Jiaoche().

int wheels = car.getWheel(). //调用基类的方法

String Pinpal = car.getPinpai().//调用本身的方法

System.out.println("车有 " wheels " 个轮子").

System.out.println("轿车的品牌是 " Pinpal).

} }



相关文章


Linux系统下Ramdisk的制作过程
Linux攻略用Ghost备份Linux系统的方法
Linux系统无盘工作站架设实例
java初学者实践教程13-面向对象之多态
java初学者实践教程12-面向对象
java初学者实践教程11-泛型声明
java初学者实践教程10-集合类
java初学者实践教程9-数组
java初学者实践教程8—jdk5的拆箱与装箱
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛