【发布时间】:2016-11-19 07:55:02
【问题描述】:
所以我有这个类(我们称它为“A”)和这个get() 方法,它返回一个类字段,我想从另一个类(“B”)访问它。 重要提示:两个类都是abstract。 这些类在同一个package 中(package private 代表所有A 和B 成员)。 Main 类没有包(或者更好的是默认包)。
[之前:扭曲无用的描述]
我需要从B 类访问A 的get() 方法。
尝试过:
1) 非静态调用Aobj.get() 从位于main 的根对象开始,但它似乎想要静态调用(奇怪,没有一个成员是static);
2) 尝试静态访问它,我得到了Cannot make a static reference to the non-static field 错误(当然)。
...所以我被卡住了,仍然遇到访问语法错误,我尝试了两种方式。有什么建议吗?
编辑:
所以我走到了尽头。我现在将尝试解释我的错误。
基本上,问题是我想从包中的类访问位于Main 类(默认包)中的对象。所以我遇到了能见度问题。
在其他情况下,我会解决导入类,但我发现you cannot import a class located in the default package,所以我创建了一个main 包并在Main 类中导入了Main 类。
我一直犯的最严重的错误是认为我必须访问main.main(String[])... etc ...Aobj从main本身开始,这是一个非常糟糕的想法(仍然无法弄清楚我是怎么想的)。
事实上,就像 Stephen C 指出的那样:
无论包的情况如何,无论您通过其他类的路径如何,都是正确的。
最后,代码示例......老实说,现在的代码与我写这个问题的日子真的不同,老实说我无法重现错误的情况,因为我不记得我所有的错误逻辑试图实现。 (我的错。)我只希望这次能正确解释自己。
感谢大家的帮助。
【问题讨论】:
标签: java packages class-visibility