Java的内部类是指一个类被定义在另一个类的内部。根据定义的位置和访问权限的不同,内部类可以分为四种:成员内部类、静态内部类、方法内部类和匿名内部类。
内部类的访问权限
- 成员内部类和静态内部类可以使用任意访问权限修饰符,包括public、protected、默认和private。
- 方法内部类只能使用默认访问权限,即不加任何访问修饰符。
使用public修饰的内部类
内部类使用public修饰时,可以被外部类以及其他外部类所访问。它具有最高的访问权限,可以被其他包中的类所访问。
使用public修饰的内部类示例:
public class OuterClass {
public class InnerClass {
}
}
在其他类中访问public修饰的内部类:
public class OtherClass {
public static void main(String[] args) {
OuterClass.InnerClass innerClass = new OuterClass().new InnerClass();
}
}
在上述示例中,InnerClass被public修饰,可以在OtherClass中被访问。使用new关键字创建OuterClass的实例,然后通过实例调用new InnerClass()创建InnerClass的实例。通过访问内部类的实例,可以使用其定义的方法和访问其属性。
当然,在实际开发中,一般并不会使用public修饰内部类。因为内部类的主要作用是为了实现某些特定的功能或者限制其在外部的使用。而通过使用public修饰内部类,则会导致内部类的实例对象可以在外部类外被访问,违背了内部类的设计初衷。
另外,需要注意的是在其他包中访问public修饰的内部类时,由于内部类不能独立存在,所以需要通过外部类的实例来创建内部类的实例。
综上所述,Java内部类可以使用public修饰,但是在实际开发中一般不建议这么做,因为这样会破坏内部类的封装性。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
2.9.2 非public的成员类2.9.3 局部类和匿名类2.9.4 嵌套的接口2.10 选择使用不同类型的类2.10.1 从VectorEnumerator到匿名类2.11 容器和内部类层次的基本原理
发表于 06-23 18:16
的 run 函数换一个名字,但这种办法对于一个开发到中途的应用来说是不可取的。那么就可以用这个例子中的办法用外部类的类名加上 this 引用来说明要调用的是外部类的方法 run。例3
发表于 10-21 14:38
理解接口的作用,理解接口和实现接口的类的关系,掌握声明接口、一个类实现多个接口的声明和使用方法。理解内嵌类型的概念,掌握声明内部类的方法。熟悉Java语言包和实用包中的常用类。
发表于 11-23 11:52
•0次下载
可以将一个类的定义放在另一个类的定义内部,这就是内部类。 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类
发表于 09-27 14:59
•0次下载
一。内部类基础 二。深入理解内部类 三。内部类的使用场景和好处 四。常见的与内部类相关的笔试面试题 若有不正之处,请多谅解并欢迎批评指正。 一。内部
发表于 09-27 16:15
•0次下载
1、学习Java可以做网站
Java可以用来编写网站,现在很多大型网站都用Jsp写的,JSP全名Java Server Pages
发表于 02-15 14:07
•2766次阅读
简介 为什么要持有外部类 实例:持有外部类 实例:不持有外部类 实例:内存泄露 不会内存泄露的方案 简介 「说明」 本文介绍 Java 内部类
发表于 10-08 16:32
•950次阅读
public修饰的类、类属变量及方法,包内及包外的任何类均可以访问;任何情况下都可以访问;如果一个类、类属变量及方法没有用任何修饰符,则其访
发表于 02-28 14:35
•6535次阅读
非静态内部类会持有外部类,如果有地方引用了这个非静态内部类,会导致外部类也被引用,垃圾回收时无法回收这个外部类(即使外
发表于 05-18 16:09
•1097次阅读
是一个独立的程序类了。需要注意,static定义的不管是类还是方法只能够访问static成员, 所以static定义的内部类只能够访问外部内中的static属性和方法 ; public class
发表于 10-10 16:08
•523次阅读
在普通类中使用内部结构 不多说,先上个代码 Outer类里面有个内部类Inner public class Outer { private String msg = "哈哈" ; //只能在类
发表于 10-10 16:26
•401次阅读
static 是Java的一个关键字,可以用来修饰成员变量、修饰成员方法、构造静态代码块、实现静态导包以及实现静态内部类,下面我们来分别介绍
发表于 10-11 15:26
•446次阅读
CloneNotSupportedException ; 你敢说你没用过这些方法?如果你用过,那你就是一定用过不是Java语言编写的方法。 答案就是【native】关键词,用此关键词修饰的方法,多数情况就不是
发表于 10-11 15:29
•472次阅读
一下Java程序的基本结构。一个Java程序可以包含多个类,但是只能有一个公共的类作为主类。这个主类必须包含一个特殊的方法,即main方法,它是程序的入口点。当程序被执行时,首先执行main方法。 根据
发表于 11-28 16:15
•5369次阅读
在Java编程语言中,类的修饰符对类的可见性起到了重要的作用。public、private、protected和默认访问修饰符都用于确定类的可见性。公共类(
发表于 11-28 16:29
•863次阅读
评论