簡體   English   中英

這個幾何算法的錯誤在哪里?

[英]Where's the mistake in this geometric algorithm?

這個算法有什么錯誤? 我該如何解決? Eclipse告訴我一個主要的錯誤

area c1 = new area();

import java.awt.Rectangle;

public class ClasseRettangolo {

    public class area {
        Rectangle box = new Rectangle(5 , 10, 15, 20);
        public double surface() {
            return ( box.getHeight() * box.getWidth());
        }
    }
    public 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());
    }
}

要么使areaperimeterstatic

public static class area { .. }

public static class perimeter { .. }

或者,您將必須實例化ClasseRettangolo類,然后實例化嵌套的類。

new ClasseRettangolo().new area();
new ClasseRettangolo().new perimeter();

問題無關

  • 您的類名稱不符合Java命名轉換:它們應以大寫字母開頭。

問題是您正在使用非靜態內部類。 您似乎是一個新手,因此暫時請遵循以下簡單規則:每個類都應在其自己的.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());
}
}

oracle文檔中閱讀有關靜態內部類的更多信息

這些類areaperimeter屬於類ClasseRettangolo 因為它們不是靜態的而是內部類,所以沒有外部類的實例就無法創建它們的實例。 即使這樣,名稱也不會是area ,而是ClasseRettangolo.area

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM