013 面向对象编程.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:31 大小:2.8MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

013 面向对象编程.ppt

013面向对象编程.ppt

预览

免费试读已结束,剩余 21 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

深入JAVA编程第013课深入Java编程接口是类似于类的一种结构。可以把接口看成是由常量和抽象方法组成的特殊类。(接口特别像纯粹的抽象类)接口是对C++的多重继承性的替代,即接口是用来实现类间多重继承功能的结构。Java语言规定:一个新类只能从一个超类扩展——典型的单亲继承。通过实现接口,某个类可以拥有多个父接口。接口的定义格式:[public]interface接口名[implements父接口名表列]{<终结变量(常量)><抽象方法>}interfaceCollection{intMAX_NUM=100;voidadd(Objectobj);voiddelete(Objectobj);Objectfind(Objectobj);intcurrentCount();}访问控制苻interface接口名{返回类型方法名(参数列表);返回类型方法名(参数列表);类型常量名=value;类型常量名=value;}特点:定义的方法没有方法体.它们本质上是抽象方法,每个实现接口的类必须实现所有的方法.接口中可以声明变量,它们是,publicfinal和static型.如果一个类实现了一个接口,但是不完全实现接口定义的方法,那么该类必须定义成abstract型.由上面的例子我们可以看出:接口(interface)就是方法定义和常量值的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有方法的实现。接口用于定义几个类具有的但又不是在这些类中定义的功能。接口定义的仅仅是实现某一特定功能的对外接口和规范,并没有真正地实现这个功能。接口中定义的各种功能的实现是在“继承”这个接口的各个类中完成的,即由这些类来具体定义接口中各抽象方法的方法体。接口是用来实现类间多重继承功能的结构。Java语言是典型的单亲继承。很多情况下,单亲继承很难完整表达实际问题的复杂性。为了弥补Java单亲继承原则的缺陷,Java语言引入“接口”的概念。通过实现接口,某个类可以拥有多个父类。接口用于定义几个类具有的但又不是在这些类中定义的功能。接口的单继承利用接口可实现多重继承(可同时实现多个接口)。关键字implement用来实现方法,即在使用时要用给出方法的实际内容一个接口可以有一个以上的父接口,彼此用“逗号”开,形成父接口表列。16内部类16.1内部类基础Classouter{Intouter_x=100;Voidtest(){Innerinner=newInner();Inner.display();//这是一个内部类ClassInner{Inty=10;Voiddisplay(){System.out.println(“outer_x=”+outer_x);}}}16.1内部类基础上面程序的输出如下:在本程序中,内部类Inner定义在outer类的范围之内,以此,在内部类之内的任何代码可以直接访问变量outer—x。方法display()定义在Inner内部,该方法以便准的输出流显示outer—x。InnerClassDemo的main()方法创建类outer的一个实例并调用他的test()方法。16.2内部类特点由上得知:一个内部类可以访问他的包围类的成员,但是反过来就不成立了,内部类的成员只有在内部类的范围内才是可知的,而且不能被外部类使用。16.3匿名内部类newinterfacename(){......};或newsuperclassname(){......};publicclassGoods3{publicContentscont(){returnnewContents(){privateinti=11;publicintvalue(){returni;}};}}由上面的例子看:在java的事件处理的匿名适配器中,匿名内部类被大量的使用。例如在想关闭窗口时加上这样一句代码:有一点需要注意的是,匿名内部类没有构造函数(但是如果这个匿名内部类继承了一个只含有带参数构造函数的父类,创建它的时候必须带上这些参数,并在实现的过程中使用super关键字调用相应的内容)。如果你想要初始化它的成员变量,有下面几种方法:如果是在一个方法的匿名内部类,可以利用这个方法传进你想要的参数,不过记住,这些参数必须被声明为final。将匿名内部类改造成有名字的局部内部类,这样它就可以拥有构造函数了。在这个匿名内部类中使用初始化代码块。小结:小测验:1定义一个”车”的接口.包括变量颜色最大速度,改变速度的方法。2自定义一个内部类,熟悉内部类的特点