英文:
Inner class vs public inner class in Java
问题
我意识到内部类可以声明为public。公共内部类的实际用途是什么,以及与没有使用public关键字声明的内部类有何不同?
public class OuterClass {
class InnerClass {
}
}
public class OuterClass {
public class InnerClass {
}
}
英文:
I realized inner classes can be declared as public. What are practical use cases of public inner classes and how are they different than inner classes declared without public keyword?
public class OuterClass{
class InnerClass{
}
}
public class OuterClass{
public class InnerClass{
}
}
答案1
得分: 1
代码部分不要翻译,只返回翻译好的内容:
通过方法/构造函数传递实例时的区别如下所示。
以下是一些代码,用于说明我的意思。
类 com.test.OutterClass.
package com.test;
public class OutterClass {
// 公共类
public class InnerClass {
}
// 非公共类
class InnerClass1 {
}
}
类 com.test2.TestClass
package com.test2;
public class TestClass {
// 可行,因为 OutterClass.InnerClass 是公共的。
TestClass(OutterClass.InnerClass t) {
}
// 不可行,因为 OutterClass.InnerClass1 不是公共的。
TestClass(OutterClass.InnerClass1 t) {
}
}
英文:
The difference is when passing an instance through a method/constructor.
Here is some code to show what I mean.<br><br>
Class com.test.OutterClass.
package com.test;
public class OutterClass {
// public class
public class InnerClass {
}
// not public class
class InnerClass1 {
}
}
Class com.test2.TestClass
package com.test2;
public class TestClass {
// Works, because OutterClass.InnerClass is public.
TestClass(OutterClass.InnerClass t) {
}
// Doesn't work because OutterClass.InnerClass1 is not public.
TestClass(OutterClass.InnerClass1 t) {
}
}
</details>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论