仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1253|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA编程:当心重写办法,准确完成多态

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:47:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。这是我明天在事情中碰着的成绩,是关于承继和多态的。同事对项目中的一项基本功效举行了重构,但是当我们从CVS服务器上更新了项目源代码并编译了以后,发明这项功效已不克不及一般事情了。先撇开这个同事所犯的毛病(对代码举行重构后没有测试他的新代码就上传到了CVS服务器上)不说,在这里我就说说这个成绩所带出来的JAVA konwhow.因为我们的项目对照庞大,我在这里接纳对照复杂的例子来说解这个成绩。起首,我们有2个类:supper.TestSupper.java 和sub.TestSub.java。他们的代码是如许的:packagesupper;publicclassTestSupper{StringgetString(){return"Thisissupperclass.";}}-----------------------------------packagesub;importsupper.TestSupper;publicclassTestSubextendsTestSupper{publicStringgetString(){return"Thisissubclass.";}}非常复杂,第一眼看上往,你会以为TestSub承继了TestSupper而且重写getString()办法。如今我们写一个测试程序:packagesupper;importsub.TestSub;publicclassTest{publicstaticvoidmain(String[]args){TestSuppertest=newTestSub();System.out.println(test.getString());}}请注重啊!测试程序和TestSupper在统一个包里。从实际上说,这个测试程序应当输入“Thisissubclass”,由于test的实体是一个TestSub对象而不是TestSupper。以是,当我们挪用test.getString()时,真正被挪用的应当是TestSub里的getString()。但是现实怎样呢?输入是"Thisissupperclass."!为何会如许的?缘故原由很复杂,由于在TestSupper里办法getString()的标签(signature)是"default",是默许的不必写出来。这招致这个办法只能在这个包内里可见。TestSub固然承继了TestSupper,却没有举措“瞥见”getString()办法,由于TestSub在别的一个包里。以是当我们在测试程序里挪用test.getString(),程序起首会寻觅TestSub中是不是重写了这个办法,在这里请必定要注重标签是default的,固然是没有发明。了局程序就会挪用父类的响应办法,故父类中的了局就被输入了。办理的举措很复杂,凡是是要被重写的办法必定不克不及界说成“default”,起码要界说成"protected”.假如你是在利用Eclipse的话,你能够在eclipse中举行设置,把这类情形视为Error就能够制止这类毛病的发生。办法是:window ->preferences -> style ->methods overridden but not pachage visible这项选为Error。我用的是eclipse3.0。后话别看这是个很小的成绩,并且很复杂,一看就分明,但是当体系呈现了成绩,而你要在几百个类中寻觅到成绩地点的时分,这类不容易发觉的毛病相对是致命的。寻觅这个毛病花了我们2团体天!可骇吧!
学习JAVA的目的更多的是培养自身的工作能力,我觉得工作能力的一个核心就是:独立思考能力,因为只有独立思考后,才会有自己的见解
只想知道 该用户已被删除
沙发
发表于 2015-1-21 15:12:36 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
若相依 该用户已被删除
板凳
发表于 2015-1-28 12:06:12 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
分手快乐 该用户已被删除
地板
 楼主| 发表于 2015-2-5 14:37:39 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
莫相离 该用户已被删除
5#
发表于 2015-2-12 06:40:14 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-3-7 19:31:10 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
柔情似水 该用户已被删除
7#
发表于 2015-3-15 05:02:50 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
简单生活 该用户已被删除
8#
发表于 2015-3-21 18:29:57 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
变相怪杰 该用户已被删除
9#
发表于 2015-3-26 19:54:56 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
谁可相欹 该用户已被删除
10#
发表于 2015-4-3 02:54:42 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
爱飞 该用户已被删除
11#
发表于 2015-4-9 12:17:52 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
冷月葬花魂 该用户已被删除
12#
发表于 2015-4-10 13:29:48 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
小魔女 该用户已被删除
13#
发表于 2015-4-16 15:10:20 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
乐观 该用户已被删除
14#
发表于 2015-5-3 08:18:07 | 只看该作者
是一种为 Internet发展的计算机语言
金色的骷髅 该用户已被删除
15#
发表于 2015-5-6 15:09:43 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
小妖女 该用户已被删除
16#
发表于 2015-5-6 22:54:12 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
因胸联盟 该用户已被删除
17#
发表于 2015-6-4 20:53:37 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
飘灵儿 该用户已被删除
18#
发表于 2015-6-5 02:01:41 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
飘飘悠悠 该用户已被删除
19#
发表于 2015-6-6 18:49:19 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
20#
发表于 2015-6-12 14:12:35 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-8 18:45

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表