- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java的特殊类
第七章Java的特殊类 知识回顾 继承 super关键字 继承的多态性 方法的覆盖 内容摘要 成员函数 this及super关键字的使用 final类、方法和变量 抽象类和方法 内部类 final成员变量、方法和类 final在Java中并不常用,它为我们提供了如在C语言中定义常量的功能, final还可以让我们控制我们的成员、方法或者是一个类是否可被覆写或继承等功能, final成员变量 当我们在类中定义变量时,在其前面加上final关键字,那么这个变量一旦被初始化便不可改变。 其初始化可以在两个地方: 在其定义处,也就是说在final变量定义时直接给其赋值 在构造函数中。 final方法 将方法声明为final,说明这个方法提供的功能已经满足我们要求,不需要进行扩展, final方法也不允许任何从此类继承的类来覆写这个方法,但是继承类仍然可以继承这个方法,也就是说可以直接使用。 final类 一个final类是无法被任何人继承的,即:此类的设计已被认为很完美而不需要进行修改或扩展。 对于final类中的成员,我们可以定义其为final,也可以不是final。 抽象类和方法-1 包含了抽象方法的类叫作“抽象类”。 定义抽象类的目的是提供可由其子类共享的一般形式。 子类可以根据自身需要扩展抽象类。 抽象类不能实例化。 抽象类和方法-2 抽象方法没有函数体。 抽象方法必须在子类中给出具体实现。 在以下情况下,某个类将成为抽象类: 当一个类的一个或多个方法为抽象方法时。 当该类为一个抽象类的子类,并且没有为所有抽象方法提供实现细节或方法主体时。 当一个类实现一个接口,并且没有为所有抽象方法提供实现细节或方法主体时。 抽象类举例 abstract class Employee { int basic = 1500; //基本工资 abstract int getSalary();//抽象方法 } class Manager extends Employee{ int getSalary() { return basic*5; } } class Worker extends Employee { int getSalary() { return basic*2; } } 内部类 自Java 1.1以后,可将一个类定义置入另一个类定义中,这就叫作“内部类”。 非静态内部类 静态内部类 局部内部类 匿名内部类 非静态内部类 在类中定义的类称为内部类。 内部类之外的类称为外部类。 内部类可以访问其外部类的所有变量和方法,并能够以和外部类的其他非静态成员相同的方式直接引用它们。 内部类完全在其包围类的范围之内。 静态内部类 由于在创建非静态内部类对象时,一定要先创建起相应的外部类对象(非静态内部类对象有着指向其外部类对象的引用 ) 。 另外,在任何非静态内部类中,都不能有静态数据、静态方法或者又一个静态内部类。 而静态内部类中却可以拥有这一切 。 局部内部类 可以将内部类定义在一个方法或者一个代码块内。 public class Demo { public int max(int x,int y){ class Arithmetic{ public int max(int x,int y){ return xy ? x : y; } } return new Arithmetic().max(x,y); } } 类Demo中返回最大值的方法Max(),委托给专门的算术内部类Arthimetic的方法Max()来完成。 public static void main(String[] args){ System.out.println(new Demo().max(7,6)); } 匿名内部类 java的匿名内部类的语法规则看上去有些古怪,当我们只需要创建一个类的对象而且用不上它的名字时,使用内部类可以使代码看上去简洁清楚。它的语法规则是这样的: - new interfacename(){......}; - 或 new superclassname(){......}; interface Iarithmetic{ int max(int x,int y); } public class Demo { public Iarithmetic arith(){ return new Iarithmetic(){ public int max(int x, int y){ return xy ? x : y; } }; } } publ
文档评论(0)