java 面向对象编程(模拟老师用电脑上课)

//程序入口类

/*
 * 陈老师用电脑上课。
 * 课上出现的问题
 * 比如: 
 * 电脑蓝屏了。
 * 电脑冒烟了。
 * 对问题进行描述,封装成对象。
 *  当冒烟MaoyanException发生后,课时无法继续。
 *  出现了讲师的问题,课时计划无法继续NoplanException
 */
public class ExceptionTest1 {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Teacher t=new Teacher("陈老师");
try {
t.prelect();
} catch (NoplanException e) {
// TODO: handle exception
System.out.println(e.toString());
System.out.println("放假!");
}


}


}


//讲师类
public class Teacher {
private String name;
private Computer cmpt;

public Teacher(String name) {
// TODO Auto-generated constructor stub
this.name=name;
cmpt=new Computer();

}
//public void prelect()throws MaoyanException{
public void prelect()throws NoplanException{
try {
cmpt.run();
} catch (LanpingException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
cmpt.reset(); 
} catch (MaoyanException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
test();
throw new NoplanException("课时无法继续"+e.getMessage());
}
System.out.println("讲课"); 
}
public void test(){
System.out.println("练习");
}

}

//电脑类



public class Computer {
//private int state=1;
private int state=2;
//private int state=3;
public void run()throws LanpingException,MaoyanException{
if(state==2){
throw new LanpingException("蓝屏了");
}
if(state==3){
throw new MaoyanException("冒烟了");
}
System.out.println("电脑运行");

public void reset(){
state=1;
System.out.println("电脑重启");
}

}

//蓝屏类
public class LanpingException extends Exception {
LanpingException(String message){
super(message);
}
}

//冒烟类

public class MaoyanException extends Exception {
 MaoyanException(String message){
super(message);
 }
 
}

//课时计划无法继续类

public class NoplanException extends Exception {
  NoplanException(String message){
 super(message);
  }
}

一个Java项目,模拟一次包括老师备课,同学上课,布置作业和做作业的课堂教学过程。作业为判断字符串是否为2-重复串及其他字符串操作内容 1. 创建Java项目JavaTeaching2012 2. 创建包cn.qtech.util,在其中新建RepeatedStringEstimator,该有两个方法:(1)public boolean estimate(String s),用于判断字符串s是不是2-重复串(字符串中每个出现的字符出现2次且仅两次),如判断aaaa不是,abddab是,acbcab是。(2)public void stringOperate(),其中调用适当的字符串操作完成(a)判断两个字符传”abc”和”acb”是否相同,(b)输出"c:\\java\\jsp\\A.java"中第二次出现"\\j"的位置,并输出该位置起到串末的子串 3. 创建包cn.qtech.teaching,在其中新建抽象UniversityPeople,包含一个抽象方法void doDuty(TeachingMessage msg),表示某人完成自己的任务。 4. 在包cn.qtech.teaching中创建枚举型TeachingState,其中包括常量BEIKE, TINGKE, BUZHIZUOYE, ZUOZUOYE,分别表示备课,听课,布置作业,做作业 5. 在包cn.qtech.teaching中创建Student继承自UniversityPeople,该有成员变量name及name的getter/setter方法。实现的doDuty(TeachingMessage msg)方法中如果判断msg的状态为BEIKE,则修改msg状态为TINGKE并输出:"老师"+msg中老师对象名+"备完课后,去听课!";如果判断msg的状态为BUZHIZUOYE,则修改msg状态为ZUOZUOYE并输出:"老师"+msg中老师对象名+"布置完课作业后,开始做作业!",然后调用RepeatedStringEstimator中的两个方法输出作业结果 6. 在包cn.qtech.teaching中创建Teacher继承自UniversityPeople,该有成员变量name及name的getter/setter方法。实现的doDuty(TeachingMessage msg)方法中如果判断msg的状态为TINGKE,则修改msg状态为BUZHIZUOYE并从msg中获得并输出听课学生名单,然后输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值