欢迎来到天天文库
浏览记录
ID:36198162
大小:981.81 KB
页数:40页
时间:2019-05-07
《java面向对象高级特性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2021/7/91第四章Java面向对象高级特性2021/7/92本章要点Static、final关键字抽象类接口包内部类访问控制其它2021/7/93§4.1static关键字用static(静态的)修饰的变量或方法又称为类变量和类方法。类变量(静态变量)在成员变量声明时使用static关键字。注意点:类变量只在系统加载其所在类时分配空间并初始化,实例化对象时不再分配空间,所有实例对象将共享类的静态变量。用途可以用来在实例对象之间进行通信复习变量:描述对象的属性成员变量:类的变量定义部分所定义的变量:实例成员变量类成员变量
2、:前面加static2021/7/96类似于其他语言中的全局变量,可以用类名直接调用。如:Count.counter例1doubled=Math.PI;类名Static变量2021/7/97注意点(见Hello.static.java)静态方法只能访问方法体内定义的局部变量、自己的参数和静态变量。(因静态方法不是通过调用对象实例,故在静态方法中没有this指针)子类不重写(覆盖)父类的静态方法,而是隐藏不能将非静态方法重写为静态的方法,反之亦然。main()是一个静态方法,是程序的入口点,可以使JVM不创建实例对象就可以运行
3、方法。2021/7/98静态初始化程序类中不属于任何方法体中,并以static关键字修饰的语句块。如:static{I=5;System.out.println(“Staticcode:I=”+I++);}注意静态语句块只在加载类时执行一次,通常用来进行类成员变量的初始化。2021/7/994.2final关键字在Java中,可以用final关键字声明类、成员方法、成员变量。被定义成final的类不能再派生子类如:Java.lang.String为一个final类。被定义为final的方法不能重写,优点是在运行时进行效率优化
4、。(举例)被定义为final的变量只能被赋值一次,常用来定义常量,变量名一般大写。2021/7/9104.3abstract关键字abstract方法只有定义而没有方法体的方法。abstract类包含一个或多个抽象方法的类。定义抽象类的格式为:abstractclass抽象类名{……}注意点抽象类不能实例化。可派生子类,在子类中具体定义方法的功能。抽象类可以没有抽象方法,这样是为了禁止创建实例2021/7/911目的是为一类对象建立抽象的模型,在同类对象所对应的体系中抽象类往往位距顶层。使类的设计变的清晰、支持多态、为类的体
5、系提供通用的接口。2021/7/912Employeee=newManager();//正确Employeee=newEmployee();//错误abstractclassEmployee{abstractvoidraiseSallory(inti);//没有{},直接以分号结尾}ClassManagerextendsEmployee{//若子类没有实现抽象方法,voidraiseSallory(inti){……};//那么子类也必须是抽象的}接口用关键字interface来定义的Java中的接口是一系列方法的声明,是一些
6、方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)接口是客户端代码与提供服务的类之间的“规约”。接口是抽象类的变体。接口中的所有方法都是抽象的,没有一个有程序体。4.4接口2021/7/914接口定义格式:[public][abstract]interface接口名[extends父接口1,父接口2,…]{[publicstaticfinal]常量定义;[publicabstract]方法定义;}接口的成员变量默认具有final属性,即常量。
7、接口的方法为abstract,仅有声明,没有实现。2021/7/915接口的实现与使用implements关键字用来表示某类实现某个接口,在类体中可以使用接口中定义的常量,且须实现接口中定义的所有方法。一个类可以实现多个接口,在implements中用“,”分隔。例如:PublicinterfaceFlyer{publicvoidtakeoff();publicvoidland();publicvoidfly();}2021/7/916PublicclassAirplaneimplementsFlyer{publicvoid
8、takeoff(){//实现起飞的操作}publicvoidland(){//下落}publicvoidfly(){//起飞}}2021/7/917接口的多态接口的引用比类更灵活。一个接口的引用,可以指向任意不相关的、实现了这个接口的类对象。对比:继承中,父类的引用只能指向它的子类对象。e
此文档下载收益归作者所有