JAVA this关键字

举报
啊Q老师 发表于 2022/04/12 18:48:05 2022/04/12
【摘要】 本文章介绍JAVA this关键字

this 在英语中是表示指示概念的代词,即用来指示或标识人或事物的代词。同理,在JAVA中代表它所在函数所属对象的引用,即哪个对象在调用this所在的函数,this就代表哪个对象。

public class thisTest
{ 
    public static void main(String[] args)
    {
        student student1 = new student();
        student1.name = "小学生" ;
        student1.pupil();

//student1对象调用pupil()方法,而pupil()方法中的 this 指代的就是 student1 对象
        
        student student2 = new student();
        student2.name = "大学生" ;
        student2.pupil();  //第二次调用pupil()方法中,this 则指的是 student2 对象
    }
}

class student
{
    String name ;
    public void pupil()
    {
        System.out.println(this.name);
    }
}

this 中 主要有三个应用:

1.this 可以调用本类的属性,即类中的成员变量。

class student
{
    String name ; // 成员变量name ,全局变量
    public void setName(String name)  //(参数name),局部变量
    {
        this.name = name ;  // 将局部变量的值传递给成员变量
    }
}

2. this 可以调用本类的方法,注意的是,static 修饰的方法不能够用 this 。

public class thisTest
{
    public static void main(String[] args)
    {
        new thisTest().pupil();  //创建一个对象调用pupil方法
    }
    public void pupil()
    {
        this.collegeStudent(); //调用collegeStudent方法
    }
    public void collegeStudent()
    {
        System.out.println("collegeStudent方法被调用了!");
    }
}

3.this 可以调用本类中的构造函数,注意:调用时要放在构造函数的首行。

public class thisTest
{
    public static void main(String[] args)
    {
        thisTest thisTest = new thisTest();  //调用无参构造函数
    }
    public thisTest()  //无参构造函数
    {
        this("小学生");  // 这句代码一定要放在本方法的第一行
    }
    public thisTest(String student)
    {
        System.out.println("我现在是一个" + student );
    }
}

无参构造函数虽然没有输出,但是该函数中的 this 调用了 有参构造函数 ,而有参构造函数则输出我现在是一个(student变量),所以创建一个无参构造函数的对象也是有输出的。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。