Java中this关键字的用法

首先我们需要知道this代表什么??


this关键字代表本类,例如Class Student
类中的this即代表Student,另外要注意一点,this关键字只能在方法内使用,方法外使用是编译不通过的!!!

用法一:this.属性名
this表示当前类,this.属性名可以给当前类的属性赋值,可以在本类中除静态方法外的任何方法(包括构造器、私有方法)中使用,这里要注意static的特性(1.遵循静态调用 2·stati关键字不能与this、super关键字共用)。
另外,若本类成员变量与方法内局部变量同名,this.属性名代表的是什么呢??
当然是局部变量了,因为Java遵循就近原则,通俗地讲,就是谁离我近,我就代表谁。
代码实现:

class Student{
    String name;
    public void hello(){
        this.name=name;
    }
}

用法二:this.方法
这里比较好理解,this代表本类,this.方法即调用方法,除了静态方法中不可使用,本类其他方法包括私有方法均可使用此格式调用其他方法,只是我们通常省略this关键字。
代码实现:

class Student{
    String name;
    public void hello(){
        this.name=name;
    }
//    this.name=name;this需要在方法内使用
    public void hi(){
        this.hello();
        hello();
        he();
    }
    private void he(){
        this.name=name;
        hello();
        this.he();
    }
}


用法三:this()
此格式用于构造器内,比如我们可以在无参构造内调用含参构造,那么这时候就需要在this()传入参数来实现,同理要想在含参构造内调用无参构造,只需在构造器代码第一行写this()即可,但是注意,this()与this(参数列表)不可同时使用!
代码实现:

public Student(){
        this("name");
        this.name=name;
     this.he();
    }
    public Student(String name){
//        this();两个this不能一起使用
    }

 注意:

 static void play(){
//        this.name=name;静态不能调用非静态
    }

若有错请批评指正,共勉~

  • 11
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值