问题1:外部类能不能访问内部类?(域也好方法也好,通过内部类对象来访问不算)
问题2:一般在构造器前用private修饰目的是什么?我实在想不出要让构造器private的理由,请教下大家。

解决方案 »

  1.   

    问题2:不能被其他类或用他的类 实例化!
    具体你可以去看看sington的实现
      

  2.   

    1、对于内部类来说,就像一个类的属性一样,对于类本身而言,是可以访问的,而对于其他的类来访问,必须通过这个类去访问他的内部类2、一个构造器默认的方法就是public,当我们在构造器前加上private之后,我们就不能在外部来对其进行实例化了,如果我们需要访问它,
    则必须通过内部方法来访问它,这个一般在很多单例模式中可以看到,它的作用就是不能让别人直接访问它,而必须通过某个方法来访问
      

  3.   

    第二个问题我懂了,但是第一个问题,怎么访问啊?public class TestInner { class Inner{
    public int a = 10;
    public int get(){
    return a;
    }
    }
    public static void main(String[] args){
    TestInner testInner = new TestInner();
                    //这段代码,里的内部类能在不创建内部类对象的情况下被访问?
    }
    }
      

  4.   

    你现在定义的是一个实例性质的内部类,你要访问这个内部类的方法必须实现获得外部类的对象,然后通过外部类访问内部类
    public class Main {
       class Inner{
            public int a = 10;
            public int get(){
                return a;
            }
        }    public static void main(String[] args){
       Main main = new Main();
       Inner in =  main.new Inner();
           System.out.println(in.get());
        }
    }
    如果是静态内部类,则采用如下方式:
    public class Main {
       static class Inner{
            public int a = 10;
            public int get(){
                return a;
            }
        }    public static void main(String[] args){
       Main main = new Main();
       Inner in =  new Main.Inner();
           System.out.println(in.get());
        }
    }