Java无法导入类报错:package Mung不存在问题求助
解决"package Mung does not exist"错误及代码中的其他问题
我来帮你一步步排查并修复问题——你现在遇到的不仅是包声明的错误,还有类结构、方法调用和公式的小问题,咱们逐个解决:
1. 核心问题:包声明缺失
你提到文件放在Mung文件夹下,但你的ShapesAssignment.java没有声明所属包,这是导致package Mung does not exist的根本原因。同时还要修正构造函数的赋值逻辑(你之前只是给局部变量赋值,类的成员变量根本没拿到值):
修改Mung/ShapesAssignment.java
package Mung; // 必须添加这行,明确类属于Mung包 import java.io.*; import java.util.*; public class ShapesAssignment { // 先声明成员变量 public double radius; public double height; public double width; // 修正构造函数:给类的成员变量赋值 public ShapesAssignment(double r, double h, double w) { this.radius = r; this.height = h; this.width = w; } // 修复圆形面积公式:应该是π*r²,你之前少乘了一个radius public double areaCircle() { double cArea = Math.PI * radius * radius; return cArea; } public double areaTriangle() { double tArea = (height * width) / 2; return tArea; } // 正方形面积优化:用边长的平方更合理 public double areaSquare() { double sArea = width * width; return sArea; } }
修改Shapes.java
你不能直接调用实例方法,必须先创建ShapesAssignment的对象;同时确保导入包的路径正确:
import Mung.ShapesAssignment; // 直接导入具体类,比通配符更清晰 public class Shapes { public static void main(String args[]) { // 先创建计算对象,传入具体参数(比如半径5、三角形高4底3、正方形边长6) ShapesAssignment shapeCalculator = new ShapesAssignment(5, 4, 6); // 通过对象调用实例方法 System.out.println("正方形面积:" + shapeCalculator.areaSquare()); System.out.println("圆形面积:" + shapeCalculator.areaCircle()); System.out.println("三角形面积:" + shapeCalculator.areaTriangle()); } }
2. 正确的编译&运行步骤
确保你的文件结构是这样的:
├── Mung/ │ └── ShapesAssignment.java └── Shapes.java
打开命令行,进入到包含Mung文件夹的根目录,执行以下命令:
- 编译包内的类:
javac Mung/ShapesAssignment.java - 编译主类:
javac Shapes.java - 运行程序:
java Shapes
3. 额外优化建议
- 把成员变量设为
private,再提供getter/setter方法,符合面向对象的封装原则 - 如果不需要依赖对象的状态,可以把面积方法改成静态方法,这样不用创建对象就能直接调用
- 可以给方法添加参数(比如
areaCircle(double radius)),让方法更灵活通用
内容的提问来源于stack exchange,提问作者donnnno
相关产品推荐
相关产品推荐

