首页 > 代码库 > java之内部类

java之内部类

最近学了java,对内部类有一点拙见,现在分享一下

所谓内部类(nested classes),即:面向对象程序设计中,可以在一个类的内部定义另一个类。

内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类

如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液、跳动)

显然,此处不能单方面用属性或者方法表示一个心脏,而需要一个类

而心脏又在人体当中,正如同是内部类在外部内当中

java代码:

//外部类

class Out {

    private int age = 12;

     

    //内部类

    class In {

        public void print() {

            System.out.println(age);

        }

    }

}

 

public class Demo {

    public static void main(String[] args) {

        Out.In in = new Out().new In();

        in.print();

        //或者采用下种方式访问

        /*

        Out out = new Out();

        Out.In in = out.new In();

        in.print();

        */

    }

}

运行结果为:12

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

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

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

java之内部类