仓酷云

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

[学习教程] 来看外部类和上溯外型

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:36:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
通过视频学习比传统的大课堂学习更适合成人化的学习规律。有人说大课堂气氛好,学习氛围浓,热闹,可以认识很多人。
迄今为止,外部类看起来仍旧没甚么出格的中央。究竟,用它完成埋没显得有些年夜题小做。Java已有一个十分优异的埋没机制——只同意类成为“友爱的”(只在一个包内可见),而不是把它创立成一个外部类。
但是,当我们筹办上溯外型到一个基本类(出格是到一个接口)的时分,外部类就入手下手发扬其关头感化(从用于完成的对象天生一个接口句柄具有与上溯外型至一个基本类不异的效果)。这是因为外部类随后可完整进进不成见或不成用形态——对任何人都将云云。以是我们能够十分便利地埋没实行细节。我们失掉的全体报答就是一个基本类大概接口的句柄,并且乃至有大概不晓得正确的范例。就象上面如许:
  1. //:Parcel3.java
  2. //Returningahandletoaninnerclass
  3. packagec07.parcel3;
  4. abstractclassContents{
  5. abstractpublicintvalue();
  6. }
  7. interfaceDestination{
  8. StringreadLabel();
  9. }
  10. publicclassParcel3{
  11. privateclassPContentsextendsContents{
  12. privateinti=11;
  13. publicintvalue(){returni;}
  14. }
  15. protectedclassPDestination
  16. implementsDestination{
  17. privateStringlabel;
  18. privatePDestination(StringwhereTo){
  19. label=whereTo;
  20. }
  21. publicStringreadLabel(){returnlabel;}
  22. }
  23. publicDestinationdest(Strings){
  24. returnnewPDestination(s);
  25. }
  26. publicContentscont(){
  27. returnnewPContents();
  28. }
  29. }
  30. classTest{
  31. publicstaticvoidmain(String[]args){
  32. Parcel3p=newParcel3();
  33. Contentsc=p.cont();
  34. Destinationd=p.dest("Tanzania");
  35. //Illegal--cantaccessprivateclass:
  36. //!Parcel3.PContentsc=p.newPContents();
  37. }
  38. }///:~
复制代码
如今,Contents和Destination代表可由客户程序员利用的接口(记着接口会将本人的一切成员都酿成public属性)。为便利起见,它们置于独自一个文件里,但原始的Contents和Destination在它们本人的文件中是互相public的。
在Parcel3中,一些新工具已到场:外部类PContents被设为private,以是除Parcel3以外,其他任何工具都不克不及会见它。PDestination被设为protected,以是除Parcel3,Parcel3包内的类(由于protected也为包付与了会见权;也就是说,protected也是“友爱的”),和Parcel3的承继者以外,其他任何工具都不克不及会见PDestination。这意味着客户程序员对这些成员的熟悉与会见将会遭到限定。现实上,我们乃至不克不及下溯外型到一个private外部类(大概一个protected外部类,除非本人自己即是一个承继者),由于我们不克不及会见名字,就象在classTest里看到的那样。以是,使用private外部类,类计划职员可完整克制其别人依附范例编码,并可将详细的实行细节完整埋没起来。除此之外,从客户程序员的角度来看,一个接口的局限没成心义的,由于他们不克不及会见不属于大众接口类的任何分外办法。如许一来,Java编译器也无机会天生效力更高的代码。
一般(非外部)类不成设为private或protected——只同意public大概“友爱的”。
注重Contents不用成为一个笼统类。在这儿也能够利用一个一般类,但这类计划最典范的出发点仍然是一个“接口”。
Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发
因胸联盟 该用户已被删除
沙发
发表于 2015-1-21 10:52:46 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
admin 该用户已被删除
板凳
发表于 2015-1-24 07:46:01 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
爱飞 该用户已被删除
地板
发表于 2015-1-25 14:49:03 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
乐观 该用户已被删除
5#
发表于 2015-1-31 13:34:45 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
变相怪杰 该用户已被删除
6#
发表于 2015-2-1 16:52:01 来自手机 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
若天明 该用户已被删除
7#
发表于 2015-2-7 09:50:43 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
不帅 该用户已被删除
8#
发表于 2015-2-21 13:09:51 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-6 20:17:16 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
小女巫 该用户已被删除
10#
发表于 2015-3-11 06:05:33 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
若相依 该用户已被删除
11#
发表于 2015-3-13 23:09:26 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
灵魂腐蚀 该用户已被删除
12#
发表于 2015-3-20 21:20:21 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
只想知道 该用户已被删除
13#
发表于 2015-3-31 09:54:04 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
小妖女 该用户已被删除
14#
发表于 2015-4-3 09:17:29 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
柔情似水 该用户已被删除
15#
发表于 2015-4-5 23:57:16 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
活着的死人 该用户已被删除
16#
 楼主| 发表于 2015-4-12 13:41:39 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
飘飘悠悠 该用户已被删除
17#
发表于 2015-4-17 09:47:19 | 只看该作者
是一种突破用户端机器环境和CPU
老尸 该用户已被删除
18#
发表于 2015-4-20 07:33:38 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
山那边是海 该用户已被删除
19#
发表于 2015-4-20 13:27:37 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 01:37

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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