黑马程序员技术交流社区

标题: 分享 :Java this变量总结 [打印本页]

作者: 张超超    时间: 2012-4-16 12:55
标题: 分享 :Java this变量总结
this为一系统资源,只允许用户读而不允许写,它存放当前对象的地址(引用)。  this变量有以下作用:
  1. 构造方法重用:
  public class Rectangle{
  public Rectangle(Location at, Shape size) {…}
  public Rectangle(Shape size,Location at){
  this(at, size); }
  public Rectangle(Location at) {
  this(at, new Shape(100,100));
  }
  public Rectangle(Shape size) {
  this(size, new Location(1,1));
  }
  public Rectangle() {
  this(new Location(1,1), new Shape(100,100));
  }
  }
  2、消除歧义:
  Location{
  private int x;
  private int y;
  public Location(int x,int y) {
  this.x=x;
  this.y=y;
  }
  ……
  }
  3、返回对象-链式方法调用:
  public class Count {
  private int i = 0;
  Count increment() {
  i++;
  return this; //返回对象的地址,所以我们可以链式访问它
  }
  void print() {
  System.out.println("i = " + i);
  }
  }
  public class CountTest{
  public static void main(String[] args) {
  Count x = new Count();
  x.increment().increment().print();
  }
  }
  4、作为参数传递"this”变量-进行回调:
  假设有一个容器类和一个部件类,在容器类的某个方法中要创建部件类的实例对象,而部件类的构造方法要接受一个代表其所在容器的参数。例如:
  class Container
  {
  Component comp;
  public void addComponent()
  {
  comp = new Component(this); //代表你所创建的对象,因为它要用到.
  }
  }
  class Component
  {
  Container myContainer;
  public Component(Container c)
  {
  myContainer = c;
  }
  }


作者: 张卯    时间: 2012-4-16 13:01
多谢分享~!
作者: 韩新凯    时间: 2012-4-17 22:22
挺好的呵呵




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2