Java之中的this的深入的理解

java中的this。又两个重要的用途1.this指向的是本类的对象.用于区分成员变量和局部变量2.调用其他类型的构造方法.还是来看看下面的代码

/**
 * @author hackbase   this的深入理解
 */
public class TestThis {
    int id;
    String name;
    int age;

    public TestThis(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public TestThis(int id, String name, int age) {
        this(id, name);
        this.age = age;
    }

    public static void main(String[] args) {
        TestThis jack = new TestThis(12, "jack", 23);
        System.out.println("id:" + jack.id);
        System.out.println("name:" + jack.name);
        System.out.println("age:" + jack.age);
    }
}

在这里,我们首先要搞清楚对象是i如何创建的,分为一下四个步骤:

1.首先JVM给对象在堆里面分配内存空间。

2.完成成员属性显式的初始化的操作。

3.调用构造方法来进一步来实现对对象的初始化的操作.

4.将对象的引用赋值给一个变量。到这一步对象才创建完成.

在这里的构造方法一般是类的构造方法,我们没有提供构造方法的情况下JVM会嗲用无参数的构造方法,当我们重写构造

方法的时候,会调用我们创建的构造方法来完成对象的初始化的操作.

在上面的 代码里面,一段对象创建完成,那么this指向的就是本类对象。也就是我们的jack对象.

this.a实际上就是成员属性赋值给我们传递进来的值,我们传递进来的值赋值给了局部变量,用以达到区分成员变量和局部变量的目的,其次this还有一个重要的用法就是调用本类的其他的构造方法。此时,该代码必须写在程序的第一行,如上所述。

我们也可以像下面这样来实现.

this.a=a;
this.age=age;
this.name=name;

但是i这样写是非常的重复的,而且是很麻烦的。一般不建议。直接使用this(a,b)这样就可以。

猜你喜欢

转载自blog.csdn.net/hackerbaseing/article/details/89763026