Java编程思想学习笔记第八章

我们在练什么-Java30小时持续训练

30小时训练完成度:26h/30h

接口(interface)

interface在abstractclass的路上走的更远,在interface中只有方法的声明,没有具体实现,是一个纯abstract类。

使用interface关键字定义接口:

interfaceRunnable{intTIMES=1;StringNAME="running";voidrun();}

接口中的变量是staticfinal

接口中的所以方法只有声明,没有实现

多重继承

在C++中,类可以继承多个父类,在Java中,使用接口也可以实现“多重继承”的效果。

使用implements关键字实现一个或多个接口:

interfaceA{}interfaceB{}classCimplementsA,B{}

使用接口,可以将子类Upcast为多个Base类型

接口也可以避免使用者去实例化一个类

优先使用接口,在需要添加变量或具体方法时再考虑抽象类

避免在不同的接口中使用相同的方法名。这样代码可读性很差,也会在执行时造成混淆。

//AvoidtheseinterfaceA{voidf();}interfaceB{voidf(inti);}使用继承扩展已有接口

接口可以再继承接口,扩展已有接口的功能。

interfaceCar{voidrun();}interfaceAirCarextendsCar{voidfly();}利用接口组织常量

在接口中的成员变量都是static和final的,利用这个特性,可以把程序中的常量通过接口来分组。

publicinterfaceMonth{intJAN=1;intFEB=2;intMARCH=3;}

这样组织常量,更具可读性

在使用时,可以更加直观,如Month.Jan

接口的变量初始化

接口的变量必须在定义时就初始化

变量可以通过非常量表达式初始化

变量在接口第一被调用时开始初始化

publicinterfaceRandVals{intrandomInt=rand.nextInt(10);}接口的嵌套

嵌套接口可以被定义为private接口

嵌套接口的定义和普通接口一样

实现接口,并不需要实现其内部的嵌套接口

私有嵌套接口只能在被定义类的内部实现

内部类

将一个类的定义放在另一个类定义内部,这个类就称为内部类。

publicclassParcel{//InnerclassclassContents{privateinti=1;publicintvalue(){returni;}}}

内部类和外部类的区别:

非static内部类和包含其的外部类,隐含者关联关系,不能通过普通的new方式生成新的实例。必须在外部类实例的基础上,实例化。

其中的一种方式是在外部类中定义内部类的实例化方法

publicclassParcel{classContents{privateinti=1;Contents(){}}publicContentscont(){returnnewContents();}}内部类和向上转型

内部类可以完全隐藏实现方式,而只暴露出外部定义的interface。这种隐藏是无法在普通类中做到的。普通类要么是public,要么是friendly。

//Runnable.javainterfaceRunnable{voidrun();}//Parcel.javapublicclassParcel{privateclassContentsimplementsRunnable{privateinti=1;Contents(){}voidrun(){}}publicRunnablerunnable(){returnnewContents();}}内部类的方法和范围

除了上面定义内部类方式,内部类还可以定义在方法或专属范围内。

定义在方法内部:

publicclassParcel{publicRunnablerunnable(){classContentsimplementsRunnable{privateinti=1;Contents(){}voidrun(){}}returnnewContents();}}

定义在专属范围内:

publicclassParcel{publicRunnablerunnable(booleanb){if(b){classContentsimplementsRunnable{privateinti=1;Contents(){}voidrun(){}}returnnewContents();}//Outofscope,cannotuseContentsreturnnull;}}

题图

dcossyle









































北京看白癜风哪里医院好
北京怎样治疗白癜风



转载请注明:http://www.nydjfy.com/jbjj/1667.html

  • 上一篇文章:
  •   
  • 下一篇文章: