java中this的几种用法

无纤尘

1、为什么要引入this?
先看一个例子

  class Person{
        public int age = 17;
        public String name ="岳岳";
        void speak() {
           System.out.println(age);
        }
            public Person(a){
                  age = a
                  System.out.println("调用了有参数构造方法");
            }     
   }

使用变量表示年龄,构造方法局部变量使用的是a,可读性差,如果将构造方法局部变量设为age,又会与成员变量冲突,那么如果引进一个this,来指代当前变量,那么问题就解决了。

2、this的三种用法

(1)this调用成员变量,解决与局部变量命名冲突,代码如下:

            public Person(age){
                  this.age = age
                  System.out.println("调用了有参数构造方法");
            }     

(2)this调用成员方法,this.getXxx();当然不用this也行getXxx();

(3)this调用构造方法

构造方法是在实例化对象过程中被java虚拟机自动调用的,不能像调用其他方法一样调用构造方法,但可以在构造方法中通过this调用其他构造方法

注意:

只能在构造方法中通过this调用其他构造方法。只能在构造方法中,不能在其他构造方法中。

this出现在构造方法中第一行,且只出现一次

两个构造方法不能相互用this调用

版权协议须知!

本篇文章来源于 网络转载 ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

none

10424 0 2019-11-07


分享:
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
  • 默认
  • 护眼
  • 夜晚
  • 壁纸
  • 默认