パッケージ変換
トピックの説明:
配列処理の代わりにベクトルを使用します。キーボードから生徒のスコアを読み取り(入力の終わりを表す負の数を使用)、最高のスコアを見つけて、生徒のパフォーマンスレベルを出力します。
ヒント:
1。配列が作成されると、長さが固定されるため、配列を作成する前にその長さを知る必要があります。ベクトルクラスjava.util.Vectorは、必要に応じて動的にスケーリングできます。
2.ベクトルオブジェクトを作成します
。Vectorv = new Vector();ベクトルに要素を追加します:v.addElement(Object obj); // objはオブジェクトである必要があります
3.ベクトル内の要素を取り出します:Object obj = v .elementAt(0);
4.最初の要素の添え字は0であり、戻り値はObject型であることに注意してください。
5.ベクトルの長さを計算します:v.size();
6.最高スコアから10分以内の場合:Aなど; 20分:Bなど; 30分:Cなど;その他:Dなど
完全なプログラム:
パッケージcom.zyx.exer2;
import java.util.Scanner;
import java.util.Vector;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int maxScore = 0;
Vector v = new Vector();
for(; ;)
{
System.out.println("请输入学生成绩(输入负数结束):");
int score = scan.nextInt();
if(score < 0)
{
break;
}
if(score > 100)
{
System.out.println("输入的数据不合法,请重新输入:");
continue;
}
if (maxScore < score)
{
maxScore = score;
}
//由基本数据类型-->包装类 类类型
Integer inscore = new Integer(score);
//接着将对象传入参数
v.addElement(inscore);
//封箱
v.addElement(score);
}
char level = 'A';
for(int i=0; i<v.size(); i++)
{
Object obj = v.elementAt(i);
类型强转,为了可以调用Order的属性
//多态性-->向下转型的目的--调用真实对象中的一些特有的属性或方法
Integer inscore = (Integer)obj;
int score = inscore.intValue();
//拆箱
int score = (int)obj;
if(maxScore - score <= 10)
{
level = 'A';
}
else if(maxScore - score <= 20)
{
level = 'B';
}
else if(maxScore - score <= 30)
{
level = 'C';
}
else
{
level = 'D';
}
}
}
ナレッジポイント
1、基本データ型から->パッケージングクラスタイプ//JDK5.0
より前
整数inscore = new Integer(score);
v.addElement(inscore);
または、JDK5.0の
後にボックスを//
v.addElement(score)で封印します。
2.整数の属性を呼び出せるように、強制変換を入力します。
多態性->ダウン
キャストの目的-実オブジェクト内のいくつかの一意の属性またはメソッドを呼び出します//
JDK5.0より前整数inscore =(整数) obj;
int score = inscore.intValue();
またはボックス
解除//JDK5.0の後intscore
=(int)obj;