古早博客,居然还被我私密了,现在发出来吧。
这次老师总共留了三道OJ的题目来让我们做,总体围绕Student类进行,类似于一个学生信息管理库,OJ被关了,记得粘题目:
其实不得不说通过这次OJ作业,感觉对JAVA里类,异常,接口等的掌握更进一步了,现在权当做个总结了:
关于编程,先给出个小建议:对于接口,编程时可以先给出声明,但不进行定义,有返回值时,先预先随意给出一个返回值就行,然后在main函数里进行代码编辑,接口可以直接使用。定义好main函数后,再对类里的每个接口进行编程,实现其功能。个人感觉这样来写代码,整体思路会比较清晰,写起代码来头脑会比较清晰。
第一题:Student和StudentTest
这道题是三道题中最简单的,主要在于Student的实现,依照题目的要求,设置成员变量和方法(接口)。
直接给出代码如下(先来StudentTest):
public class StudentTest{
public static void main(String[] args) {
java.util.Scanner in = new java.util.Scanner(System.in);
Student student = new Student(in.next() , in.next());
student.enterMarks(in.nextInt(), in.nextInt(), in.nextInt());
System.out.println(student);
in.close();
}
}
代码应该没啥难懂的,Student类的构造函数需要String类型的两个参数,然后通过enterMarks函数实现各成绩的录入,Student类的代码如下:
class Student {
private String studentNumber =" ";
private String studentName = " ";
private final static int nomark = 0x7fffffff; //用0初始化成绩可能造成混淆,所以定义一个极大的数来表示成绩未输入
private int markForMaths = nomark;
private int markForEnglish = nomark;
private int markForScience = nomark;
public Student(String number, String name) {
this.studentNumber = number;
this.studentName = name;
}
public Student() {
}
public String getNumber() {
return studentNumber;
}
public String getName() {
return studentName;
}
public void enterMarks(int markForMaths, int markForEnglish, int markForScience) {
this.markForMaths = markForMaths;
this.markForEnglish = markForEnglish;
this.markForScience = markForScience;
}
public int getMathsMark() {
return markForMaths;
}
public int getEnglishMark() {
return markForEnglish;
}
public int getScienceMark() {
return markForScience;
}
double calculateAverage() {
double ret= 0.0;
ret = (markForMaths+markForEnglish+markForScience)/3.0;
return ret;
}
@Override
public String toString() {
return String.format("Student Info:\r\n"
+ "Number:%s\r\n"
+ "Name:%s\r\n"
+ "Math:%d\r\n"
+ "English:%d\r\n"
+ "Science:%d\r\n"
+ "Ave:%.2f",
studentNumber,studentName,markForMaths,markForEnglish,markForScience,calculateAverage() );
}
}
其实观察会发现,各接口的实现还是比较简单的,关键把思路理清就能很快的写完代码了,这样运行就能实现我们要的基本功能了,就是学生信息的录入和输出。这里指出一下public String toString()函数可以根据你要求的转化为字符串并返回,然后我们直接System.out.print()我们创建的对象就可以把我们在public String toString()函数中生成的字符串输出了。