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

java this关键字用法

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

java this关键字用法

我们先来写一个小代码
新建一个包
在包下新建两个类
一个名叫 Telephone
Telephone类参考代码如下

public class Telephone {
    private int shou;
    public void setShou(int shou){
        shou = shou;
    }
    public int getShou(){
        return shou;
    }
}

然后测试类叫 text
text参考代码如下

public class text {
    public static void main(String args[]) {
        Telephone telephone = new Telephone();
        telephone.setShou(13);
        System.out.println(telephone.getShou());
    }
}

这里很明显 我们在Telephone中创建了一个成员变量shou 然后给他定义了 get 和 set方法
然后 我们在text中实例化Telephone对象 调用shou的set方法 给他赋值为 13
然后调用他的get 方法 在System.out.println中打印结果

运行结果如下

按道理来讲 我们用set赋值为 13 那么他的值应该是13 那么为什么是0呢?
问题出在shou 的set方法上

public void setShou(int shou){
  shou = shou;
}

因为方法接受的参数取名和成员变量的名字一样了 系统看不懂你要用哪一个 就都用方法的参数了
我们只需要将代码改成

public void setShou(int shou){
  this.shou = shou;
}


我们的值就能正常使用了

简单说
当局部变量 方法参数 和 类的成员变量重名时 this.变量名 就能准确的拿到成员变量 直接用变量名 则程序优先去拿 局部或方法参数
我知道你们在好奇什么
若方法参数和局部变量重名 则直接报错

那么 你学废了吗?

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

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

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