网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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,移动开发
本月文章推荐
.变量范围.
.开发框架hibernate3.0开发实例.
.Java SE 6第一印象:赢在桌面.
.servlet的一些特点.
.抛砖引玉 教你如何成为一名Java初.
.开发框架:Java编程中Spring的一.
.用Ant和Eclipse有效地提高部署效.
.Eclipse快速上手指南之使用ANT.
.Java 国际化和本地化 Toolkit 2..
.Java 与 XML 结合使用的心得体会.
.面向对象思想之 -- 限制对象属性.
.常用的各种排序算法的JAVA实现.
.今天学习到的java中的几个知识点.
.您的 Java 代码安全吗?.
.截取指定长度的字符串.
.正则表达式在网络编程中的运用.
.JBuilder集成开发环境介绍.
.在Eclipse 3.1体验J2SE 5.0新特性.
.使用SQLMaps 进行对象关系映射.
.一个最简单的java程序.

Java中的this关键字

发表日期:2008-1-5



  假如有两个同类型的对象,分别叫作a和b,那么您也许不知道如何为这两个对象同时调用一个f()方法:
  
  class Banana { void f(int i) { /* ... */ } }
  Banana a = new Banana(), b = new Banana();
  a.f(1);
  b.f(2);
  
  若只有一个名叫f()的方法,它怎样才能知道自己是为a还是为b调用的呢?
  为了能用简便的、面向对象的语法来书写代码——亦即“将消息发给对象”,编译器为我们完成了一些幕后工作。其中的秘密就是第一个自变量传递给方法f(),而且那个自变量是预备操作的那个对象的句柄。所以前述的两个方法调用就变成了下面这样的形式:
  
  Banana.f(a,1);
  Banana.f(b,2);
  
  这是内部的表达形式,我们并不能这样书写表达式,并试图让编译器接受它。但是,通过它可理解幕后到底发生了什么事情。
  假定我们在一个方法的内部,并希望获得当前对象的句柄。由于那个句柄是由编译器“秘密”传递的,所以没有标识符可用。然而,针对这一目的有个专用的要害字:this。this要害字(注重只能在方法内部使用)可为已调用了其方法的那个对象生成相应的句柄。可象对待其他任何对象句柄一样对待这个句柄。但要注重,假若预备从自己某个类的另一个方法内部调用一个类方法,就不必使用this。只需简单地调用那个方法即可。当前的this句柄会自动应用于其他方法。所以我们能使用下面这样的代码:
  
  class Apricot {
  void pick() { /* ... */ }
  void pit() { pick(); /* ... */ }
  }
  
  在pit()内部,我们可以说this.pick(),但事实上无此必要。编译器能帮我们自动完成。this要害字只能用于那些非凡的类——需明确使用当前对象的句柄。例如,假若您希望将句柄返回给当前对象,那么它经常在return语句中使用。
  
  
  //: Leaf.Java
  // Simple use of the "this" keyWord
  
  public class Leaf {
   private int i = 0;
   Leaf increment() {
    i++;
    return this;
   }
   void print() {
    System.out.println("i = " + i);
   }
   public static void main(String[] args) {
    Leaf x = new Leaf();
    x.increment().increment().increment().print();
   }
  } ///:~
  
  由于increment()通过this要害字返回当前对象的句柄,所以可以方便地对同一个对象执行多项操作。
上一篇:确保正确的清除 人气:566
下一篇:Java中的static的含义 人气:1212
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐