题:
命名App1.java
要求:
(1)按照题目所给变量名称、类型和方法名称进行编程,禁止修改;
(2)本题中所有内容写在源文件App1.java中。
(3)编程环境可选,Eclipse和JDK均可。
1、学生类(Student)
成员变量:
学生名称(StdName),每个学生有三分:test1,test2 和test3 类型 int
学生id (StdId) 和学生年龄 (StdAge) 类型 int
构造方法:
构造方法(1),通过形参初始化名称(StdName)
构造方法(2),除了StdId和StdAge通过形参初始化所有成员变量(调用构造方法(1))
普通方法:
设置getter和setter方法用于获取和设置类中StdId 和StdAge变量的值, StdId 和StdAge不能为负数;
设置getter方法用于获取和类中StdName变量的值;
setScore(),public void 有两个参数的方法:(i 是test变量指标,如果i等于1那么
score等于test1)
getAverage(), public int 无参数的方法:返回测试分数的平均值
Student compare(Student),用于比较两个对象的年龄。
2、通过main方法测试
(1)创建两个Student对象std1、std2,判断这两个对象那个年龄大。
(2)分别调用getStdName()和getAverage()输出两个对象。
第一个学生名是Bill , age= 20, id= 101,test1= 80,test2=90 和test3=100
第二个学生名是Mike ,age= 22, id= 102, test1= 80,test2=80 和test3=90
输出应该是:
代码:
package 大二;
class Student{
public int id;
private int score1,score2,score3;
private String StdName;
private int StdAge;
private int StdId;
// 构造方法1
public Student() {
}
public Student(String stdName) {
StdName = stdName;
}
// 构造方法2
public Student(String name,int stdAge, int stdId) {
this(name);
StdAge = stdAge;
StdId = stdId;
}
//姓名
public String getStdName() {
return StdName;
}
// 年龄
public int getStdAge() {
return StdAge;
}
public void setStdAge(int stdAge) {
if (stdAge<0) {
throw new IllegalArgumentException("年龄不能为0");
} else if(stdAge>200) {
throw new IllegalArgumentException("年龄不能为200");
}
StdAge = stdAge;
}
//ID
public int getStdId() {
return StdId;
}
public void setStdId(int stdId) {
StdId = stdId;
}
//获取成绩
public void setScore(int i,int test)
{
if (i>3) {
throw new IllegalArgumentException("请输入小于3的成绩");
}
if (i==1) {
score1=test;
}else if (i==2){
score2=test;
}else {
score3=test;
}
}
//平均成绩
public int getAverage() {
return (score1+score2+score3)/3;
}
//比较年龄
public Student compare(Student s) {
if (this.getStdAge()>s.getStdAge()) return this;
else return s;
}
@Override
public String toString() {
return "Student [score1=" + score1 + ", score2=" + score2 + ", score3=" + score3 + ", StdName=" + StdName
+ ", StdAge=" + StdAge + ", StdId=" + StdId + "]";
}
}
public class App1 {
public static void main(String[] args) {
Student std1 = new Student("Bill",20,101);
Student std2 = new Student("Mike",22,102);
//学生1的成绩
std1.setScore(1,90);
std1.setScore(2,90);
std1.setScore(3,90);
//学生2的成绩
std2.setScore(1, 80);
std2.setScore(2, 80);
std2.setScore(3, 90);
System.out.println("Name:"+std1.getStdName()+" ,Age:"+std1.getStdAge()+" ,id:"+std1.getStdId()+" ,Average :"+std1.getAverage());
System.out.println("Name:"+std2.getStdName()+" ,Age:"+std2.getStdAge()+" ,id:"+std2.getStdId()+" ,Average :"+std2.getAverage());
System.out.println(std1.compare(std2).getStdName()+" is older");
}
}
运行结果: