0

私は次の簡単なコードをコンパイルしようとしていますが、エラークラスインターフェイスまたは列挙型が期待されているというエラーを受け取りました。エラーを見つけるのを手伝ってください。

public class Scores
{ 
    public static final int maxEntries =5; 

    int numEntries; 
    protected GameEntry[] entries; 

    public Scores() 
    {
        entries = new GameEntry[maxEntries];
        numEntries = 0;
    }

    public String toString()
    {
        String s = "[";
        for (int i=0 ; i < numEntries; i++)
        {
            if (i > 0) s = ","; // separate entries by commas   
            s = s + entries[i].toString() ;
        }
        return s + "]";
    }

    public void add(GameEntry e) 
    {
        entries[numEntries]=e;
        numEntries++;
    }

    public void add(GameEntry e)
    {
        int newScore = e.getScore();
        if (numEntries == maxEntries) 
        { 
            if (newScore <= entries[numEntries-l].getScore())
            return;
        }
        else
        return numEntries++;

        int i = numEntries-l;
        for ( ; (i >= 1) && (newScore > entries[i-1].getScore()); i--)
        entries[i] = entries[i-1]; 
        entries[i] = e; 
    }
}

    public static  void main(String args[])
    {
    Scores s1=new Scores();
            GameEntry e1=new GameEntry("Paul",750);
        s1.add(e1);

        GameEntry e2=new GameEntry("John",770); 
        s1.add(e2); 

        system.out.println(s1.toString());

        GameEntry e1=new GameEntry("Sam",600);
        s1.add(e1);

        GameEntry e2=new GameEntry("Raj",800);  
        s1.add(e2);


        system.out.println(s1.toString());

        GameEntry e1=new GameEntry("Gobi",550);
        s1.add(e1);

        GameEntry e2=new GameEntry("Raj",580);  
        s1.add(e2);


        system.out.println(s1.toString());

    }
4

2 に答える 2

2

メイン メソッドはクラスの外部で独自に宣言されており、メソッドは単独で存在することはできません。

解決策: コードをコンパイルするために、main メソッドをクラス本体に移動します。

public class Scores
{ 
    public static final int maxEntries =5; 

    int numEntries; 
    protected GameEntry[] entries; 

    public Scores() 
    {
        entries = new GameEntry[maxEntries];
        numEntries = 0;
    }

    public String toString()
    {
        String s = "[";
        for (int i=0 ; i < numEntries; i++)
        {
            if (i > 0) s = ","; // separate entries by commas   
            s = s + entries[i].toString() ;
        }
        return s + "]";
    }

    public void add(GameEntry e) 
    {
        entries[numEntries]=e;
        numEntries++;
    }

    public void add(GameEntry e)
    {
        int newScore = e.getScore();
        if (numEntries == maxEntries) 
        { 
            if (newScore <= entries[numEntries-l].getScore())
            return;
        }
        else
        return numEntries++;

        int i = numEntries-l;
        for ( ; (i >= 1) && (newScore > entries[i-1].getScore()); i--)
        entries[i] = entries[i-1]; 
        entries[i] = e; 
    }

    public static  void main(String args[])
    {
        Scores s1=new Scores();
        GameEntry e1=new GameEntry("Paul",750);
        s1.add(e1);

        GameEntry e2=new GameEntry("John",770); 
        s1.add(e2); 

        system.out.println(s1.toString());

        GameEntry e1=new GameEntry("Sam",600);
        s1.add(e1);

        GameEntry e2=new GameEntry("Raj",800);  
        s1.add(e2);


        system.out.println(s1.toString());

        GameEntry e1=new GameEntry("Gobi",550);
        s1.add(e1);

        GameEntry e2=new GameEntry("Raj",580);  
        s1.add(e2);


        system.out.println(s1.toString());

    }
}

ヒント: このようなエラーの場合は、エラーの原因となっている行を注意深く確認するだけでなく、その上の 1 行または 2 行も注意して確認してください。

于 2013-08-26T23:33:08.923 に答える
2

@Hovercraft Full Of Eelsは正しいです。そうしないと、スコープ内で変数名を複数回定義できません。

メインスタブを次のように変更します。

public static void main(String args[])
{
    Scores s1 = new Scores();

    GameEntry e1 = new GameEntry("Paul", 750);
    s1.add(e1);

    GameEntry e2 = new GameEntry("John", 770); 
    s1.add(e2); 

    system.out.println(s1.toString());

    e1 = new GameEntry("Sam", 600);
    s1.add(e1);

    e2 = new GameEntry("Raj", 800);  
    s1.add(e2);

    system.out.println(s1.toString());

    e1 = new GameEntry("Gobi", 550);
    s1.add(e1);

    e2 = new GameEntry("Raj", 580);  
    s1.add(e2);

    system.out.println(s1.toString());

}
于 2013-08-26T23:40:24.693 に答える