我有代码在用户单击特定按钮时建立服务器连接。我创建了一个内部类来监听动作。在内部类中的单个方法中,我还建立了前面提到的服务器连接。
我的问题是,只能在“内部”类中使用 Socket 连接吗?或者,外部类可以继续与所述服务器通信吗?
但是,我确实了解内部类可以不受限制地访问外部类(就好像它是外部类一样。我的问题是相反的。
创建一个这样的实例并访问您想要的内容:
OuterClass.InnerClass innerObject = outerObject.new InnerClass();
内部类上声明的所有方法都是可访问的......无论它们被声明为public
还是private
......。
如果内部方法是,static
那么它们总是可以由外部类中的代码调用。您只需要使用内部类名称限定方法名称。
否则,外部类代码需要内部类实例的引用才能调用其上的方法。(但这是正常的。)
(如果你问的是内部类是否可以调用外部类的方法,那就有点复杂了。上面的大部分内容都适用,但如果内部类不是static
,它也可以通过this
. )
是的,您可以在下面的示例代码中实现这一点
currentDateMinutes=getDateAndTime();
System.out.println("DATE & TIME:"+new JobSchedulerUtil().new TaskScheduler(currentDateMinutes).timeNow());
上面的代码 JobSchedulerUtil 类是具有 getDateAndTime() 方法的外部类和具有 timeNow() 方法的内部类 TaskScheduler。