第五周技术博客
这周学了类的多态,内部类,还有异常处理
其实就类的多态稍微比较熟练,内部类正在巩固,异常处理会简单的语法规则和阅读,处理方法不费很多
下面就是一一个题目,有用到|->类数组
|->异常抛出,捕捉,处理
题目貌似是创建三十个学生,有学号,有随机60-100的分数,最后根据大小排列后输出
import java.util.ArrayList;
import java.util.Scanner;
class FailException extends Exception
{
FailException(String message)
{
super(message);
}
}
class Student
{
private int stunum;
private int score;
Student(int stunum)
{
this.stunum = stunum;
}
void setScore() throws FailException //设置随机的分数
{
this.score = (int)Math.round(Math.random()*40+60);
if(score<60)
throw new FailException("输入的分数不及格");
}
void setScore(int num) throws FailException//设置分数
{
if(num<60)
throw new FailException("输入的分数不及格");
this.score = num;
}
static boolean compare(Student i, Student j) // 比较学生分数的大小
{
if(i.score>j.score)
return true;
else
return false;
}
void getScore() //获得分数和学号
{
System.out.println(this.score+"\t\t"+this.stunum);
}
}
@SuppressWarnings("unchecked") class StuScore
{
public static void main(String[] args)
{
/*
ArrayList stuscore = new ArrayList();
for(int i = 20070301; i<20070330;i++)
{
stuscore.add(new Student(i));
stuscore.get(i-20070301).setScore();
stuscore.get(i-20070301).getScore();
}
*/
int i;
Student[] stu = new Student[30];
for (i = 1; i<=30 ; i++ ) // 初始化Student数组
{
stu[i-1] = new Student(20070300+i);
try
{
stu[i-1].setScore();
stu[i-1].getScore();
}
catch (FailException e)
{
System.out.println(e.toString());
}
}
ArrayListSort.maxToMin(stu);
try
{
stu[20].setScore(30);
}
catch (FailException e)
{
System.out.println(e.toString());
}
for (i = 1; i<=30 ; i++ ) // 初始化Student数组
{
stu[i-1].getScore();
}
}
}
class ArrayListSort
{
public static void maxToMin(Student[] stu)
{
/*
Student[] s = new Student[30];
Student mid;
for(int i = 30; i>1 ;i-- )
for (int j=i-1; j>=1 ;j-- )
{
if(stuscore.get(j).getScore()=1 ; i-- )
{
for (int j= i-1; j>=0 ; j-- )
{
if (Student.compare(stu[i],stu[j]))
{
mid = stu[i];
stu[i]=stu[j];
stu[j]=mid;
}
}
}
}
}
/*
代码缺陷:在判断到输入错误分数时,无法进行异常嵌套..
如果进行嵌套输入则又需要try进入无限循环。我将百度一下
*/
posted on 2016-03-29 18:19 fanfans1996 阅读(97) 评论(0) 编辑 收藏 举报