2014-03-13 115 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一个可能的解决方案的一般想法。如果没有看到这个规范,他们甚至都在寻找什么,这一点甚至都不清楚。 –