-1

このアルゴリズムの間違いは何ですか? どうすれば解決できますか?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());
    }
}
4

4 に答える 4

3

areaと のperimeterクラスを作成するstatic

public static class area { .. }

public static class perimeter { .. }

またはClasseRettangolo、クラスをインスタンス化し、次にネストされたクラスをインスタンス化する必要があります

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

問題とは関係ありません:

  • あなたのクラス名は Java 命名変換を満たしていません: 大文字で始める必要があります。
于 2013-11-02T11:52:37.430 に答える
2

問題は、非静的内部クラスを使用していることです。あなたは初心者のようです。とりあえず、次の単純なルールに従ってください。各クラスは、独自の .java ファイルで最上位クラスとして定義する必要があります。単純なクラスがどのように機能するかを理解したら、ネストされたクラスに関するチュートリアルを読んでください

また、Java の命名規則を尊重してください。クラスは大文字で始まります。

于 2013-11-02T11:51:43.713 に答える
0

以下のようにエリアクラスとペリメータークラスを静的クラスにする

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ドキュメントから静的内部クラスの詳細を読んでください

于 2013-11-02T11:51:54.183 に答える
0

クラスareaおよびクラス にperimeter属しClasseRettangoloます。それらは静的ではなく内部クラスであるため、外部クラスのインスタンスを持たずにそれらのインスタンスを作成することはできません。それでも名前は ではなくarea、 になりますClasseRettangolo.area

于 2013-11-02T11:51:55.060 に答える