我相信每个人都应该使用它,但我也相信每个人都应该非常简单。
因此,今天,让我们详细说明内部用途。没什么胡说八道,让我们首先看一下。
让我们首先看一个示例:
该课程中有一个内部班级:
测试类:
输出结果:
就整体代码结构而言,内部类的结构是不合理的,因此内部类本身的最大缺陷是该程序的结构被破坏了,但是损害需要被摧毁。更好地观察优势在内部课程中,您可以在外部进行内部类。我取出上面的代码。
老师课:
学生课:
测试:
输出结果:
我们扔长时间扔的主要目的是允许此内部类访问此类中的私人属性。如果内部类未使用整体代码,则将非常麻烦。
:尽管内部类可以轻松访问外部类中的私人成员或私人方法。同样,外部类也可以轻松访问内部类中的私人成员或私人方法**。
示例如下:
输出结果:
使用内部类后,内部和外部类别之间的访谈不再需要完成和其他间接方法。它可以直接操作,但应注意的是,内部类本身也属于类。尽管内部类通常在外部类中包裹在大多数情况下,但外部类仍然可以产生内部类的实例化对象。目前,内部类实例的格式如下:
外部类。内部类对象=新的外部class().new内部class();
内部类汇编完成后,将自动形成类文件,其中符号“ $”更改为“将其变为”。内部和外部类可以直接访问私人成员。通过这种方式,如果将内部类带有实例化对象,则有必要确保首先实例化外部类。
如果此时仅允许使用该类,则可以在这种情况下用于私人定义。
这样,该类目前不能在外面使用,也就是说,测试中的该语句是无效的。
在我们的Java中,作为最基本结构的类实际上具有相似的抽象类或接口,并且可以在抽象类别和接口中定义内部结构。
现在,我们定义内部接口:
测试:
输出结果:
在下面,我们继续观察一个内部抽象类。内部抽象类可以在普通类,抽象类和界面内定义。
测试:
输出结果:
内部类也有一些更有趣的结构,也就是说,如果现在定义了接口,则可以在内部类中使用该界面。在JDK1.8之后,在接口中添加方法的方法无法由实例化对象控制。现在可以使用此功能来完成该功能。
接口内的接口实现:
测试:
输出结果:
从上面可以看出,内部类是一个非常灵活的结构。只要您的语法满足,各种需求就可以帮助您实现它!
如果在内部类上使用静态定义,则该内部类将变为独立于类的结构,因此这种类型的结构等同于独立程序类。应注意,静态定义只能访问静态成员,因此由静态定义的内部类只能访问外部的静态属性和方法。
目前的课程是独立班。如果您目前想实例化对象,则只需要
格式是以下外部类。内部类的内部类对象=新外部类。内部类();
测试:
输出结果:
因此,如果您发现将来提供了类名称,则首先应该认为这是内部类结构。如果可以直接实例化,您应该立即意识到这是一个静态定义内部类,但是静态定义了内部类的内部类形式,并不常用。静态定义了最常用的内部接口形式。
测试:
输出结果:
可以在任何结构中定义内部类,其中包括:类别,方法和代码块。但是,方法中定义的方法中有许多情况。
输出结果:
目前,该方法内部的内部类有一个定义,发现内部类可以直接访问外部类中的私有属性或该方法中的参数可以直接访问,但是该方法中的参数可以直接访问。从JDK1.8直接访问JDK1.8.Sessece之前JDK1.8 **的支持,如果方法中定义的内部类,则必须在参数之前添加访问该方法的参数。** ** ** **
取消这种限制的原因是扩展功能编程准备。
匿名类是一种简化的内部类处理表格,主要用于抽象和接口的子类别。
该界面与抽象相同。
如果接口中的子类仅使用一次,是否有必要将其定义为单独的类?然后在这样的请求下,发现此时定义的子类有点冗余,因此您可以使用内部类解决此问题。
匿名内部类不必在抽象或接口上,但仅对抽象类别和接口有意义。匿名内部类实现。
直接在接口中定义匿名内部类。
与内部类相比,匿名内部类只是一个子类,只能在没有名称的情况下一次使用且具有固定结构。
方法,类,摘要,接口和代码块可以定义内部结构 - 类,摘要类,接口。
本文主要描述如何使用内部类中的内部类和界面以及如何使用静态修改的内部类以及如何在方法中使用内部类。阅读本文后,我相信您对内部的理解课程更深。
作者:第一次思考和初恋