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

首先,抽象出 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值