【发布时间】:2014-10-05 03:27:08
【问题描述】:
这是我的问题:
我这样设置了 4 个类(全部公开):
Package main
--Class Tuna
Package second
--Class Apple
----Class InsideApple
--Class Orange
每一个的代码:
public class Tuna {
public static void main(String[] args){
Orange orange = new Orange();
orange.callApple();
Apple apple = new Apple();
System.out.println("A call from orange");
apple.callApple();
apple.insideApple.callInsideApple(); // This line will crash it -- Why?
}
}
public class Apple{
public void callApple(){
System.out.println("Here is Apple!");
}
InsideApple insideApple = new InsideApple();
public class InsideApple{
public void callInsideApple(){
System.out.println("Here is Inside Apple!");
}
}
}
public class Orange{
Apple apple = new Apple();
public void callApple(){
System.out.println("A call from orange");
apple.callApple();
apple.insideApple.callInsideApple();
}
}
如您所见,第 4 类 (InsideApple) 是类内的公共类 (Apple) 当我尝试从类(橙色)调用类(InsideApple)内的方法时,我没有问题。 但是当我尝试从类 (Tuna) 中执行它时,它说类 (Apple) 内的类 (InsideApple) 没有 instacne
我能做些什么来防止这种情况发生?我知道如果我将所有类放在一个包中,它将被修复。但我认为这是一种愚蠢的解决方法。各位大佬有没有比较好的?
【问题讨论】: