欢迎来到天天文库
浏览记录
ID:36885980
大小:265.50 KB
页数:22页
时间:2019-05-10
《java接口异常实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、java接口、异常与实例分析计算机学院通信软件工程中心张艳梅ymzhang@bupt.edu.cn1本章主要内容:1、我什么时候要用接口?2、java如何控制异常?3、Pong游戏设计分析23保险公司的例子具有车辆保险、人员保险、公司保险等多种保险业务,各种业务的保险对象不同,但在对外提供服务方面具有相似性,如都需要计算保险费(premium)等,因此可声明一个Insurable接口,并使不同的类实现这个接口在UML图中,实现接口用带有空三角形的虚线表示1.接口的作用-例1<>InsurableCom
2、panyPersonCar34声明一个接口Shape2D,可利用它来实现二维的几何形状类Circle和Rectangle把计算面积的方法声明在接口里pi值是常量,把它声明在接口的数据成员里interfaceShape2D{ //声明Shape2D接口finaldoublepi=3.14; //数据成员一定要初始化publicabstractdoublearea(); //抽象方法}1.接口的作用-例2451.接口的作用-不相关类的公共接口接口的作用实现多继承,同时免除C++中的多继承那样的复杂性建立类和类之间的“协议”
3、——契约关系实现不同类之间的公共操作(具体实现不同,但性质相同)实现不同类之间的常量共享561.使用接口:共享方法名和常量classCircleimplementsShape2D{doubleradius;publicCircle(doubler){radius=r;}publicdoublearea(){return(pi*radius*radius);}}classRectangleimplementsShape2D{intwidth,height;publicRectangle(intw,inth){width=w;h
4、eight=h;}publicdoublearea(){return(width*height);}}声明Circle与Rectangle两个类实现Shape2D接口67MovableObject接口定义了所有“可移动对象”能做的事情publicinterface MovableObject{publicboolean start();publicvoid stop();publicboolean turn(intdegrees);publicdouble fuelRemaining();pu
5、blicvoid changeSpeed(doublekmPerHour);}1.使用接口-仅仅超类?78Plane、Car、Train、Boat分别实现MovableObject接口publicclassPlaneimplements MovableObject{publicint seatCapacity;publicCompany owner;publicDate lastRepairDate;//实现MovalbelObject接口的所有方法publicbooleanstart(){//启动飞机,成功则
6、返回true}publicvoidstop(){//停止}publicbooleanturn(intdegrees){//转向,成功则返回true}publicdoublefuelRemaining(){//返回燃料剩余量}publicvoidchangeSpeed(doublekmPerHour){//改变速度}//plane类自己的方法:publicDategetLastRepairDate(){//...}publicdoublecalculateWindResistance(){//....}}1.使用接口-统一公共
7、接口89为MovableObjects安装遥控器(remotecontrol)publicclassRemoteControl{ privateMovableObject machine;RemoteControl(MovableObjectm){machine=m;} //按下“启动”按钮:publicvoidstart(){booleanokay=machine.start(); if(!okay)display("NoResponseonstart"); //...}}remoteControl构
8、造方法的形参类型为MovableObject,它可以是Plane,Car,Train,Boat,等等1.使用接口-不受限的拼装对象PlaneaPlane=newPlane();RemoteControlcontrol=newRemoteControl(aPlane);control.sta
此文档下载收益归作者所有