Java面向对象高级特性课件

上传人:txadgkn****dgknqu... 文档编号:252924388 上传时间:2024-11-24 格式:PPT 页数:41 大小:936.48KB
返回 下载 相关 举报
Java面向对象高级特性课件_第1页
第1页 / 共41页
Java面向对象高级特性课件_第2页
第2页 / 共41页
Java面向对象高级特性课件_第3页
第3页 / 共41页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,精选课件,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,精选课件,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,精选课件,*,第四章,Java,面向对象高级特性,1,精选课件,2024/11/24,第四章Java面向对象高级特性1精选课件2023/9/28,本章要点,Static,、,final,关键字,抽象类,接口,包,内部类,访问控制,其它,2,精选课件,2024/11/24,本章要点Static、final关键字2精选课件2023/,4.1 static,关键字,用,static(,静态的,),修饰的变量或方法又称为,类变量,和,类方法,。,类变量(静态变量),在成员变量声明时使用,static,关键字。,注意点:,类变量只在,系统加载其所在类时分配空间并,初始化,,实例化对象时不再分配空间,所有,实例对象将共享类的静态变量。,用途 可以用来在实例对象之间进行通信,3,精选课件,2024/11/24,4.1 static关键字 用static(静态的)修饰的,复习 变量:描述对象的属性,成员变量,:类的变量定义部分所定义的变量,:,实例成员变量,类成员变量,:,前面加,static,4,精选课件,复习 变量:描述对象的属性:实例成员变量4精选课件,5,精选课件,5精选课件,类似于其他语言中的全局变量,可以用类,名直接调用。,如:,Count.counter,例,1,double d=Math.,PI;,类名,Static,变量,6,精选课件,2024/11/24,类似于其他语言中的全局变量,可以用类 类名St,注意点,(,见,Hello.static.java),静态方法只能访问方法体内定义的局部变量、自己的参数和静态变量。(,因静态方法不是通过调用对象实例,故在静态方法中没有,this,指针,),子类不重写(覆盖)父类的静态方法,而是隐藏,不能将非静态方法重写为静态的方法,反之亦然。,main(),是一个静态方法,是程序的入口点,可以使,JVM,不创建实例对象就可以运行方法。,7,精选课件,2024/11/24,注意点(见Hello.static.java)7精选课件20,静态初始化程序,类中不属于任何方法体中,并以,static,关键字修饰的语句块。,如:,static,I=5;,System.out.println(,“,Static,code:I=,”,+I+);,注意,静态语句块只在加载类时执行一次,通常用来,进行类成员变量的初始化。,8,精选课件,2024/11/24,静态初始化程序8精选课件2023/9/28,4.2 final,关键字,在,Java,中,可以用,final,关键字声明类、成员,方法、成员变量。,被定义成,final,的类,不能再派生子类如:,Java.lang.String,为一个,final,类。,被定义为,final,的方法,不能重写,优点是在运行时进行效率优化。,(,举例,),被定义为,final,的变量,只能被赋值一次,常,用来定义常量,变量名一般大写。,9,精选课件,2024/11/24,4.2 final关键字在Java中,可以用final关键字,4.3,abstract,关键字,abstract,方法 只有定义而没有方法体的方法。,abstract,类 包含一个或多个抽象方法的类。,定义抽象类的格式为:,abstract class,抽象类名,注意点,抽象类不能实例化。可派生子类,在子类中,具体定义方法的功能,。,抽象类可以没有抽象方法,这样是为了禁止创建实例,10,精选课件,2024/11/24,4.3 abstract关键字abstract方法 只有定义,目的是为一类对象建立抽象的模型,在同类对象所对应的体系中抽象类往往位距顶层。,使类的设计变的清晰、支持多态、为类的体,系提供通用的接口。,11,精选课件,2024/11/24,目的是为一类对象建立抽象的模型,在同类对象所对应的体系中,Employee e=new Manager();/,正确,Employee e=new Employee();/,错误,abstract class Employee,abstract void raiseSallory(int i);/,没有,直接以分号结尾,Class Manager extends Employee,/,若子类没有实现抽象方法,,,void raiseSallory(int i),;,/,那么子类也必须是抽象的,12,精选课件,2024/11/24,Employee e=new Manager();,接口用关键字interface来定义的,Java,中的接口是一系列方法的声明,是一些方法特征的集合,,一个接口只有方法的特征没有方法的实现,,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能),接口是客户端代码与提供服务的类之间的“规约”。,接口是抽象类的变体。,接口中的所有方法都是抽象的,没有一个有程序体。,4.4,接口,13,精选课件,接口用关键字interface来定义的4.4 接口13精选课,接口定义格式,:,publicabstracti,nterface,接口名,extends,父接口,1,,父接口,2,public static final,常量定义;,public abstract,方法定义;,接口的成员变量默认具有,final,属性,即常量。,接口的方法为,abstract,,仅有声明,没有实现。,14,精选课件,2024/11/24,接口定义格式:14精选课件2023/9/28,接口的实现与使用,implements,关键字用来表示某类实现某个接口,,在类体中可以使用接口中定义的常量,且,须,实现接口中定义的所有方法,。,一个类可以实现多个接口,在,implements,中,用,“,”,分隔。例如:,Public interface Flyer,public void takeoff();,public void land();,public void fly();,15,精选课件,2024/11/24,接口的实现与使用 Public interface Flye,Public class Airplane implements Flyer,public void takeoff(),/,实现起飞的操作,public void land(),/,下落,public void fly(),/,起飞,16,精选课件,2024/11/24,Public class Airplane implemen,接口的多态,接口的引用比类更灵活。,一个接口的引用,可以指向任意不相关的、实现了这个接口的类对象。,对比:,继承中,父类的引用只能指向它的子类对象。,example,:,Hello.interface.java,注意:接口的引用,只能调用该类实现这个接口的方法,而不能调用这个类对象自身的成员方法。,17,精选课件,2024/11/24,接口的多态17精选课件2023/9/28,什么时候使用接口,(,1,)多重继承,(,2,),声明方法,期望一个或更多的类来实现该方法。,(,3,),揭示一个对象的编程接口,而不揭示类的实际程序体。,(,4,),捕获无关类之间的相似性,而不强迫类关系。,(,5,),描述“似函数”对象,它可以作为参数被传递到在其它对象上调用的方法中。,18,精选课件,18精选课件,多重继承,Java,中规定一个类只能继承一个父类,但可以实现多个接口,,Java,是利用接口实现多重继承的。,父类方法,interface_1 interface2,interface_n,抽象或具体父类,Interface_1,Interface_2,Interface_n,子类,19,精选课件,2024/11/24,多重继承Java中规定一个类只能继承一个父类,但可以实现多个,接口的扩展,(通过继承),通过创建接口的子接口来增加新的方法。,如:,Interface Shape,void draw();,void erase();,interface ShapeArea extends Shape,double area();,20,精选课件,2024/11/24,接口的扩展(通过继承)通过创建接口的子接口来增加新的方法。I,接口与抽象类,两者有一定的相似,又有区别,接口中方法都是抽象的,而抽象类中可以定义带有方法体的不同方法,一个类可以实现多个接口,而只可继承一个抽象父类,接口不是类体系的一部分,即与实现它的类不构成继承体系。抽象类通常位于类体系顶层。,接口可用于多重继承。,21,精选课件,2024/11/24,接口与抽象类 两者有一定的相似,又有区别21精选课件2023,4.5,包,包的概念,Java,中包是相关类与接口的一个集合,它提供了,命名空间的管理和访问,。包具有特定的访问控制权限。,Java,中编译器把包对应于文件系统的目录和文件管理,,还可以使用压缩文件的格式存储(,zip,或,jar,)。,一个包就是一个文件夹!,包还可以包含子包,/,子目录。,22,精选课件,2024/11/24,4.5 包包的概念22精选课件2023/9/28,JDK,中提供的包有,Java.applet Java.awt,,,Java.event,等。,例如:名为,Java.applet,的包中,所有类文件都存储在目录,classpathjavaapplet,下,这里,classpath,由环境变量来设定。,23,精选课件,2024/11/24,JDK中提供的包有 Java.applet Java.a,包机制的优点,易根据包中类的功能找到所需要的类,包中的类是相关的。,每个包都是命名空间,不同包中类的名字不冲突。,同一个包中的类之间有比较宽松的访问机制。,包的定义与使用,定义用关键字,package,如:,package graphics,;,说明:,.,package,语句指定某类加入,graphics,包,并存放路径,为,classpathgraphics,24,精选课件,2024/11/24,包机制的优点易根据包中类的功能找到所需要的类,包中的类是相关,.,如原文件中没有,package,语句,则指定为无名包,通常放在源文件的目录下。,.package,只能有一条,并在源程序的第一行。,.,一个类只能属于一个包,.,包名以,“,.,”,为分隔符,25,精选课件,2024/11/24,.如原文件中没有package语句,则指定为无名包,通常放,使用包成员,import,语句放在源程序的前面,如:,import graphics.circle/,引入包中的,Circle,类,import graphics.*/,引入包中所有的类,如果没有用,import,语句引入包的类,则可用长名,引用,格式:,包名,.,类名,如:,graphics.circle mycircle=new graphics.circle(),通常没有必要这样做。,一般只有在两个包有同名类时,使用长名引用方式。,26,精选课件,2024/11/24,使用包成员import 语句放在源程序的前面26精选课件20,4.6,访问权限控制,Java,中有四中不同的访问权限,private-,私有的,protected-,受保护的,public-,公开的 缺省(,default,),(,1,)类成员的访问控制,权限,修饰符,同一类,同一包,子类,全局,private,Y,default,Y,Y,protected,Y,Y,Y,public,Y,Y,Y,Y,27,精选课件,2024/11/24,4.6 访问权限控制Java中有四中不同的访问权限,(,2,)类的访问控制,权限,修饰符,同一包,全局,public,Y
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!