仓酷云

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

[学习教程] 了解下JAVA的java接口例子

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

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

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

x
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......
“interface”(接口)关头字使笼统的观点更深切了一层。我们可将其设想为一个“纯”笼统类。它同意创立者划定一个类的基础情势:办法名、自变量列表和前往范例,但不划定办法主体。接口也包括了基础数据范例的数据成员,但它们都默许为static和final。接口只供应一种情势,其实不供应实行的细节。
接口如许形貌本人:“关于完成我的一切类,看起来都应当象我如今这个模样”。因而,接纳了一个特定接口的一切代码都晓得关于谁人接口大概会挪用甚么办法。这即是接口的全体寄义。以是我们常把接口用于创建类和类之间的一个“协定”。有些面向对象的程序计划言语接纳了一个名为“protocol”(协定)的关头字,它做的即是与接口不异的事变。
为创立一个接口,请利用interface关头字,而不要用class。与类类似,我们可在interface关头字的后面增添一个public关头字(但只要接口界说于同名的一个文件内);大概将其省略,营建一种“友爱的”形态。
为了天生与一个特定的接口(或一组接口)符合的类,要利用implements(完成)关头字。我们要表达的意义是“接口看起来就象谁人模样,这儿是它详细的事情细节”。除这些以外,我们其他的事情都与承继极其类似。上面是乐器例子的表示图:

<br>
详细完成了一个接口今后,就取得了一个一般的类,可用尺度体例对其举行扩大。
可决意将一个接口中的办法声明显断定义为“public”。但即使不明白界说,它们也会默许为public。以是在完成一个接口的时分,来自接口的办法必需界说成public。不然的话,它们会默许为“友爱的”,并且会限定我们在承继过程当中对一个办法的会见——Java编译器不同意我们那样做。
在Instrument例子的修正版本中,人人可明白地看出这一点。注重接口中的每一个办法都严厉地是一个声明,它是编译器独一同意的。除此之外,Instrument5中没有一个办法被声明为public,但它们城市主动取得public属性。以下所示:
  1. //:Music5.java
  2. //Interfaces
  3. importjava.util.*;
  4. interfaceInstrument5{
  5. //Compile-timeconstant:
  6. inti=5;//static&final
  7. //Cannothavemethoddefinitions:
  8. voidplay();//Automaticallypublic
  9. Stringwhat();
  10. voidadjust();
  11. }
  12. classWind5implementsInstrument5{
  13. publicvoidplay(){
  14. System.out.println("Wind5.play()");
  15. }
  16. publicStringwhat(){return"Wind5";}
  17. publicvoidadjust(){}
  18. }
  19. classPercussion5implementsInstrument5{
  20. publicvoidplay(){
  21. System.out.println("Percussion5.play()");
  22. }
  23. publicStringwhat(){return"Percussion5";}
  24. publicvoidadjust(){}
  25. }
  26. classStringed5implementsInstrument5{
  27. publicvoidplay(){
  28. System.out.println("Stringed5.play()");
  29. }
  30. publicStringwhat(){return"Stringed5";}
  31. publicvoidadjust(){}
  32. }
  33. classBrass5extendsWind5{
  34. publicvoidplay(){
  35. System.out.println("Brass5.play()");
  36. }
  37. publicvoidadjust(){
  38. System.out.println("Brass5.adjust()");
  39. }
  40. }
  41. classWoodwind5extendsWind5{
  42. publicvoidplay(){
  43. System.out.println("Woodwind5.play()");
  44. }
  45. publicStringwhat(){return"Woodwind5";}
  46. }
  47. publicclassMusic5{
  48. //Doesntcareabouttype,sonewtypes
  49. //addedtothesystemstillworkright:
  50. staticvoidtune(Instrument5i){
  51. //...
  52. i.play();
  53. }
  54. staticvoidtuneAll(Instrument5[]e){
  55. for(inti=0;i<e.length;i++)
  56. tune(e[i]);
  57. }
  58. publicstaticvoidmain(String[]args){
  59. Instrument5[]orchestra=newInstrument5[5];
  60. inti=0;
  61. //Upcastingduringadditiontothearray:
  62. orchestra[i++]=newWind5();
  63. orchestra[i++]=newPercussion5();
  64. orchestra[i++]=newStringed5();
  65. orchestra[i++]=newBrass5();
  66. orchestra[i++]=newWoodwind5();
  67. tuneAll(orchestra);
  68. }
  69. }///:~
复制代码
代码残剩的部分按不异的体例事情。我们能够自在决意上溯外型到一个名为Instrument5的“一般”类,一个名为Instrument5的“笼统”类,大概一个名为Instrument5的“接口”。一切举动都是不异的。现实上,我们在tune()办法中能够发明没有任何证据显现Instrument5究竟是个“一般”类、“笼统”类仍是一个“接口”。这是做是存心的:每种办法都使程序员能对对象的创立与利用举行分歧的把持。
比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。
莫相离 该用户已被删除
沙发
发表于 2015-1-19 19:24:15 | 只看该作者
是一种使用者不需花费很多时间学习的语言
小魔女 该用户已被删除
板凳
发表于 2015-2-1 19:35:15 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
乐观 该用户已被删除
地板
发表于 2015-2-6 16:25:56 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
若相依 该用户已被删除
5#
发表于 2015-2-7 00:53:00 | 只看该作者
是一种使用者不需花费很多时间学习的语言
谁可相欹 该用户已被删除
6#
发表于 2015-2-9 16:56:42 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
再现理想 该用户已被删除
7#
发表于 2015-2-9 17:09:01 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
因胸联盟 该用户已被删除
8#
发表于 2015-2-14 17:23:47 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-4 08:57:51 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
第二个灵魂 该用户已被删除
10#
发表于 2015-3-11 18:08:03 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
山那边是海 该用户已被删除
11#
发表于 2015-3-13 23:07:14 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
愤怒的大鸟 该用户已被删除
12#
发表于 2015-3-18 08:19:43 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
分手快乐 该用户已被删除
13#
发表于 2015-3-22 17:10:34 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
海妖 该用户已被删除
14#
发表于 2015-4-6 20:11:23 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
小妖女 该用户已被删除
15#
发表于 2015-4-7 18:35:06 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
不帅 该用户已被删除
16#
发表于 2015-4-15 04:57:25 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
admin 该用户已被删除
17#
发表于 2015-4-22 23:12:32 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
爱飞 该用户已被删除
18#
 楼主| 发表于 2015-5-4 21:37:11 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
蒙在股里 该用户已被删除
19#
发表于 2015-5-9 18:41:43 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
活着的死人 该用户已被删除
20#
发表于 2015-6-4 02:26:08 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-14 16:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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