欢迎来到天天文库
浏览记录
ID:44957012
大小:553.00 KB
页数:61页
时间:2019-11-06
《第4章 接口、内部类和Java API》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、4.1接口4.2内部类和内部接口java类库:4.3java.lang包中的基础类库4.4java.util包中的工具类库第4章接口、内部类和JavaAPI基础[基本]3.1类和对象3.2类的封装性[高级]3.3类的继承性3.4类的多态性3.5类的抽象性4.1.1接口与实现接口的类接口的定义接口的实现与引用【例4.1】接口是一个引用数据类型【例4.2】一个类实现多个接口【例4.3】4.1.2用接口实现多重继承接口的引言从抽象类引入接口。接口是一个标准、约定,接口的目的是规范实现类。类是对象的抽象,接口是
2、类的抽象。4.1.1接口接口(Interface)是Java所提供的另一种重要功能,它的结构与抽象类非常相似。接口本身也具有数据成员与抽象方法。1.接口的定义(声明)[public]interface接口名称[extends父接口名列表]{[public][static][final]数据类型成员变量名=常量;……[public][abstract]返回值类型方法名(参数表);……}要点:Public、abstract总是默认的4.4.1接口定义与实现类接口定义的语法格式如下:InterfaceSumm
3、arible{finalintMAX=50;voidprintone(floatx);floatsum(floatx,floatx);}//上述public、abstract都默认例如:书例:P106publicinterfaceArea{publicabstractdoublearea();}class类名称implements接口名列表{……(其中必须实现接口的全部抽象方法)}注意以下问题:(1)一个类在实现某接口时,必须实现接口的全部方法,且方法头一致。(2)接口中抽象方法的访问控制修饰符已默认为
4、public,所以类在实现方法时,必须显示地使用public修饰符。2.用类实现接口在声明一个类的同时用关键字implements来实现一个接口。接口实现的语法格式为:publicinterfaceArea//面积接口{publicabstractdoublearea();//计算面积,抽象方法}【例4.1】可计算面积接口与实现该接口的矩形类publicclassRectangleimplementsArea//矩形类,实现可计算面积接口{protecteddoublelength,width;//长度
5、和宽度publicRectangle(doublelength,doublewidth)//构造方法,两参数{this.length=length;this.width=width;}publicRectangle(doublewidth){this(width,width);}//正方形,构造方法重载publicRectangle(){this(0,0);}publicRectangle(Rectangler){this(r.length,r.width);}publicdoublearea()//矩
6、形面积,实现抽象方法{returnthis.width*this.length;}publicdoubleperimeter()//矩形周长{return(this.width+this.length)*2;}publicStringtoString(){return"一个矩形,长度"+this.length+",宽度"+this.width+",面积为"+this.area()+",周长为"+this.perimeter();}publicstaticvoidmain(Stringargs[]){Sy
7、stem.out.println(newRectangle(10,20).toString());System.out.println(newRectangle(10).toString());//正方形}}//【例4.1】定义椭圆类和园类,实现area接口。思考题publicclassEllipseimplementsArea//椭圆类,实现平面图形接口{protecteddoubleradius_a,radius_b;//a轴半径和b轴半径publicEllipse(doubleradius_a,d
8、oubleradius_b)//构造方法,两参数{this.radius_a=radius_a;this.radius_b=radius_b;}publicEllipse(doubleradius){this(radius,radius);}//圆,构造方法重载publicEllipse(){this(0,0);}publicdoublearea()//椭圆面积,实现抽象方法,覆盖{returnMath.PI*this.radius_a*t
此文档下载收益归作者所有