发布日期:2013-03-06 15:09 来源:未知 标签: Java this 关键字
 

this为一系统资源,只允许用户读而不允许写,它存放当前对象的地址(引用)。

Java关键字this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this。因此,this只能在类中的非静态方法中使用。并且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;
             }
    }

 

相关评论

专题信息
    本教程的主要讲解java语言的核心基础知识,使读者能有个良好的语言基础,为以后进一步提高打下基础。宗旨是帮助更多想学习java的朋友快速入门,如果你是一个Java语言的初学者,那么就从Java教程,java数组,java环境变量配置,java网络编程,技巧等这里开始学习Java吧!