中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > 综合文章
Java Inner Class
作者:未知 时间:2005-07-27 22:36 出处:CSDN 责编:chinaitpower
              摘要:Java Inner Class

Inner Class 即嵌套类,也即C++C#中的Nested Class。但Java Inner Class C++C#最大的不同之处在于,嵌套类包含一个指向其容器类的引用,可以访问容器类的成员。以下代码演示了这一点:

public class Container {

    String Name;

    class InnerClass

    {

        InnerClass(){};

        public void func()

        {

            System.out.println(Name);

        }

    }

public Container(String name){

       Name=name;

        InnerClass a=new InnerClass();

    }

    public static void main(String [] arg)

    {

        Container a=new Container(“ContainerA");

        InnerClass b=a.new InnerClass();   //注意此处

        InnerClass c=(new Container(“ContainerB")).new InnerClass(); //本质上等价于上一句

              a.func();

              c.func();

    }

}

注意其中独特的new语法,在静态函数要创建一个Inner Class,必须有一个其容器类的实例。如果直接创建

InnerClass b=new InnerClass();

则会导致编译出错。

而在Container的构造函数中,创建InnerClass时,自动将this作为InnerClass的引用。

Inner Class 中使用容器类的成员,不需指定实例,自动指向创建它的容器类。

       这是一个很有用的语法特征,编译器替我们省了许多事。

       本例的输出是:

       ContainerA

       ContainerB

      

       还可以看到,Inner Class 可以访问容器类的任何成员,不管是publicprivateprotected的成员全是透明的。反之则不然,容器类只能访问Inner Classpublic成员。


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有