gpt4 book ai didi

java - 您能否使内部类的方法只能由外部类访问?

转载 作者:行者123 更新时间:2023-11-30 06:06:46 24 4
gpt4 key购买 nike

假设我有一个外部类和一​​个内部类。是否可以编写内部类方法,使其只能由外部类访问,而不能由外部类外部定义的类访问,例如MyForeignClass?

class MyForeignClass {
MyForeignClass() {
MyOuterClass instance = new MyOuterClass();
MyInnerClass innerClassInstance = instance.getMyInnerClassInstance();
// illegal method call, only MyOuterClass can call this
innerClassInstance.privateInnerClassMethod();
}
}

class MyOuterClass {
class MyInnerClass {
MyInnerClass() {}
void publicInnerClassMethod() {
// accessible from outside MyOuterClass
}
void privateInnerClassMethod() {
// accessible from inside MyOuterClass
}
}

MyInnerClass instance;

MyOuterClass() {
instance = new MyInnerClass();
instance.privateInnerClassMethod();
}

MyInnerClass getMyInnerClassInstance() {
return instance;
}

}

最佳答案

如果将内部类的方法设为私有(private),则只能从内部类和外部类访问它们。

class MyOuterClass
{
class MyInnerClass
{
private void doSomething(){}
}
}

如果您尝试从除 MyInnerClass 或 MyOuterClass 之外的任何其他类调用上述方法,您会收到错误消息,因为没有其他类知道该方法的实例来自何处。希望这对您有所帮助:)

关于java - 您能否使内部类的方法只能由外部类访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43430654/

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