zoukankan      html  css  js  c++  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;
                 }
        }

  • 相关阅读:
    MyGame--java语言编写的打飞机游戏(附源码下载)
    调用MyFocus库,简单实现二十几种轮播效果
    aBowman >>可以运用到自己博客上的小插件
    css通用小笔记03——浏览器窗口变小 div错位的问题
    css通用小笔记02——浮动、清除(三个例子)
    css通用小笔记01——导航背景
    PHP强制转换类型
    数据库---查询语句(三):高级查询
    数据库---T-SQL语句:查询语句(二)
    数据库---T-SQL语句(一)
  • 原文地址:https://www.cnblogs.com/delphione/p/2988363.html
Copyright © 2011-2022 走看看