外类可以调用其内部类的方法吗?

时间:2013-06-05 00:22:43

标签: java class scope

我有代码在用户点击特定按钮的事件上建立服务器连接。我创建了一个内部类来监听动作。在我在内部类中的单个方法中,我还建立了前面提到的服务器连接。

我的问题是,Socket连接只能在“内部”类中使用吗?或者,外部类可以继续与所述服务器通信吗?


但是,我确实理解内部类对外部类的访问权限是无限制的(就好像 外部类一样。我的问题是另一种方式。

3 个答案:

答案 0 :(得分:7)

创建这样的实例并访问您想要的内容:

OuterClass.InnerClass innerObject = outerObject.new InnerClass();

答案 1 :(得分:2)

在内部类上声明的所有方法都是可访问的 ...无论它们是声明为public还是...... private

如果内部方法是static,那么它们总是可以被外部类中的代码调用。您只需要使用内部类名来限定方法名称。

否则,外部类代码需要引用内部类的实例来调用其上的方法。 (但那是正常的。)


(如果你问的是内部类是否可以调用外部类的方法,那就更复杂了。上面的大多数都适用,但如果内部类不是static,它可以通过this在其外部类上调用实例方法。)

答案 2 :(得分:0)

是的,您可以在下面的示例代码

中实现这一目标
    currentDateMinutes=getDateAndTime();
    System.out.println("DATE & TIME:"+new JobSchedulerUtil().new TaskScheduler(currentDateMinutes).timeNow()); 

上面的代码JobSchedulerUtil类是一个带有getDateAndTime()方法的外部类和一​​个带有timeNow()方法的内部类TaskScheduler。