当前位置: 首页 > Thinking in Java > 正文

第10章– 内部类 _.new

package innerclasses;


class SS
{
  public SS()
  {
    DotNew dn = new DotNew();
    //DotNew.Inner di = dn.new Inner();
    //如果其他类的 内部类 的构造函数是private的,
    //则只有在这个内部类的外部类中可以使用这个内部类,
    //其他类是不能实例化这个内部类的
    
    //DotNew.Inner di = dn.new Inner2(); //这样也不行,因为内部类Inner2是private的
  }
}
public class DotNew
{
  public class Inner
  {
    private Inner()
    {
      
    }
  }
  
  private class Inner2
  {
    public Inner2()
    {
      
    }
  }

  public static void main(String[] args)
  {
    DotNew dn = new DotNew();
    DotNew.Inner dni = dn.new Inner(); 
    //直接创建 (普通,非static)内部类的对象 必须要有一个外部类对象
    //这里 声明dni变量时,变量类型 不需要使用DotNew.Inner 可以直接使用Inner
    Inner iInner = dn.new Inner();
    innerclasses.Inner ii = new innerclasses.Inner();
    //当一个类A 和 B在同一个包里面,并且类B有个内部类也叫A,
    //此时如果使用类A,需要用 包名.A的方式
    //就像上面的那样
  }
}

同一个包内的,与内部类同名的类

package innerclasses;

public class Inner
{
  public Inner()
  {
    System.out.println("和内部类Inner同名的,同一个包下面的Inner");
  }
}

 

赞 赏

   微信赞赏  支付宝赞赏


本文固定链接: https://www.jack-yin.com/coding/thinking-in-java/2368.html | 边城网事

该日志由 边城网事 于2013年07月11日发表在 Thinking in Java 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 第10章– 内部类 _.new | 边城网事
关键字: ,

第10章– 内部类 _.new 暂无评论

发表评论

快捷键:Ctrl+Enter