方法内部类中的同名方法如何访问方法中与内部类同名的变量

来源:7-8 Java 中的方法内部类

Phymath

2017-02-23 11:03

package com.imooc.org;

public class HelloWorld {

	//外部类的私有属性name
    private String name = "imooc";
    
//    static //外部类的成员属性
    int age = 20;
    
    public void show(){
	//成员内部类Inner
    	int age = 35;
		class Inner {
			String name = "爱慕课";
			int age = 50;
	        //内部类中的方法
			public void show() { 
				System.out.println("外部类中的name:" + new HelloWorld().name );
				System.out.println("内部类中的name:" +name );
				System.out.println("外部类中的age:" +age);//这里如何让age = 35 ?
			}
		}
		Inner inn = new Inner();
		inn.show();
	}
    
	//测试成员内部类
	public static void main(String[] args) {
        
        //创建外部类的对象
		HelloWorld o = new HelloWorld (); 
        
        //创建内部类的对象
//		Inner inn =new Inner();              ;
        
        //调用内部类对象的show方法
		o.show();
	}

}


写回答 关注

5回答

  • 慕码人7051976
    2019-11-21 10:22:13

    final 加一个

  • ZredoC
    2019-10-13 10:45:28

    ?同问,我也想到了这个问题

  • 幸福是可积的
    2017-02-25 19:20:05

    第19行改为

    System.out.println("外部类中的name:" + HelloWorld.this.name );

    第21行中age是HelloWorld类的方法中的局部变量,并不是外部类HelloWorld中的age

    如果要使用外部类中的age,则是HelloWorld.this.age获取到

    落叶萧萧on...

    就近原则吧,是方法内部类的age,50。。中间那个确实不知道怎么输出

    2017-03-10 16:22:15

    共 2 条回复 >

  • 慕田峪1621067
    2017-02-23 13:46:35

    不需要new

  • qq_经典的盗版_04276868
    2017-02-23 11:59:49

    gg  不符合java语法规定吧,,,确实获取不到   ,,网上说不符合java语法

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530644 学习 · 6091 问题

查看课程

相似问题