2014-03-13 113 views
1

我有這個簡單的項目,因爲明天,我幾乎完成,但事情是,在類中的一個要求是它有一個數組,掃描儀(我有)和繼承。在哪裏添加數組?

這是我到目前爲止有:

import java.util.*; 
import java.io.*; 

public class TestScores 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("Enter scores from a range of 0 to 100."); 
     System.out.println(""); 
     Scanner kbReader = new Scanner(System.in); 

     int testscore = kbReader.nextInt(); 
     char grade; 

     if (testscore >= 90) { 
      grade = 'A'; 
     } else if (testscore >= 80) { 
      grade = 'B'; 
     } else if (testscore >= 70) { 
      grade = 'C'; 
     } else if (testscore >= 60) { 
      grade = 'D'; 
     } else { 
      grade = 'F'; 
     } 
     System.out.println("Grade = " + grade);    
    }  
} 

我不知道如何把陣列和繼承。

什麼是子類?

+0

您可以在數組中存儲測試成績/觸發器級別,因此您不必使用if/else/else鏈,而只需要一個循環。至於繼承,做些傻事/愚蠢的事情。定義一個你輸入的基類,然後用你的成績處理擴展它。 –

+1

你的任務當然包括一些關於你應該用類和繼承來建模的信息以及應該在數組中存儲什麼? – jpw

+0

你能澄清繼承要求嗎?老師告訴你什麼使用繼承? –

回答

0

那麼你可以創建一個對象級可以這麼說,你現在可以有定義爲甲級對象的數組:

Grade[10] grades = new Grade[10]; // 10個對象可以存儲

那麼我想根據你的代碼你可以使用AGrade,BGrade等等級的子類,並讓它們包含額外的信息。

Class Grade { 

    int mark; 

    public Grade(int mark){ 

     this.mark = mark; 

    } 

} 


Class AGrade extends Grade { 

     String message = "wooo i got an A"; 

     public AGrade(){ 

      //access mark or message or what ever you want to add here 
      }  
     } 

我會離開的實施給你的休息,但你需要使用超級訪問,如果你要訪問的大關AGrade。不清楚你已經完成了多少繼承,但是如果你來自C++,Java不支持多繼承。

我可能在錯誤的說什麼,但是很難根據上面的內容準確地分辨出你要找的是什麼,如果你只使用標記和打印的話,我在這裏看不到子類的實際需求出了一個字符。

我給出的例子在每個類中使用了一條消息,因此您可以在子類之間清楚地顯示差異。

+0

你的代碼不能編譯,請縮進它 – nachokk

+0

這只是一個概述,給OP一個可能的解決方案的一般想法。如果沒有看到這個規範,他們甚至都在尋找什麼,這一點甚至都不清楚。 –