如果java的成员变量和局部变量重名 JAVA会用局部变量覆盖掉成员

本文讨论了在Java中当成员变量与局部变量重名时如何区分二者的方法。通过使用this关键字可以明确地访问成员变量,即便存在同名的局部变量。文章提供了具体的代码示例来说明这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果java的成员变量和局部变量重名 JAVA会用局部变量覆盖掉成员

怎么样才能让两个变量都输出呢?在变量名相同的情况下?为什么?
例:public class LianXi1{int i=5;public static void main(String[]args) {int i=6;}}


[官方]2017java培训>java实战>十九提倡的IT技术

51CTO学院11年行业品牌,1400万用户选择,中国专业IT技能学习平台,java.java资深名师授课,4980元学java课程,java报名与培训中心.

广告
局部变量优先,成员变量前加this.


收起回复
  • 2楼
  • 2012-11-03 12:27
    • iehshx怎么加?我才接触class
      2012-11-3 13:38 回复
    • 1yhmqrmm回复 iehshx :创建类的实例,用对象的引用.i获得成员变量,静态成员变量通过类名.直接获取
      2012-11-3 14:09 回复
    • iehshx回复 1yhmqrmm :没学对象 就不能输出吗
      2012-11-3 14:16 回复
    • 1yhmqrmm在int i=6;后面加[$1] LianXi1 lx = new LianXi1(); System.out.println("局部变量i:"+i+"\n"+"成员变量i:"+lx.i);
      2012-11-3 16:15 回复
    • 我也说一句

       

    顶楼上。


    同顶楼上


    在成员变量前+static 声明为类变量,才能在方法中直接调用

    否则得先创建对象,调用该对象的成员变量

    这图或许有帮助


    收起回复
    • 5楼
    • 2012-11-03 12:37




      public class LianXi1{int i=5;public static void main(String[]args)  {int i=6;System.out.println(i);} pulibc void getGlobalVar(){System.out.println(i);}}
      第一个输出的i为局部变量,第二个为全局变量


      收起回复
      • 8楼
      • 2012-11-03 14:40
        • iehshx是要重新再定一个方法吗
          2012-11-3 15:16 回复
        • iehshx回复 iehshx :我试着运行了你给的 不行 有错误
          2012-11-3 15:18 回复
        • beijing888life回复 iehshx :嗯 我试试
        评论
        添加红包

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

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

        抵扣说明:

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

        余额充值