最近在看Java相关知识的时候发现Java中同时存在内部类以及非公有类概念,而且这两个类都可以不需要单独的文件编写,可以与其他类共用一个文件。现根据个人总结将两者的异同点总结如下,如有什么不当地方,欢迎大家指正。 1、非公有类和内部类对应的文件名与这两种类的类名无关; 2、一个源文件中可以包含 ...
外部类只有两种访问控制符,即public和default 包访问控制级别 。原因:外部类的上一级程序单元是包,所以它只有两种作用域:同一个包内和任何位置,这样只需要用public和default即可,用public 修饰的类可以被任何位置的其他类访问,而不添加访问控制符的类的访问控制权限为包访问级别,即该类只能被同一个包的其他类访问。 内部类有四种访问控制符,因为内部类实际上就是外部类的一个成员 ...
2019-02-21 13:29 0 537 推荐指数:
最近在看Java相关知识的时候发现Java中同时存在内部类以及非公有类概念,而且这两个类都可以不需要单独的文件编写,可以与其他类共用一个文件。现根据个人总结将两者的异同点总结如下,如有什么不当地方,欢迎大家指正。 1、非公有类和内部类对应的文件名与这两种类的类名无关; 2、一个源文件中可以包含 ...
在讲Singleton时我举例时用过这样一段代码: 相信你一定发现了一个问题:外部类中的getInstance()方法调用了内部类SingletonHolder中的private变量instance。 这就像是: 老师可以检查教室中的学生书包里有没有卫生巾。 坑爹 ...
其实外部类和内部类是一个相对的定义。 类A中有类B,那么类A自然就是外部类了,类B就是内部类。 外部类的访问权限只有两种:public和(default)。 但是内部类因类型不同所以对应的访问权限也不一样。 内部类可以使用外部类的任何变量和方法,但是外部类必须要实例化内部类才可以使 ...
外部类与内部类之间的访问 内部类相当于外部类的一个成员,和其它成员处于同一个级别,因此可以在内部类中直接访问外部类的各个成员(包括私有属性)。 需要注意的是在外部类中要想访问内部类的各个成员(这里也包括内部类的私有属性)就必须先实例化内部类,然后才能访问。对于为什么能访问内部类的私有属性 ...
注意事项一:在内部类中可以随意使用外部类的成员方法以及成员变量。 众所周知,在定义成员方法或者成员变量的时候,可以给其加上一些权限的修饰词,以防止其他类的访问。如在成员变量或者成员方法前面,加上Private 关键字,则其他类就无法调用这个类中的成员方法或则和成员变量。但是,如果这个类有成员内部类 ...
1.使用static可以声明一个内部类, 可以直接在外部调用 2.不使用static声明一个内部类 ,使外部调用 3.在方法中定义内部类 ,使外部调用 ...
昨天去笔试的时候遇到了Java的内部类的创建方式与访问权限的问题,我不懂,没写,故今天起来特意去试验一下,就有了这篇总结性的文章。 Java中的内部类又分为非静态内部类(匿名内部类也是非静态的内部类)和静态内部类,两者与外部类的关系是不一样的,创建的方式也不一样。 1 非静态内部类 ...
问题: 在《Java编程思想》关于内部类的介绍中有这样一句话:如果定义一个匿名内部类,并且希望它使用一个在外部定义的对象,那么编译器器会要求其参数引用是 final 的。 就像你在destination() 的参数中看到的那样。如果你忘记了,将会得到一个编译时错误 ...