Java程序设计项目式教程 课件 4-3 使用接口实现学生信息管理系统_第1页
Java程序设计项目式教程 课件 4-3 使用接口实现学生信息管理系统_第2页
Java程序设计项目式教程 课件 4-3 使用接口实现学生信息管理系统_第3页
Java程序设计项目式教程 课件 4-3 使用接口实现学生信息管理系统_第4页
Java程序设计项目式教程 课件 4-3 使用接口实现学生信息管理系统_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

§4-3使用接口实现学生信息管理系统Java面向对象程序设计教学目标任务分析

在学生信息管理系统中,除定义表示学生实体的类(实体类)之外,还需要定义各种完成系统功能的类(业务处理类),本任务的业务处理类中必须完成学生信息的增、删、改、查等基本操作,但不同实体实现业务的方式又各不相同,为了保证这些基本功能的实现,通常先定义一组约束或规范,约定好必须要实现的功能,Java中的接口便可以实现这一功能。教学内容1抽实现接口定义21Java多态一、接口定义接口是由一些抽象方法和常量所组成的一个集合。它的定义与抽象类类似,只定义了类中方法的原型,而没有直接定义方法的内容。其定义格式为:

[public]interface接口名[extends接口1,接口2,......]{

类型标识符常量名1=常数;

类型标识符常量名2=常数;

......

类型标识符常量名n=常数;

返回值类型方法1(参数列表);

返回值类型方法2(参数列表);

......

返回值类型方法n(参数列表);

}一、接口定义接口中定义的常量默认使用了“publicstaticfinal”进行修饰,即为静态常量;方法都默认使用了“publicabstract”进行修饰,即为抽象方法。接口也不能用来实例化对象,它不是一个类。例如:

interfaceCallback{

floatPI=3.14159;

voidcallback(floatparam);

}二、接口实现一个或多个类可以实现该接口。Java中使用关键字implements实现接口,接口实现一般格式如下:

[public]class类名[extends父类名称][implements接口名列表]

{类体

}说明:1)如果一个类实现多个接口,这些接口名之间用逗号分隔。2)当一个类实现某个接口时,必须实现接口中的所有方法,且方法必须声明为public;如果不能实现,也必须写出一个空方法。而且,实现方法的类型必须严格与接口定义中指定的类型相匹配。3)允许多个类实现同一接口。二、接口实现例如,实现Callback接口的类Area的定义。

classAreaimplementsCallback{

publicvoidcallback(floatr){

System.out.println("半径为"+r+"圆的面积是:"+PI*r*r);

}

}注意:callback(

)必须用public修饰符声明。二、接口实现【例4-9】根据用户要求在控制台打印不同的图形。interfaceShape{//定义接口voiddraw();}classCircleimplementsShape{voiddraw(){System.out.println("drawCircle.");}}classSquareimplementsShape{voiddraw(){System.out.println("drawSquare.");}}classTriangleimplementsShape{voiddraw(){System.out.println("drawTriangle.");}}classTestShape{publicstaticvoidmain(String[]args){drawShape(newCircle());

drawShape(newSquare());

drawShape(newTriangle());

}staticvoiddrawShape(Shapes){//s可以是实现Shape接口的任何类的对象

s.draw();

}}三、Java多态性封装是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。类中成员的属性有:public,protected,(default),private,这四个属性的访问权限依次降低。

封装可以隐藏实现细节,实现了代码模块化。继承是指这样一种能力,它可以使用现有类的所有功能,并在无需重新编写原来类的情况下对这些功能进行扩展。

继承实现了代码重用,提高了代码编写效率。封装、继承、多态是Java面向对象编程的三大特征,也称为三大基石。三、Java多态性多态是指不同对象在调用同一个方法时,表现出的多种不同形态。利用多态可以使程序具有良好的可维护性和可扩展性。Java中的多态有两种。

1)编译时多态:方法的重载。

2)运行时多态:Java运行时系统根据调用该方法的对象类型来决定选择调用哪个方法。多态实现有三个必要条件。一要有继承,二要有重写,三是父类引用指向子类对象封装、继承、多态是Java面向对象编程的三大特征,也称为三大基石。三、Java多态性【例4-10】多态性应用示例,对各类水果味道的描述。publicabstractclassFruit{ //抽象类,父类——水果

Stringfname;

publicFruit(Stringfname){ super(); this.fname=fname;

}

publicabstractvoidshowTaste();//抽象方法,描述水果味道}publicclassOrangeextendsFruit{ //子类——橙子类

publicOrange(Stringfname){ super(fname);

}

publicvoidshowTaste(){ System.out.println("酸甜可口!");

}}publicclassAppleextendsFruit{ //子类——苹果类

publicApple(Stringfname){ super(fname);

}

publicvoidshowTaste(){ System.out.println("非常甜!");

}}publicclassChild{ //孩子类

Stringname;

publicChild(Stringname){ super(); =name;

}

publicvoideat(Fruitfruit){ //父类对象作为形参

//参数是父类型“水果”类型,该父类及其子类的对象都可以作为实参传入 System.out.print(+"今天吃了一个"+fruit.fname+","); fruit.showTaste();

}}三、Java多态性【例4-10】多态性应用示例,对各类水果味道的描述。publicclassTestFruit{ //主类(测试类)

publicstaticvoidmain(String[]args){ Childchild1=newChild("小明"); Childchild2=newChild("小红"); child1.eat(newApple("苹果")); //子类对象作为实参 child2.eat(newOrange("橙子"));

//子类对象作为实参

//实现动态绑定,在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法

}}程序说明:1)程序中使用了一个实现多态的关键手段:“将子类的引用赋给父类对象(向上转型)”也称为“父类引用指向子类对象”。相当于:Fruitapple=newApple();声明的是父类类型,创建的是子类对象。2)该程序具有较强的可扩展性。如:若在程序中再增加一种水果——桃子,现在已有代码不需要做任何改动,只需要添加一个“桃子”子类,就可以完成。这就是多态的最大优势。任务实施学生信息管理系统中,为了实现学生信息的“增、删、改、查”这些基本功能,首先定义了一个接口StudentDao,在其中规定了实现接口的类必须实现的功能。publicinterfaceStudentDao{

publicUserlogin(Stringuname,String

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论