JavaOO-08.面向对象高级特性.ppt

JavaOO-08.面向对象高级特性.ppt

ID:52267468

大小:1.03 MB

页数:61页

时间:2020-04-03

JavaOO-08.面向对象高级特性.ppt_第1页
JavaOO-08.面向对象高级特性.ppt_第2页
JavaOO-08.面向对象高级特性.ppt_第3页
JavaOO-08.面向对象高级特性.ppt_第4页
JavaOO-08.面向对象高级特性.ppt_第5页
资源描述:

《JavaOO-08.面向对象高级特性.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章面向对象高级特性本章要点static的含义继承的规则子类实例化的过程方法的覆盖final关键字抽象类的特性接口的规范数据类型的转换包和访问权限修饰符包装类和内部类静态修饰符staticstatic可以修饰的元素属性–共享;分配在静态存储区,而不是分配在堆内存中。静态属性描述了该类的所有对象的共同特征,而非静态属性描述的是每个对象独有的特征,静态属性可以不用实例化,可以直接访问。因为访问的都是同一块内存,所以变量的值是一样的。静态属性在该类第一次被加载到JVM时,分配了静态存储区,以后每次运行不再分配空间,仍然使

2、用以前的空间。直到JVM停止之前,静态存储区的变量一直存在,不会失效。方法–访问的方式块–执行的时机只能修饰类成员,不能修饰局部变量。需要注意的问题:静态方法可以直接访问静态变量,如要访问非静态变量必须先实例化。静态方法中不能this。静态方法不能被非静态方法覆盖。静态属性所有对象共享也称为类变量两种方式访问:类名.属性;对象名.属性;0x80000x3000……200Circlep0x3000radius100radiusCircleq0x80003.14pi静态存储区静态方法不需要实例化,可以直接访问;也称为类方

3、法因为该方法对于类的所有对象来说已经是共享的了。两种方式访问:直接访问:类名.方法名();实例化后访问:对象名.方法名();作用:简化方法的使用;比如Math类中的所有方法都是静态的。便于访问静态属性;常提供静态方法访问静态属性。限制:静态方法只能直接访问静态成员(静态属性、静态方法)。因为静态方法在实例化之前就可以被类调用,而此时非静态成员还不存在。静态方法中不能用this;静态方法不能被非静态方法覆盖;特殊的静态方法main在类中有一个我们经常使用的静态方法main(),它是程序执行的入口。一般来说,在一个项目中

4、应该有一个类提供了main函数,整个项目从这个main方法开始运行。该方法的格式是固定的,除了括号中的形参名称可以改变,别的都不能改变必须public权限修饰符:保证在任何位置都可以访问它。必须static静态修饰符:无需实例化,可以直接调用。必须返回空值void:main方法仅是程序的启动没必要返回任何值。main函数名不可改变:固定的,注意大小写。String[]args命令行参数:从程序外部传入的参数。那么,请思考:主函数会被谁调用呢?主函数main()一般运行一段程序都是通过Java解释器的。D:javac

5、Circle01.java进行编译生成字节码;D:javaCircle01进行运行;而不是D:javaCirlce01.classJava解释器是通过类名找到字节码文件的,再找到该字节码文件中的main函数的,然后执行整个程序。Java要求类名必须和文件名相同也就是这个道理,否则java解释器就找不到字节码文件了。Java解释器在调用main方法时,直接通过类名调用这个静态方法,没有必要先实例化类再通过对象来调用。这样不仅减少程序执行的步骤,还保证程序运行的效率。可以明白,main函数的static修饰符是非常重

6、要的。变量初始化的顺序隐式赋予变量默认值;显式赋予初始值;构造方法体赋予新值;注意:可能有的程序第2、3赋值步骤不存在,但是必定有第1个步骤。见示例PersonVariableOrder.java每实例化一个对象,属性在堆内存中的值,就是如上这3个步骤的结果。所以对于非静态属性,每次实例化时都要按以上步骤赋值。静态的属性就不同,因为它是类属性,不属于任何对象,也可以说它被所有对象共享。它在第一次装载到JVM时被赋值,对象实例化时不需要给静态属性赋值。总之,静态属性的赋值要优先于非静态属性的赋值。而且,静态属性的赋值只

7、有一次,非静态属性的赋值要发生多次。程序块静态程序块非静态程序块类的继承Inheritance格式:Java中只能单继承,也就是说每个类只能有一个父类。修饰符class子类名extends父类名生物植物动物人类猫类继承续子类实际上继承了父类的所有特征,同时子类在父类的基础上还增加了自己的特征。所以,子类和父类相比具有更丰富的功能。其实,在继承关系中我们还能发现一个规律:子类是父类的一种,也可以说“子类就是父类”。如:人类就是动物,动物就是生物。记住这个定律对我们理解继承的概念非常有帮助。但是,反过来看,父类是子类的说

8、法正确吗?见示例Person.java、Student.java类的继承(续)父类的别名:基类BaseClass超类SuperClass子类的别名:衍生类ChildClassDerivedClass类继承的规则子类继承父类的所有属性和所有方法;但是构造器不继承;VehicletypetopSpeedstart()stop()MotorVehic

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。