- 1、本文档共67页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]CH5 Java语言中面向对象的实现
CH5: Java语言中面向对象的实现 注意 abstract与final不能同时修饰同一个类 可以与其他修饰符使用,顺序无影响。 域 域是类和对象的静态属性,它可以是基本数据类型的变量,也可以是其他类的对象 静态域 最终域 易失域 静态初始化器 静态域 用static修饰符修饰的域是仅属于类的静态域 静态域最本质的特点是:它们是类的域,不属于任何一个类的具体对象。它不保存在某个对象的内存区间中,而是保护在类的内存区域的公共存储单元。 静态初始化器 用关键字static引导的一对大括号扩起的语句组,作用与构造函数相似,不同在于: 构造函数对每个新建的对象进行初始化,而静态初始化器对类自身进行初始化; 构造函数是在用new运算符产生新对象时自动执行,而静态初始化器则是它所属的类加载入内存时由系统调用执行; 静态初始化器不是方法,没有方法名、返回值和参数列表。 最终域 一个类的域如果被声明为final,那么他的取值在程序的执行过程中都不会改变。 只能针对常量的数据类型 需要同时指出常量的具体值 一般将其设置为static 易失域 被volatile修饰符修饰,表明这个域可以同时被几个线程所有控制和修改 方法 方法是类的动态特性,标志了类所具有的功能和操作,用来把类和对象的数据封装在一起。 修饰符1 修饰符2 …返回值类型 方法名(行参)throw [异常列表] { … } 访问控制符 非访问控制符 非访问控制符 抽象方法 静态方法 最终方法 本地方法 同步方法 抽象方法 修饰符abstract修饰的抽象方法是一种仅有方法头,没有具体的方法体和操作实现的方法。 abstract void perform(); 所有的子类对外都呈现一个相同的方法,是一个统一的接口; 所有的抽象方法都必须存在于抽象类之中。 静态方法 修饰符static修饰的方法是一种属于类的类方法,而不用此修饰符限定的方法都是具体类对象或实例的方法,有三个意义: 使用类名做前缀,而不是具体的对象名; 不被任何一个对象专有; 只能处理static域 最终方法 修饰符final修饰的方法是一种功能和内部语句都不能被更改的最终方法,即不能被当前类的子类重新定义方法。 private定义的方法以及类的方法都是final; 本地方法 native修饰符用来声明用其他语言书写方法体并具体实现方法功能的特殊的方法。由于native的方法的方法体使用其他语言在程序外部写成,所以所有的native方法都没有方法体,而只有一个分号代替 充分利用已经存在的程序功能模块和避免重复工作 获得更高的性能 牺牲了跨平台性能 同步方法 如果synchronized修饰符修饰的方法是一个类的方法(static),那么被调用执行前,将把系统类Class中对应当前类的对象加锁 如果synchronized修饰符修饰的方法是一个对象的方法,那么被调用执行前,将把当前类对象加锁 synchronized修饰符作用是用于多线程共存的协调和同步中。 继承 继承实际上是存在于面向对象程序中的两个类之间的一种关系。 父类是所有子类的公共域和公共方法的集合,而每个子类是父亲的特殊化,是对公共域和方法在功能、内涵方面的扩展和延伸。 主要优点:程序结构清晰、降低编码和维护的工作量。 单重继承 多重继承 Java中的继承 派生子类 域的继承与隐藏 方法的继承与覆盖 this和super 派生子类 Java中的继承是通过extends关键字来实现的 新定义的类称为子类,可以从父类那里继承所有非private的属性和方法作为自己的成员。 域的继承 子类可以继承父类所有的非私有域 父类的所有非私域实际上是各个子类拥有的域的集合。 域的隐藏 子类重新定义一个与从父类那里继承来的域变量完全相同的变量,称为域的隐藏。 隐藏是指子类拥有两个相同的名字的变量,一是继承自父类,二是自己定义,当子类执行继承自父类的操作时,处理的是继承自父类的变量,而当子类执行它自己定义的方法时,执行的是自己的变量。 方法的继承 子类可以继承父类所有的非私方法 方法的覆盖 子类可以重新定义和父类同名的方法,实现对父类方法的覆盖 子类隐藏父类的域使之不可见,父类的同名域仍然占有自己的内存空间 子类方法对父类同名的方法的覆盖将清除父类方法中占用的内存,从而使父类方法中该方法不存在。 this和super this和super是指代父类对象和子类对象的关键字 this表示的是当前对象本身 super表示的是当前对象的直接父类对象 this可以顺利的访问到对象(访问、修改域,调用方法; this可以作为参数传递给其他对象或方法。 super可以顺利的访问到对象(访问、修改域,调用方法; super可以作为参数传递给其他对象或方
文档评论(0)