zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    百度云管家开机启动如何取消
    双语小说阅读:《谁动了我的奶酪》
    [Swift]方法
    Swift中的类型属性(静态变量)
    Swift 学习之二十一:?和 !(详解)
    苹果Swift可为Windows/Android开发软件了
    iOS7下滑动返回与ScrollView共存二三事
    swift c++ oc 混编
    RTOS
    STM32 RTC
  • 原文地址:https://www.cnblogs.com/liangqiyuan/p/5574896.html
Copyright © 2011-2022 走看看