什么是 this

什么是 this?this 代表一个对象本身。

换句话说,只有在对象中运行的代码才能使用 this。什么是在对象中运行的代码?就是所有的非静态的方法和成员。例如:

public class Person {  
    public String name;  
      
    public String toString() {  
        return this.name;  
    }  
}  

因为 toString() 方法不是静态的,所以它可以使用 this 关键字。

基本上,this 关键字都可以省略 ;但是当存在同名的本地变量(参数也是本地变量)的时候,Java 就会优先取本地变量:

public class Person {  
    public String name;  
      
    public String toString() {  
        String name = "hi";  
        return name;  
    }  
}  

这里,return name 返回的将是 "hi",而不是上面的 name 属性。为了代码阅读方便,建议不要省略 this。

静态方法、静态成员和静态域可以在没有实例的情况下执行,这时候 this 没有任何意义,所以这些地方不能使用 this。

public class Person {  
   
    static {  
        this.name = "hi"; // 错误,因为这段代码并不访问任何实例  
    }  
   
    public String name;  
  
    public static String toString() {  
        return this.name; // 错误,因为静态方法并不访问任何实例  
    }  
}  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值