Java 这个几何算法的错误在哪里?

Java 这个几何算法的错误在哪里?,java,rectangles,Java,Rectangles,这个算法有什么错误?我如何解决它? Eclipse告诉我一个主要的错误 area c1 = new area(); 问题是您使用的是非静态内部类。看起来你是一个新手,所以,暂时要遵守这个简单的规则:每个类都应该在自己的.java文件中定义为一个顶级类。一旦您了解了简单类的工作原理,请阅读 另外,请遵守Java命名约定:类以大写字母开头。将面积类和周长类设置为静态类,如下所示 import java.awt.Rectangle; public class ClasseRettangolo {

这个算法有什么错误?我如何解决它? Eclipse告诉我一个主要的错误

area c1 = new area();

问题是您使用的是非静态内部类。看起来你是一个新手,所以,暂时要遵守这个简单的规则:每个类都应该在自己的.java文件中定义为一个顶级类。一旦您了解了简单类的工作原理,请阅读


另外,请遵守Java命名约定:类以大写字母开头。

将面积类和周长类设置为静态类,如下所示

import java.awt.Rectangle;

public class ClasseRettangolo {

public static class area {
    Rectangle box = new Rectangle(5 , 10, 15, 20);
    public double surface() {
        return ( box.getHeight() * box.getWidth());
    }
}
public static class perimeter {
    Rectangle box = new Rectangle(5 , 10, 15, 20);
    public double outline() {
        return ((box.getHeight() + box.getWidth())* 2);
    }
}
public static void main(String[] args){
    area c1 = new area();
    perimeter c2 = new perimeter();

    System.out.println("The area of the Rectangle is: " + c1.surface());
    System.out.println("The perimeter of the Rectangle is: " + c2.outline());
}
}

中阅读有关静态内部类的更多信息。类的面积和周长属于类Rettangolo。因为它们不是静态的,而是内部类,所以如果没有外部类的实例,就不可能创建它们的实例。即使这样,名称也不会是area,而是ClasseRettangolo.area。

或者将area和Permiture类设置为静态

或者,您必须实例化ClasseRettangolo类,然后是嵌套类

new ClasseRettangolo().new area();
new ClasseRettangolo().new perimeter();
与问题无关:

您的类名不符合Java命名转换:它们应该以大写字母开头。
阅读错误消息。如果你不明白,就把它贴出来。它告诉您问题所在,并阅读java代码约定。
public static class area { .. }

public static class perimeter { .. }
new ClasseRettangolo().new area();
new ClasseRettangolo().new perimeter();