java中内部类的定义与访问规则

Posted Qi_Yuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中内部类的定义与访问规则相关的知识,希望对你有一定的参考价值。

java内部类总结

简单来说,内部类就是在我们所熟悉的类中的里面再定义一个类

为什么需要内部类?

当我们描述事物时,事物之中还有事物,我们就用内部类描述事物

因为内部事物在使用外部事物的内容

我举一个例子 人体有心脏,血液,肝,脾,肺-……那么心脏该如何定义?

我们应该定义心脏为内部类,因为它在使用外部类(人体)的血液,氧气……

 

实例1:内部类的基本结构

 

class Out    /*外部类*/

{

    private int x=3;

    class In        /*内部类*/          

    {

        private int y

        public void show()

        {

            System.out.println(x);

        }        

    }

}


class Demo

{

    public static void main(String args[])

    {

        Out.In in=new Out().new In();  /*创建内部类对象的格式*/

        in.show();

    }

}

 


 

运行结果:3

从上面的例子不难看出,内部类其实严重破坏了良好的代码结构,但为什么还要使用内部类呢?

因为内部类可以随意使用外部类的成员变量(包括私有)而不用生成外部类的对象,这也是内部类的唯一优点

如同心脏可以直接访问身体的血液,而不是通过医生来抽血

 

程序编译过后会产生两个.class文件,分别是Out.class和Out$In.class

其中$代表了上面程序中Out.In中的那个 .

Out.In in = new Out().new In()可以用来生成内部类的对象,这种方法存在两个小知识点需要注意

  1.开头的Out是为了标明需要生成的内部类对象在哪个外部类当中

  2.必须先有外部类的对象才能生成内部类的对象,因为内部类的作用就是为了访问外部类中的成员变量

 

其它的示例请看:http://www.cnblogs.com/nerxious/archive/2013/01/24/2875649.html

 

以上是关于java中内部类的定义与访问规则的主要内容,如果未能解决你的问题,请参考以下文章

java中关于内部类的一些总结

Java中内部类的使用总结

java 内部类详解 转

JAVA基础-内部类

20165230 2017-2018-2 《Java程序设计》第5周学习总结

什么是Java内部类?