首先,抽象出 Teacher 类,包含私有的数据 名字 和成绩 ,私有的 show()
class Teacher{
public int grades;
public Teacher(){ }
public Teacher(int grades){
this.grades=grades;
System.out.println("teacher类笔试成绩为"+grades+"分");
}
public int getGrades(){
return grades;
}
public void show(){
System.out.println("Teacher参加测评:"+grades);
}
}
这里只写了两个子类:ChineseTeacher EnglishTeacher
class ChineseTeacher extends Teacher{
public int chineseGrades;
public ChineseTeacher(){ }
public ChineseTeacher(int grades){
this.grades=grades;
System.out.println("ChineseTeacher笔试成绩为"+grades+"分。");
}
public void show(){
System.out.println("ChineseTeacher类参加测评");
}
}
class EnglishTeacher extends Teacher{
public EnglishTeacher(){ }
public EnglishTeacher(int grades){
this.grades=grades;
System.out.println("EnglishTeacher成绩为"+grades+"分");
}
public void show(){
System.out.println("EnglishTeacher类参加测评");
}
}
然后是 Exam 类 用于模拟 测试评审团 instanceof 用于校验
class Exam{
private int examGrades;
Random r=new Random();
public void toExam(Object object){
if( !(object instanceof Teacher)){ //instanceof 用于校验引用类型
return ;
}
if(teacher.getGrades()>60){
System.out.println("笔试成绩为"+teacher.getGrades()+"大于60,可以参加评审会的测评!");
teacher.show();
System.out.println("以下是评审会的测评考试");
examGrades=r.nextInt(100);
if(examGrades<60){
System.out.println("测评成绩只有"+examGrades+"分,再接再厉!");
System.out.println("=======================================");
}else {
System.out.println("恭喜你!以"+examGrades+"分通过测评考试");
System.out.println("=======================================");
}
}else{
System.out.println("笔试成绩为"+teacher.getGrades()+"小于60,不可以参加评审会的测评!");
}
}
}
最后是测试类,由于上诉类都处于同一文件,只有Test 是用 public 修饰的
import java.util.Random;
public class Test3{
public static void main(String[] args){
Exam ex=new Exam();
Teacher t=new ChineseTeacher(80);
ex.toExam( t );
t=new EnglishTeacher(86);
ex.toExam( t );
}
}
总结: 学习总是会学了后面忘了前面,类名的定义规范:字母数字下划线美元符号,上次居然用了破折号。。。我都想说:emilyRR,你过来,我不打死你!。。。复习真的很重要,特别是对于一门语言而说,虽然有些定义和C/C++是有相同之处的,但是,语言是很容易失去的,学的快,忘得也很快,这就是我最大的问题吧,不觉得自己比别人智商差在哪里,可以论起努力、勤奋,我一定被甩了好几条街~~~所以~~加油!!作业,实验,测试,尽情地来吧~~~就算被埋没,也终能爬出来,迎向曙光~~