- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java面向对象的学习心得
Java面向对象的学习心得大三的时候学校组织我们去苏州NIIT参加四个月的java实训,我开始系统的学习期java,之前大学的时候学的比较宽泛,没有专门的正对java的学习。首先我是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程序的时候感觉很别扭,因为我早以习惯用C来编写程序,很欣赏C的简洁性和高效性,喜欢C简练而表达能力丰富的风格,特别忍受不了Java运行起来慢吞吞的速度,相对冗长的代码,而且一个很简单的事情,要写好多类,一个类调用一个类,心里的抵触情绪很强。我对Java的面向对象的特性琢磨良久,自认为有所领悟,也开始有意识的运用OOP风格来写程序,然而还是经常会觉得不知道应该怎样提炼类,面对一个具体的问题的时候,会觉得脑子里千头万绪的,不知道怎么下手,一不小心,又会回到原来的思路上去。举个例子,要发广告邮件,广告邮件列表存在数据库里面。倘若用C来写的话,一般会这样思考,先把邮件内容读入,然后连接数据库,循环取邮件地址,调用本机的qmail的sendmail命令发送。然后考虑用Java来实现,既然是OOP,就不能什么代码都塞到main过程里面,于是就设计了三个类:一个类是负责读取数据库,取邮件地址,调用qmail的sendmail命令发送;一个类是读邮件内容,MIME编码成HTML格式的,再加上邮件头;一个主类负责从命令读参数,处理命令行参数,调用发email的类。把一件工作按照功能划分为3个模块分别处理,每个类完成一件模块任务。仔细的分析一下,就会发现这样的设计完全是从程序员实现程序功能的角度来设计的,或者说,设计类的时候,是自低向上的,从机器的角度到现实世界的角度来分析问题的。因此在设计的时候,就已经把程序编程实现的细节都考虑进去了,企图从底层实现程序这样的出发点来达到满足现实世界的软件需求的目标。这样的分析方法其实是不适用于Java这样面向对象的编程语言,因为,如果改用C语言,封装两个C函数,都会比Java实现起来轻松的多,逻辑上也清楚的多。我觉得面向对象的精髓在于考虑问题的思路是从现实世界的人类思维习惯出发的,只要领会了这一点,就领会了面向对象的思维方法。举一个非常简单的例子:假使现在需要写一个网页计数器,客户访问一次页面,网页计数器加1,计数器是这样来访问的http://hostname/count.cgi?id=xxx后台有一个数据库表,保存每个id(一个id对应一个被统计访问次数的页面)的计数器当前值,请求页面一次,对应id的计数器的字段加1(这里我们忽略并发更新数据库表,出现的表锁定的问题)。如果按照一般从程序实现的角度来分析,我们会这样考虑:首先是从HTTP GET请求取到id,然后按照id查数据库表,获得某id对应的访问计数值,然后加1,更新数据库,最后向页面显示访问计数。现在假设一个没有程序设计经验的人,他会怎样来思考这个问题的呢?他会提出什么样的需求呢?他很可能会这样想:我需要有一个计数器,这个计数器应该有这样的功能,刷新一次页面,访问量就会加1,另外最好还有一个计数器清0的功能,当然计数器如果有一个可以设为任意值的功能的话,我就可以作弊了。做为一个没有程序设计经验的人来说,他完全不会想到对数据库应该如何操作,对于HTTP变量该如何传递,他考虑问题的角度就是我有什么需求,我的业务逻辑是什么,软件应该有什么功能。按照这样的思路(请注意,他的思路其实就是我们平时在生活中习惯的思维方式),我们知道需要有一个计数器类 Counter,有一个必须的和两个可选的方法:getCount() // 取计数器值方法resetCounter() // 计数器清0方法setCount() // 设计数器为相应的值方法把Counter类完整的定义如下:public class Counter {public int getCount(int id) {}public void resetCounter(int id) {}public void setCount(int id, int currentCount) {}}解决问题的框架已经有了,来看一下如何使用Counter。在count.cgi里面调用Counter来计数,程序片断如下:// 这里从HTTP环境里面取id值...Counter myCounter = new Counter(); // 获得计数器int currentCount = myCounter.getCount(id); // 从计数器中取计数// 这里向客户浏览器输出...程序的框架全都写好了,剩下的就是实现Counter类方法里面具体的代码了,此时才去考虑具体的程序语言实现的细节,比如,在getCount()方法里面访问数据库,更新计数值。从上面的例子中看到,面向对象
您可能关注的文档
- Fatezero人物评价-《从零开始又回归于零》.doc
- F8键子弹穿墙可以透过墙壁子弹直接打死敌人.doc
- FA工厂自动化零部件一站式选型、采购平台-深圳快易优自动化选型大全.doc
- Fbxxdxq语法(复合关系代词)-法语.doc
- FCL-FCL与CY-CY的区别.doc
- FC反编译的简单方法.doc
- Feminine Century Yo ga Reproductive 世纪女人.docx
- fewafewlittlealittle用法区别.doc
- FIDIC合同条款下的EPC合同风险研究.docx
- filetype的作用是专业搜索.docx
- 光伏发电储能2025年能量管理技术创新与产业创新体系.docx
- 2025年运动服饰市场品牌竞争力与用户需求研究.docx
- 购物中心亲子娱乐业态布局分析:2025年现状及未来十年市场趋势报告.docx
- 量子计算与通信在能源管理中的技术创新与应用报告.docx
- 火电灵活性改造对电力行业结构调整的促进作用分析报告.docx
- 光伏发电储能2025年能量管理技术创新在新能源领域应用.docx
- 跨境电商试验区运营模式创新分析及2025年发展前景展望.docx
- 腾讯社交平台游戏IP衍生品市场分析报告.docx
- 光伏组件回收产业链上下游协同发展前景预测报告.docx
- 2025-2026学年初中化学八年级全册鲁教版(五四制)(2024)教学设计合集.docx
文档评论(0)