仓酷云

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

[学习教程] 了解下JAVA的多形对象的交换利用

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

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

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

x
没有那个大公司会傻了吧唧用.net网页编程开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net网页编程不行,限制在window系统,又是捆绑,鄙视微软之!
一般,承继终极会以创立一系列类开场,一切类都创建在一致的接口基本上。我们用一幅倒置的树形图来分析这一点(正文⑤):

⑤:这儿接纳了“一致暗号法”,本书将次要接纳这类办法。

<br>
对如许的一系列类,我们要举行的一项主要处置就是将衍生类的对象看成基本类的一个对象看待。这一点长短常主要的,由于它意味着我们只需编写单一的代码,令其疏忽范例的特定细节,只与基本类打交道。如许一来,那些代码便可与范例信息分隔。以是更容易编写,也更容易了解。别的,若经由过程承继增加了一种新范例,如“三角形”,那末我们为“多少外形”新范例编写的代码会象在旧范例里一样优秀地事情。以是说程序具有了“扩大才能”,具有“扩大性”。
以下面的例子为基本,假定我们用Java写了如许一个函数:

  1. voiddoStuff(Shapes){
  2. s.erase();
  3. //...
  4. s.draw();
  5. }
复制代码
这个函数可与任何“多少外形”(Shape)通讯,以是完整自力于它要刻画(draw)和删除(erase)的任何特定范例的对象。假如我们在其他一些程序里利用doStuff()函数:
  1. Circlec=newCircle();
  2. Trianglet=newTriangle();
  3. Linel=newLine();
  4. doStuff(c);
  5. doStuff(t);
  6. doStuff(l);
复制代码
那末对doStuff()的挪用会主动优秀地事情,不管对象的详细范例是甚么。
这实践是一个十分有效的编程技能。请思索上面这行代码:
doStuff(c);
此时,一个Circle(圆)句柄传送给一个原本等候Shape(外形)句柄的函数。因为圆是一种多少外形,以是doStuff()能准确地举行处置。也就是说,但凡doStuff()能发给一个Shape的动静,Circle也能吸收。以是如许做是平安的,不会形成毛病。
我们将这类把衍生范例看成它的基础范例处置的历程叫作“Upcasting”(上溯外型)。个中,“cast”(外型)是指依据一个现成的模子创立;而“Up”(向上)标明承继的偏向是从“下面”来的——即基本类位于顶部,而衍生类鄙人方睁开。以是,依据基本类举行外型就是一个从下面承继的历程,即“Upcasting”。
在面向对象的程序里,一般都要用到上溯外型手艺。这是制止往查询拜访正确范例的一个好举措。请看看doStuff()里的代码:

s.erase();
//...
s.draw();

注重它并未如许表达:“假如你是一个Circle,就如许做;假如你是一个Square,就那样做;等等”。若那样编写代码,就需反省一个Shape一切大概的范例,如圆、矩形等等。这明显长短常贫苦的,并且每次增加了一种新的Shape范例后,都要响应地举行修正。在这儿,我们只需说:“你是一种多少外形,我晓得你能将本人删失落,即erase();请本人接纳谁人举动,并本人往把持一切的细节吧。”
什么时候上述的三种开发工具能和三为一,什么时候java的竞争力才更强,才有机会拉拢更多的程序员投入到对java的开发上,因为到时的开发工具将会比.net网页编程的更简单。还有一点也很关键,什么时候java推出的jsf能成为真正意义上的标准。
admin 该用户已被删除
沙发
发表于 2015-1-21 11:21:27 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
蒙在股里 该用户已被删除
板凳
发表于 2015-1-21 11:21:27 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
愤怒的大鸟 该用户已被删除
地板
发表于 2015-1-29 11:38:25 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
第二个灵魂 该用户已被删除
5#
发表于 2015-2-6 00:35:00 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
小魔女 该用户已被删除
6#
发表于 2015-2-14 16:41:30 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
透明 该用户已被删除
7#
发表于 2015-2-15 11:41:09 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
只想知道 该用户已被删除
8#
发表于 2015-3-4 11:26:51 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
9#
发表于 2015-3-11 06:08:41 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
小妖女 该用户已被删除
10#
发表于 2015-3-11 17:11:36 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
变相怪杰 该用户已被删除
11#
发表于 2015-3-19 02:52:14 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
金色的骷髅 该用户已被删除
12#
发表于 2015-3-27 01:10:21 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
兰色精灵 该用户已被删除
13#
发表于 2015-4-4 18:37:22 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
精灵巫婆 该用户已被删除
14#
发表于 2015-4-12 20:22:52 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
再见西城 该用户已被删除
15#
发表于 2015-4-21 21:11:40 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
因胸联盟 该用户已被删除
16#
发表于 2015-4-26 19:18:23 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
简单生活 该用户已被删除
17#
发表于 2015-5-6 23:11:33 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
谁可相欹 该用户已被删除
18#
发表于 2015-5-12 14:32:15 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
若天明 该用户已被删除
19#
发表于 2015-6-10 13:58:10 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
柔情似水 该用户已被删除
20#
发表于 2015-6-28 01:01:59 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-29 09:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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