网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.java中按字节截取String字符串..
.JAVAONE:虚拟机及并行语言项目.
.JBoss技术支持文档.
.对Java同步一些理解.
.剖析.Net下的数据访问层技术(4).
.Java性能探寻.
.开源技术:Hibernate 3注释简介.
..NET2005提供的Code Snippets看代.
.全面挖掘Java Excel API 使用方法.
.一个简单实用的数据库操作框架.
.Web应用中Java的速度真相探讨.
.Java应用:两种Java容器类List和.
.两点Javamail的开发与应用总结经.
.Java 理论与实践:嗨,我的线程到.
.Java 库的建立方法及其实例.
.Java程序的反编译问题.
.Java Socket编程.
.在Panel中实现菜单功能.
.Hibernate对多表关联查询.
.Java开源架构Jdon应用系统案例开.

Java的表达式

发表日期:2008-1-5



  我们曾说 Java(TM) 编程语言的语法功能强大。As an example of this eXPressiveness,表达式求值顺序,下面我们将讲述怎样设计一个支持 "串联方法求值(chained method evaluation)" 的类。
  Java 虚拟机对表达式的求值按照从左到右的顺序,并遵循标准的运算优先级法则。当然,与其他语言一样,求值顺序还可以用()来控制:
  int x = (4 + 32) / (2 + 1); // x == 12
  前面讲过,new 操作符按从左到右的求值次序,这使得新创建一个对象并用一个 "." 后跟某个方法来完成某个操作十分方便:
   new Dog().bark();
  此表达式求值过程如下:
  new Dog() 生成一个 Dog的无名实例,暂称其为 "dogWithNoName"。该实例捆绑 bark() 方法并执行它。
  "dogWithNoName.bark()"
  此处的一个要点是 Java 编程语言按从左到右的原则继续这种 "求值加捆绑" 策略直至完成了整个表达式的操作。因此,只要 "." 左边的值是一个对象,右边是一个方法,Java 虚拟机就会将方法捆绑到对象上,并执行相应的操作。
  请看下面的程序:
  public class EvalDemo {
   public static void main(String[] args) {
   EvalDemo e = new EvalDemo();
   e.printIt("One, ")
   .printIt("Two, ")
   .printIt("Three.");
   }
   public EvalDemo printIt(String s) {
   System.out.print(s);
   return this;
   }
  }
  该程序中定义了一个含有很有趣的设计的方法 printIt(),其返回类型为类名 EvalDemo ,方法的最后是一个 return 语句,返回当前实例,即 this。因此,对于该类的一个给定实例,我们可以编写如下代码:
  e.printIt("One, ").printIt("Two, ").printIt("Three.");
  对 printIt() 的每一个调用都完成一个单位工作,此处为输出一条信息,并且 再一次生成 (求取) 当前对象。表达式求值得以继续进行:
   .printIt("Two, ").printIt("Three.");
  求值过程直到整个表达式都算完才结束。
  该程序的输出证实了从左到右的计算规则:
  D:\>java EvalDemo
  One, Two, Three.
  任何时候当你有一个带 void 方法的类需要设计时,也就是说,方法不需要返回返回某个特定值时,你可以用该策略来支持方法串联。
上一篇:Sun 计划升级Java技术规范 人气:522
下一篇:Java的数组操作 人气:1127
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐