栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中this关键字

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中this关键字

1.当局部变量与成员变量重名时,用于区分成员变量与局部变量,this.属性名表示成员变量(属性)。

class A{
    String name;

    public A() {

    }

    public A(String name) {
        //成员变量和局部变量重名,可以用关键字this区分
        this.name = name;
   
    }
}

2.在本类构造函数中,调用其他的构造函数。说白了就是在无参构造中调用有参或者在有参中调用无参,且两者不能同时调用。

public class Demo {
    public static void main(String[] args) {
        A a = new A();
    }
}

class A{
     String name;

    public A() {
        System.out.println("A类的无参构造被调用");
    }

    public A(String name) {
        this.name = name;
        System.out.println("A类的有参构造被调用");
    }
}

 此时调用了A类的无参构造。

public class Demo {
    public static void main(String[] args) {
        A a = new A();
    }
}

class A{
     String name;

    public A() {
        //加了this();之后,会在A类的无参构造中去调用A类的有参构造
        this("陌人不故");
        System.out.println("A类de无参构造被调用");
    }

    public A(String name) {
        this.name = name;
        System.out.println("A类的有参构造被调用");
    }
}

当在A类的无参构造中,使用this();;时,A类的有参构造也被调用了。

        注意:

                 this(实参列表);必须在构造函数第一行,否则就会报错。

                不能同时在无参里面调有参,有参里面调无参。

3.在本类中调用本类其他属性或方法,此时this可以忽略不写。

public class Demo {
    public static void main(String[] args) {
        A a = new A();
       
    }
}

class A{

    String name;

    public A() {
        System.out.println("A类的无参构造被调用");
    }

    public A(String name) {
        this();
        this.name = name;
        System.out.println("A类的有参构造被调用");
    }
   
    public void test(){
        System.out.println("this关键字");
        //本来是应该System.out.println(this.name);这样,但此时this可以省略不写,
          就成了System.out.println(name);
        System.out.println(name);
        
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/987812.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号