问答详情
源自:7-8 Java 中的方法内部类

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

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();
	}

}


提问者:Phymath 2017-02-23 11:03

个回答

  • 慕码人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获取到

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

    不需要new

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

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