gpt4 book ai didi

Java:嵌套类、接口(interface)与包

转载 作者:行者123 更新时间:2023-12-03 00:01:52 27 4
gpt4 key购买 nike

我正在阅读嵌套类将在逻辑上启用组类和接口(interface)。

我觉得我们也可以通过使用包来实现这一点,方法是将相关的类放在包中。

如果是这种情况,Nested 类和 Nested 接口(interface)到底在哪里发挥作用?我们什么时候应该考虑使用它们?

最佳答案

您可以使用 nested classes/interfaces 做一件主要的事情,这是你不能用包做到的:你可以拥有特定类的私有(private)类型。独立接口(interface)和类只能是公共(public)的或具有默认(包范围)可见性。如果您希望限制对实现内部的访问,这会非常有帮助。

此外,非静态嵌套类将包含对父对象的隐式引用。这减少了您需要编写的代码量 - 无需参数化 new MyObject(this) 构造函数调用 - 尽管如果不使用父对象字段,它也可能会无意中增加类型的大小.

我想说,内部类的使用在某种程度上是设计和个人喜好的问题。例如,在我自己的项目中,当内部类型的代码对于我的口味来说太大时,我经常选择将其拆分为单独的文件。然而,在公共(public)对象中,隐藏实现细节的需求可能更为重要。

PS:顺便说一句,Java编译器会创建一个单独的class file无论如何,对于每种类型 - 从 JVM 的 POV 来看,无论你做什么都基本上是相同的......

关于Java:嵌套类、接口(interface)与包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25409459/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com