美文网首页
Java this关键字

Java this关键字

作者: 糖砂西红柿 | 来源:发表于2018-06-19 14:33 被阅读5次

    源码:


    图片.png
    图片.png

    输出结果:

    图片.png
    在main方法中打印出来new出来的那个实例对象的地址是student.Xx@7b1d7fff
    在new实例化对象的时候,调用构造函数时打印出来的this也是student.Xx@7b1d7fff
    打印出来成员方法中的this也是student.Xx@7b1d7fff

    综上,new关键字应该是先执行的,作用是根据开辟堆内存空间,创建出来对象的引用就是student.Xx@7b1d7fff,而调用构造方法时,通过this关键字访问的属性并不是类中的属性,而是实例化的那个对象中的属性(此时该对象属性为初始值),构造函数的作用就是对new出来的那个对象的属性进行初始化。以为this指向的是创建出来的那个堆内存空间,所以如果在静态方法中访问this会出现这样一个问题,类是由JVM生成的,生成类后类的静态方法就可以访问了,因为this总是指向新开辟的那个堆内存空间,此时并没有调用new关键字开辟内存空间,所以JVM创建一个类后,静态方法中的this并没有明确指向,这样再通过this调用,逻辑就会出错。这也是为什么编译时,静态方法中不允许出现this关键字的原因。
    ***记住一点,this总是指向new出来的那个堆内存空间就行了。

    相关文章

      网友评论

          本文标题:Java this关键字

          本文链接:https://www.haomeiwen.com/subject/yguaeftx.html