2013-08-26 59 views
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()); 

    } 

回答

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()); 

    } 
} 

提示:類似的錯誤,一定要在導致錯誤,而且在兩行仔細看它上面還有行仔細看。

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()); 

} 
+0

你,我的主要方法有一些錯誤,但我無法找到我的錯 – shanthini

+0

@ user2704710:如果Davmrtl的答案幫助你,請贊成票它正如我所做的那樣。 –

相關問題