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

时间:2021-09-08 11:41:59

如果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
  • 如果java的成员变量和局部变量重名 JAVA会用局部变量覆盖掉成员
    iehshx怎么加?我才接触class
    2012-11-3 13:38 回复
  • 如果java的成员变量和局部变量重名 JAVA会用局部变量覆盖掉成员
    1yhmqrmm回复 iehshx :创建类的实例,用对象的引用.i获得成员变量,静态成员变量通过类名.直接获取
    2012-11-3 14:09 回复
  • 如果java的成员变量和局部变量重名 JAVA会用局部变量覆盖掉成员
    iehshx回复 1yhmqrmm :没学对象 就不能输出吗
    2012-11-3 14:16 回复
  • 如果java的成员变量和局部变量重名 JAVA会用局部变量覆盖掉成员
    1yhmqrmm在int i=6;后面加[$1] LianXi1 lx = new LianXi1(); System.out.println("局部变量i:"+i+"\n"+"成员变量i:"+lx.i);
    2012-11-3 16:15 回复
  • 我也说一句

     

顶楼上。


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


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

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

这图或许有帮助
如果java的成员变量和局部变量重名 JAVA会用局部变量覆盖掉成员


收起回复
  • 5楼
  • 2012-11-03 12:37
如果java的成员变量和局部变量重名 JAVA会用局部变量覆盖掉成员


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


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
  • 如果java的成员变量和局部变量重名 JAVA会用局部变量覆盖掉成员
    iehshx是要重新再定一个方法吗
    2012-11-3 15:16 回复
  • 如果java的成员变量和局部变量重名 JAVA会用局部变量覆盖掉成员
    iehshx回复 iehshx :我试着运行了你给的 不行 有错误
    2012-11-3 15:18 回复
  • 如果java的成员变量和局部变量重名 JAVA会用局部变量覆盖掉成员
    beijing888life回复 iehshx :嗯 我试试