欢迎来到天天文库
浏览记录
ID:51966987
大小:249.55 KB
页数:58页
时间:2020-03-26
《Java面向对象高级特性.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章Java面向对象高级特性7/25/20211本章要点Static、final关键字抽象类接口包内部类访问控制其它7/25/20212§5.1static关键字用static(静态的)修饰的变量或方法又称为类变量和类方法。类变量(静态变量)在成员变量声明时使用static关键字。注意点:类变量只在系统加载其所在类时分配空间并初始化,实例化对象时不再分配空间,所有实例对象将共享类的静态变量。用途可以用来在实例对象之间进行通信7/25/20213类似于其他语言中的全局变量,可以用类名直接调用。如:Count.counter例
2、题5-1static成员变量举例(P115)类方法(静态方法)在类的成员方法声明中带有static关键字,访问时可通过类名访问例题5-2static方法举例(P117)类名Static变量7/25/20214注意点静态方法只能访问方法体内定义的局部变量、自己的参数和静态变量。(因静态方法不是通过调用对象实例,故在静态方法中没有this指针)子类不能重写父类的静态方法,不能将非静态方法重写为静态的方法。main()是一个静态方法,是程序的入口点可以使JVM不创建实例对象就可以运行方法。7/25/20215静态初始化程序类中不属
3、于任何方法体中,并以static关键字修饰的语句块。如:static{I=5;System.out.println(“Staticcode:I=”+I++);}注意静态语句块只在加载类时执行一次,通常用来进行类成员变量的初始化。例题5-3:静态语句块与静态变量的访问。7/25/202165.2final关键字在Java中,可以用final关键字声明类、成员方法、成员变量。被定义成final的类不能再派生子类如:Java.lang.String为一个final类。被定义为final的方法不能重写,优点是在运行时进行效率优化。被
4、定义为final的变量只能被赋值一次,常用来定义常量,变量名一般大写。例题5-4final变量在构造方法中赋值7/25/202175.3抽象类抽象方法只有定义而没有方法体的方法。抽象类包含一个或多个抽象方法的类。定义抽象类的格式为:abstractclass抽象类名{……}注意点抽象类不能实例化。可派生子类,在子类中具体定义方法的功能。7/25/20218目的是为一类对象建立抽象的模型,在同类对象所对应的体系中抽象类往往位距顶层。使类的设计变的清晰、支持多态、为类的体系提供通用的接口。7/25/20219Employeee=
5、newManager();//正确Employeee=newEmployee();//错误abstractclassEmployee{abstractvoidraiseSallory(inti);}ClassManagerextendsEmployee{voidraiseSallory(inti){……};}7/25/2021105.4接口接口定义格式:[修饰符]interface接口名[extends父接]{接口体;}修饰符为public时,指明任何类均可以使用这个接口。修饰符缺省时,只有与该接口定义在同一个包中的类才可以
6、访问该接口7/25/202111接口的实现与使用implements关键字用来表示实现某个接口,在类体中可以使用接口中定义的常量,且须实现接口中定义的所有方法。一个类可以实现多个接口,在implements中用“,”分隔。例如:PublicinterfaceFlyer{publicvoidtakeoff();publicvoidland();publicvoidfly();}7/25/202112PublicclassAirplaneimplementsFlyer{publicvoidtakeoff(){//实现起飞的操作}
7、publicvoidland(){//下落}publicvoidfly(){//起飞}}例题5-5:通过接口实现多态示例.7/25/202113多重继承Java中规定一个类只能继承一个父类,但可以实现多个接口,Java是利用接口实现多重继承的。父类方法interface_1interface2……interface_n抽象或具体父类Interface_1Interface_2Interface_n子类7/25/202114通过继承扩展接口通过创建接口的子接口来增加新的方法。如:InterfaceShape{voiddraw(
8、);voiderase();}interfaceShapeAreaextendsShape{doublearea();}7/25/202115接口与抽象类两者有一定的相似,又有区别接口中方法都是抽象的,而抽象类中可以定义带有方法体的不同方法一个类可以实现多个接口,而只可继承一个抽象父类接口
此文档下载收益归作者所有