Java跨包导入类编译错误求助:新手学习遇问题
问题分析与解决
你的代码报错和包导入、访问权限无关,核心错误是调用了错误对象的方法:
你导入了one.Abhi类,但在main方法里实例化的是World类对象,而World类本身并没有定义fun()方法,自然会触发报错。
修改后的正确代码
package one; public class Abhi{ public void fun(){ System.out.println("Fun function from Abhi class"); } } package two; import one.Abhi; public class World { public static void main(String[] args) { System.out.println("World Class Start"); // 实例化Abhi类对象,而非World类 Abhi obj = new Abhi(); obj.fun(); } }
额外注意事项
- 确保文件目录结构与包名匹配:
Abhi.java需放在名为one的子目录下World.java需放在名为two的子目录下
- 编译与运行(从根目录执行命令):
- 编译:
javac one/Abhi.java two/World.java - 运行:
java two.World
- 编译:
内容的提问来源于stack exchange,提问作者Abhi Upadhyay
相关产品推荐
相关产品推荐

