class Father {
  int id;
  class Son {
    int id;
    void changeId() {
     id = 10;
    }
  }
}请问内部类Son里的changeId方法是给Father的id赋值?还是Son的id ?
如果是给Father的id赋值,那么如何在changeId方法中调用Son的id呢 ?

解决方案 »

  1.   

    对比一下,就清楚了,看看讲内部类的章节吧。public class Father {
    int id = 1; class Son {
    int id = 2; void changeId() {
    id = 10;
    System.out.println("Son's = " + id);

    Father.this.id = 20;
    System.out.println("Father's id = " + Father.this.id);
    }
    }

    public void show(){
    Son s = new Son();
    s.changeId();
    }

    public static void main(String[] args){
    Father f = new Father();
    f.show();
    }
    }
      

  2.   

      class Son { 
        int id; 
        void changeId() { 
         id = 10; 
        } 
    这个只是改变Son的idFather的id在Son类中要用这样的方法:Father.this.id
    楼上正解
      

  3.   

    class Fa { 
     int id=2; 
      class Son { 
        int id=3; 
        void changeId() { 
         id = 10; 
        } 
      } 
    } class Father{ public static void main(String []args){
    Fa fa = new Fa(); Fa.Son  son = fa.new Son();
    System.out.println(fa.id);//2
         fa.id = 5;
    System.out.println(fa.id);//5
    System.out.println(son.id);//3
    System.out.println("///////");
    son.changeId();
    System.out.println(fa.id);//5
    System.out.println(son.id);//10 }
    }
      

  4.   


    package csdn;import java.util.ArrayList;
    import java.util.HashMap;public class Father { 
      int id=1; 
      class Son { 
        int id; 
        void changeId() { 
         this.id = 10; //这里引用是指s
         Father.this.id = 20;/这里指的是f引用!
        } 
      } 
      public static void main(String[] args) {
      Father f = new Father();
      
      Father.Son s =  f.new Son();
      s.changeId();   System.out.println(s.id);
      System.out.println(f.id);
      }

    这个程序很明确的,