仓酷云

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

[学习教程] 了解下JAVA的Java的外部类和匿名类

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

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

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

x
在1995年5月23日以“Java”的名称正式发布了。
提起Java外部类(InnerClass)大概良多人不太熟习,实践上相似的观点在C++里也有,那就是嵌套类(NestedClass),关于这二者的区分与接洽,鄙人文中会有对照。外部类从外表上看,就是在类中又界说了一个类(下文会看到,外部类能够在良多中央界说),而实践上并没有那末复杂,乍看上往外部相似乎有些过剩,它的用途关于初学者来讲大概并非那末明显,可是跟着对它的深切懂得,你会发明Java的计划者在外部类身上切实其实是用心良苦。学会利用外部类,是把握Java初级编程的一部分,它可让你更文雅地计划你的程序布局。上面从以下几个方面来先容:第一次会晤
  1. publicinterfaceContents{
  2. intvalue();
  3. }
  4. publicinterfaceDestination{
  5. StringreadLabel();
  6. }
  7. publicclassGoods{
  8. privateclassContentimplementsContents{
  9. privateinti=11;
  10. publicintvalue(){
  11. returni;
  12. }
  13. }
  14. protectedclassGDestinationimplementsDestination{
  15. privateStringlabel;
  16. privateGDestination(StringwhereTo){
  17. label=whereTo;
  18. }
  19. publicStringreadLabel(){
  20. returnlabel;
  21. }
  22. }
  23. publicDestinationdest(Strings){
  24. returnnewGDestination(s);
  25. }
  26. publicContentscont(){
  27. returnnewContent();
  28. }
  29. }
  30. classTestGoods{
  31. publicstaticvoidmain(String[]args){
  32. Goodsp=newGoods();
  33. Contentsc=p.cont();
  34. Destinationd=p.dest("Beijing");
  35. }
  36. }
复制代码
在这个例子里类Content和GDestination被界说在了类Goods外部,而且分离有着protected和private润色符来把持会见级别。Content代表着Goods的内容,而GDestination代表着Goods的目标地。它们分离完成了两个接口Content和Destination。在前面的main办法里,间接用Contentsc和Destinationd举行操纵,你乃至连这两个外部类的名字都没有瞥见!如许,外部类的第一个优点就表现出来了——埋没你不想让他人晓得的操纵,也即封装性。
同时,我们也发明了在内部类感化局限以外失掉外部类对象的第一个办法,那就是使用其内部类的办法创立并前往。上例中的cont()和dest()办法就是这么做的。那末另有没有其余办法呢?固然有,其语法格局以下:outerObject=newouterClass(ConstructorParameters);
outerClass.innerClassinnerObject=outerObject.newInnerClass(ConstructorParameters);
注重在创立非静态外部类对象时,必定要先创立起响应的内部类对象。至于缘故原由,也就引出了我们下一个话题——
非静态外部类对象有着指向其内部类对象的援用
对方才的例子稍作修正:
[code]publicclassGoods{privatevalueRate=2;privateclassContentimplementsContents{privateinti=11*valueRate;publicintvalue(){returni;}}protectedclassGDestinationimplementsDestination{privateStringlabel;privateGDestination(StringwhereTo){label=whereTo;}publicStringreadLabel(){returnlabel;}}publicDestinationdest(Strings){returnnewGDestination(s);}publicContentscont(){returnnewContent();}}
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net网页编程和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点
山那边是海 该用户已被删除
沙发
发表于 2015-1-21 10:20:00 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
若天明 该用户已被删除
板凳
发表于 2015-1-24 16:01:03 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
地板
发表于 2015-2-2 08:25:27 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
谁可相欹 该用户已被删除
5#
发表于 2015-2-7 17:36:31 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
飘飘悠悠 该用户已被删除
6#
发表于 2015-2-7 18:39:35 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
变相怪杰 该用户已被删除
7#
发表于 2015-2-10 07:15:36 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
老尸 该用户已被删除
8#
发表于 2015-2-20 01:48:40 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
蒙在股里 该用户已被删除
9#
发表于 2015-2-25 21:07:40 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
愤怒的大鸟 该用户已被删除
10#
发表于 2015-3-5 09:01:28 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
深爱那片海 该用户已被删除
11#
发表于 2015-3-12 02:25:07 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
海妖 该用户已被删除
12#
发表于 2015-3-19 17:32:50 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
飘灵儿 该用户已被删除
13#
发表于 2015-3-20 06:30:14 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
第二个灵魂 该用户已被删除
14#
发表于 2015-4-3 23:28:08 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
精灵巫婆 该用户已被删除
15#
发表于 2015-4-17 00:05:27 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
admin 该用户已被删除
16#
发表于 2015-4-23 02:30:22 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
再见西城 该用户已被删除
17#
发表于 2015-5-4 03:49:38 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
小妖女 该用户已被删除
18#
发表于 2015-5-5 18:35:16 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
透明 该用户已被删除
19#
发表于 2015-6-9 04:38:56 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
兰色精灵 该用户已被删除
20#
发表于 2015-6-20 21:53:41 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-12 22:49

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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