有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java帮助我找到错误:方法声明无效;需要返回类型

这是我的java类的最后一个家庭作业,我一直试图通过编译器运行它,但我不明白代码出了什么问题

在读到如何解决返回类型问题后,我尝试使用void,但这只会让情况变得更糟,也许我把void放错了位置

public class Exercise09_01 {
    private double width = 1;
    private double height = 1;

    public Rectangle() {
    }

    public Rectangle(double newWidth, double newHeight) {
        width = newWidth;
        height = newHeight;
    }

    public double getArea() {
        return width * height;
    }

    public double getPerimeter() {
        return 2 * (width + height);
    }

    public static void main(String[] args) {
        Rectangle rectangle1 = new Rectangle(4, 40);
        System.out.println("The area of a 4.0 x 40.0 Rectangle is " + 
        rectangle1.getArea());
        System.out.println("The perimeter of a 4.0 x 40.0 Rectangle is " + 
        rectangle1.getPerimeter());
        Rectangle rectangle2 = new Rectangle(3.5, 35.9);
        System.out.println("The area of a 3.5 x 35.9 Rectangle is " + 
        rectangle2.getArea());
        System.out.println("The perimeter of a 3.5 x 35.9 Rectangle is " + 
        rectangle2.getPerimeter());
    }
}

这是我这门课的最后一次作业,我只想在任何帮助下结束这一切,非常感谢


共 (4) 个答案

  1. # 1 楼答案

    public class Exercise09_01 {
    private double width = 1;
    private double height = 1;
    
    public Exercise09_01() {
    }
    
    public Exercise09_01(double newWidth, double newHeight) {
    width = newWidth;
    height = newHeight;
    }
    
    public double getArea() {
    return width * height;
    }
    
    public double getPerimeter() {
    return 2 * (width + height);
    }
    
    public static void main(String[] args) {
    Exercise09_01 rectangle1 = new Exercise09_01(4, 40);
    System.out.println("The area of a 4.0 x 40.0 Rectangle is " + rectangle1.getArea());
    System.out.println("The perimeter of a 4.0 x 40.0 Rectangle is " + 
    rectangle1.getPerimeter());
    Exercise09_01 rectangle2 = new Exercise09_01(3.5, 35.9);
    System.out.println("The area of a 3.5 x 35.9 Rectangle is " + rectangle2.getArea());
    System.out.println("The perimeter of a 3.5 x 35.9 Rectangle is " + 
    rectangle2.getPerimeter());
    }
    }
    

    感谢所有的帮助,这是经过编译器的代码。把它留给未来的游客

  2. # 2 楼答案

    public Rectangle() {
    }
    

    就Java而言,这是一种方法。所有方法都必须有一个返回类型

    public Rectangle(double newWidth, double newHeight) {
    width = newWidth;
      height = newHeight;
      }
    

    这里也是

    你不需要第一个,除非你真的需要在没有设置这些值的情况下制作一个

    您可以直接重命名它们,但您可能只想重命名类Rectangle

  3. # 3 楼答案

    构造函数名应该与类名同名

        public class Exercise09_01 {
            private double width = 1;
            private double height = 1;
    
            public Exercise09_01() {
            }
    
            public Exercise09_01(double newWidth, double newHeight) {
                width = newWidth;
                height = newHeight;
            }
       }
    
  4. # 4 楼答案

    代码中的错误在于类名和构造函数名不同

    有两个选项,一个是将构造函数重命名为Exercise01_01,或者将Rectangle的返回类型设为void

    public class Exercise01_01 {
    
        private double width = 1;
        private double height = 1;
    
        public Exercise01_01() {
        }
    
        public Exercise01_01(double newWidth, double newHeight) {
            width = newWidth;
            height = newHeight;
        }
    
        public double getArea() {
            return width * height;
        }
    
        public double getPerimeter() {
            return 2 * (width + height);
        }
    
        public static void main(String[] args) {
            Exercise01_01 rectangle1 = new Exercise01_01(4, 40);
            System.out.println("The area of a 4.0 x 40.0 Rectangle is " + rectangle1.getArea());
            System.out.println("The perimeter of a 4.0 x 40.0 Rectangle is " + rectangle1.getPerimeter());
            Exercise01_01 rectangle2 = new Exercise01_01(3.5, 35.9);
            System.out.println("The area of a 3.5 x 35.9 Rectangle is " + rectangle2.getArea());
            System.out.println("The perimeter of a 3.5 x 35.9 Rectangle is " + rectangle2.getPerimeter());
        }
    
    }