各位好,我最近看think in java,看到内部类的构造函数的时候,可以是private,但是还可以通过new来生成对象,不知是何解?构造函数的访问修饰符设置为private就是不让实例化的啊,但是内部类怎么是可以的呢?请指教啊,谢谢了,代码如下:
Class Parcel4{
    protecte class PDestination implements Destination{
    private String label;
    private PDestination(String whereTo){
      label = whereTo;
    }
    }
    public Destination destination(String s){
       return new PDestination(s);
    }
}

解决方案 »

  1.   

    private只对当前类生效,public所有类都可以用
      

  2.   

    在当前的类内还是可以这样写的
    一言难尽  LZ 查下资料
    看看下边代码就大概知道怎么回事了package com.keeya.csdn.test;public class PrivateAttributeTest {

    private int i = 0;
    private String str = null;

    public PrivateAttributeTest(){

    }
    public PrivateAttributeTest(int i, String str){
    this.i = i;
    this.str = str;
    }
    //看这个,这个构造函数(当然普通方法也可以)能访问到参数pat的private属性
    //也就是说在类内部可以访问到该类所定义的private成员的域
    //即便是从外边传过来的
    public PrivateAttributeTest(PrivateAttributeTest pat){
    this.i = pat.i;
    this.str = pat.str;
    }
    }