Java基础:变量同名时,内类方法访问外类变量用【外类名称.this.变量名】

如果这三处的变量名不同,则直接输出即可

public class OuterClass {
    int OutNum = 10;// 外部类的成员变量

    public class InnerClass {
        int InnerNum = 20;// 内部类的成员变量

        public void InnerMethod() {
            int InnerLocalNum = 30;// 内部类的方法的局部变量

            System.out.println(InnerLocalNum);
            System.out.println(OutNum);
            System.out.println(InnerNum);
        }
    }
    
// 下面为 main方法的文件
public class DemoNum {
    public static void main(String[] args) {
        OuterClass.InnerClass innerClass=new OuterClass().new InnerClass();
        innerClass.InnerMethod();
    }
}

//30
//10
//20

但同名的时候,访问内部类成员变量用【this.变量名】,访问外部类成员变量用【外部类名称.this.变量名】

public class OuterClass {
    int num = 10;// 外部类的成员变量

    public class InnerClass {
        int num = 20;// 内部类的成员变量

        public void InnerMethod() {
            int num = 30;// 内部类的方法的局部变量

            System.out.println(num);
            System.out.println(OuterClass.this.num);
            System.out.println(this.num);
        }
    }
}

/*
测试 main方法与上同,故省略;结果为:
30
10
20
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值