当前位置: 代码迷 >> J2SE >> 内部类跟外部类属性重名
  详细解决方案

内部类跟外部类属性重名

热度:106   发布时间:2016-04-23 19:51:38.0
内部类和外部类属性重名
public class outer {   
private final String name ="vankeouter";
    
    class inner{
       String name = "vankeinner";
        
        public void display(){
         System.out.println(name);
        }   
    }
public static void main(String[] args) {

outer a1 = new outer();
outer.inner a2 = a1.new inner(); 
        a2.display();
}

}


如何通过内部类调用外部类的 name属性
------解决思路----------------------
public class Outer {

private final String name ="Outer";
    
    class Inner{
       String name = "inner";
         
        public void display(){
            System.out.println(Outer.this.name);
        }      
    }
    public static void main(String[] args) {
         
     Outer a1 = new Outer();
     Outer.Inner a2 = a1.new Inner(); 
        a2.display();
    }

}
------解决思路----------------------

class outer {   
private final String name ="vankeouter";
    
    class inner{
       String name = "vankeinner";
        
        public void display(){
         System.out.println(outer.this.name);      //楼上说的对,就是这样
        }   
    }
public static void main(String[] args) {
outer a1 = new outer();
outer.inner a2 = a1.new inner(); 
                a2.display();
}

}
  相关解决方案