我了解如何使用和导入外部包,但我以前从未打包过自己的类。我读了Oracle Tutorial on Creating a Package ,然后查看了 In Java, what's the difference between public, default, protected and private除了包上的几个站点/SO 线程之外。对于我的一生,我无法弄清楚为什么这个非凡的简单示例不起作用:
package PTest;
public class A
{
protected final int SIZE = 10;
public void printSize()
{
System.out.println(SIZE);
}
}
package PTest;
public class B
{
public static void main(String[] args)
{
System.out.println(SIZE);
hello();
}
}
我使用了eclipse的自动打包功能,所以我假设实际打包是正确的。这是一张图片,显示它们确实包装正确:
如您所见,protected SIZE
和 public hello()
都未被识别。我在 eclipse 之外尝试过这个,也无济于事。任何帮助将不胜感激。
最佳答案
SIZE
是 A
对象的实例字段。您需要将其设为静态字段。即使如此,它仍然是 A
类的成员,因此您必须指定 A.SIZE
才能在 B
中使用它。
关于java - 识别同一包中的变量和方法时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18094682/