站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题J2SE5个月学习总结——我所理解的Object Oriented Programming

J2SE5个月学习总结——我所理解的Object Oriented Programming

摘要: J2SE5个月学习总结——我所理解的Object Oriented Programming

J2SE5个月学习总结

——我所理解的Object Oriented Programming

也许如果不是那个通宵,我可能永远都不知道什么是java,什么是oop。

本来只是想实现一个简单的功能——不允许编辑JTable的单元格而已,看似一个简单的功能,竟然翻了一个多小时的API竟然还是毫无头绪。都快12点了,本来世界杯结束了,想早点睡觉做个正常人,但是我的性格就是比较硬吧,没想到居然自己栽倒在一个自以为很简单的一个问题之上,这口气怎么也咽不下去啊。而且离答辩的时间只有10天不到了,我的“PCDIY系统”连基本窗口还没有, 本来想趁着睡觉前一小时左右先搭一个框架再说,因为一些我认为比较困难的地方在之前我都想好怎么解决,而且又参考了同学的作品,本以为可以很快就搞定,但没想到竟然一个“单元格”就花了我这么多时间,心里那个急啊,就像想上厕所才发现原来那里什么厕所都有就是没男厕!

没办法,只好又重新再看API了,JTble、DefaultTableModel……反正有关的类、接口里面的属性、方法都仔细的看过了,但还是没找到相应的解决办法。说实在的,那时我心里开始诅咒java了,或者说应该是swing,难道“单元格不能被编辑”这个这么常用的功能也没有现成大方法实现吗?

3点了,窗外的那几盏路灯感觉就像在嘲笑我一样,一眨一眨的。栽在其他地方也就算了,一个从来都不觉得不是问题的问题竟然硬生生地在我面前晃悠了4个多小时,我都快疯了。实在真的没办法了,API还好是电子版的,不然早就身首异处了。唯一的最后希望,就是我最喜欢的google了。

Google十来分钟,然后自己又消化了一下,问题终于解决了(具体方法前面的文章有总结)。接下来就是繁忙的coding时间。

……

眨眼工夫5点了,有点睡意,天也亮了,但是又不太想睡觉,又回头看看API,感觉突然有一种醍醐灌顶的感觉——我似乎知道什么是“面向对象”了!

5、6小时前,我对于“面向对象”、MVC模式的表模型……其实都只是一知半解,老师说过,书也涉及过,但是始终很难自己说清楚到底是什么?特别是“面向对象”,根本就没去细考到底是什么?因此在之前花了这么多时间去查找API实际上都是漫无目的的乱查,根本就不知道自己应该找什么和怎么去找。

虽然是乱查一通,但感觉都最后却有差出点眉目来了。

一个所谓的表模型,有一个外壳他就叫JTable,这个壳具体到我的系统她就是一个“对象”,这个对象里面又是有很多不同的对象组成,例如列对象——column、单元格对象——cell……假如你想改变这个表的外貌时,首先就要知道具体我是想那块“对象”要整容,列就找columnu,行就找row,表头就找TableHead……一层一层找下去,直到找到所需要的“对象”为止,然后就通过修改属性、调用方法甚至高级点的用到override来达到自己的目的。

而同样的外壳下面就是实际的东西了,那就是model,或者直接点说就是数据了,数据对象在JTbale就是一个Vector对象,Vector对象里面可以封装更多其他的数据类型的对象。同样的,也是一层一层的不断细分下去,直到不可再分为止。这样一个有血有肉的TableModel就出来了。

虽然书上很早就提到oo这个感念,而且也阐述了不少,但是我是知道这一个才深刻的感受到——到底怎么用oo来表述我们所存在的世界。而且当我开始有点明白oo到底是什么的时候,我不由得佩服提出这个概念的人(虽然我不知道他是谁),原来用计算机来表述的世界原来也可以这么地生动而且实在。

实际上,我跟不不可能只同过自己做的简单的一个小程序就弄懂什么是oop,但是经过这次的设计,让我慢慢地了解了什么是java、什么oop,具体来说就是让我知道怎么去查API,怎么让java来实现我的目的,一个oop的java程序应该怎么写才合理。

……

答辩终于结束了。我最大的成就感不适圆满地完成了任务,而是我觉得我已经慢慢地真正进入java的oop世界了!




↑返回目录
前一篇: 【原创】J2SE初学者读书笔记2-构建适当的开发环境(随便转载-仅请注明出处)
后一篇: J2SE发展演变史(作者:HongSoft 及 Will)(《程序员》)