java基础之抽象 (通过教师资格证考核模拟现实,理解面向对象和抽象)

来源:互联网 发布:北京php程序员培训机构 编辑:程序博客网 时间:2024/04/19 07:25

首先,抽象出 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++是有相同之处的,但是,语言是很容易失去的,学的快,忘得也很快,这就是我最大的问题吧,不觉得自己比别人智商差在哪里,可以论起努力、勤奋,我一定被甩了好几条街~~~所以~~加油!!作业,实验,测试,尽情地来吧~~~就算被埋没,也终能爬出来,迎向曙光~~


0 0
原创粉丝点击