Java三大特性总结_第1页
Java三大特性总结_第2页
Java三大特性总结_第3页
Java三大特性总结_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java三大特性 封装封装 抽象 处理各种问题的第一步 把具体的问题与解决问题的方法结合起来 这就是抽象的过程 Java常见的访问控制修饰符 Public 到处都可以访问 不受包和父子类关系的限制 默认 只在同包内可以访问 不受父子类关系限制 Protected 不同包的子类和同包的类中访问 这是一种继承访问 Private 只有自己类内部能访问 其他部分无论包内外 父子类都不能访 问 Final 修饰属性 常量 值不能被修改 要么在声明时候赋值 要么在构造方法中赋值 两次机会只能选取一次 修饰方法 final方法子类不能将其重写 修饰类 该类不能有子类 Static 修饰属性 静态属性是类所有实例共有 可以用 类名 属性 的方式访 问 对于数值型变量 系统会给定初始值 不强制要求赋初始值 方法 可以用 类名 属性 的方式访问 方法也为类的所有实例所共有 代码块 加载的优先级最高 甚至比主方法的加载还要早 对于由final static共同修饰的变量 赋值的机会有两个 一是在声明的时候 二是在静态代 码块中 两次机会有且只能有一次被选择 继承继承 允许存在父子类的关系 一个子类有且只有一个直接的父类 Java中的继 承是类之间的单继承 当在内存形成类的信息绑定的时候不会出现多个交叉点 结构的清晰程度较高 Java本身的运行效率较低 只能达到C语言的五分之一 Java语言舍弃效率的完美 要求 换来学习和使用的简单 属性的遮盖 Father f new Son 属性访问到的是父类的 方法访问到的是子类的 方法的重载 在类的内部一种方法出现多种表达方式 如参数表的不同 构造方法的重载 方法的重写 发生在父子类之间 子类方法对父类的方法有新的实现方法 但两 个方法定义部分完全一致 继承的目的 实现代码的复用 理顺类型对象之间的结构关系 构建一个父类的时候 要求他的子类与父类必须有理论上的确实的继承关系 代码复用的方法 继承复用 完全的将父类非私有部分作为子类的内容 若需变化 子类只 要重写父类的同名方法即可 组合复用 选取某个类型中的一个对象的方法实现作为该类的方法实现过程 这两个类也称为理论父类和理论子类 程序中是不出现extends关键字对两个类关系的描述的 通过具体实例抽象出父类的过程称为泛化 通过父类来确认子类的过程称为特化 在代码的类之间关系的设计阶段 理论上要求父子类之间没有相同的同名 方法 但语法允许子类重写父类的方法 要求子类当中只有自己特有的方法和属性 其他部分与父类和其他同级子类相同的部分都从父类继承得来 有关抽象类 抽象类是用于描述自然界中层级较高的对象类 人们无法对一个抽象类实 例化 如动物 只能用一个动物类的子类对抽象类的对象进行实例化 抽象修饰符abstract 可以修饰类 修饰方法 抽象类中可以定义非抽象的方法 但如果一个类中有抽象方法 则这个类 必须被定义成抽象类 抽象类中有构造方法 但是没有抽象的构造方法 构造 方法的存在完全是为了继承关系而存在 与之形成对比的就是接口 接口中的所有方法要求定义成公开抽象方法 因为这些方法所表示的就是标准 标准的信息必须做到公开化 透明化 例如 体育竞赛中的规则 抽象类与接口之间的对比 接口与抽象类本质上是两个概念 但可以将接 口看作是一个抽象层级比抽象类更高的特殊类 由于接口的信息中只有已知不 可变值以及抽象方法 所以信息的绑定方式单一 从实现上可以满足继承但也 不会出现网状的信息绑定效果 不会增加访问时的节点数 因此接口允许多继 承 对于类的内容 不允许多继承 一个子类只能有一个直接的父类 信息绑 定的复杂性加上Java本身运行原理的限制 使它不能像C语言一样高效的运行 若绑定的信息复杂度较高 数据的访问过程更加复杂 影响运行效率 抽象类就是类 接口就是接口 都处于较抽象的层级而使它 们具有相近的特性 接口可以看成是一个特殊的抽象类 多态多态 一个接口多种实现一个接口多种实现 可以理解为一种语法上的允许 表现形可以理解为一种语法上的允许 表现形 式多样 以下的代码表达都可以认为是式多样 以下的代码表达都可以认为是Java多态性的具体表多态性的具体表 现现 IA ia new TestIA 其中IA为定义的接口 TestIA为接口的实现类 Father f new Son 其中Father为父类 Son为子类 Animal a new Dog 其中Animal为抽象类 Dog为Animal类的子类 父子类中的方法重写 一个类中的方法重载 Java中的多态基本上是由接口实现的 抽象类与子类之间的多态只占一少 部分 接口是在Java中抽象层级最高的一类 其内部的定义是纯抽象的 属性的 定义是公开静态常量 纯抽象的方法和常量属性构成一个标准 其所有的实现类 包括抽象类都要遵守接口中定义的规则 Java类中的通信方式最好是以接口的形式进行值或对象的传递 如灯泡与 台灯的关系 无论将何种类型的对象作为参数 只要是接口对象的一个实现类 就可以成为一个合理的参数 将两个模块的内容以接口的方式进行通信 可以使两个模块的开发方式相 对独立 不依赖于任何一个模块的已实现的信息 形成在代码设计中要求的松 藕合状态 对于多态不必要下明确的定义 只需要理解它的表现形式以及意义 代码 中完全实现松藕合的接口方式通信的可能性基本为零 但要求尽量实现 接口的存在表面上是实现一种多态语法 实际上是实现了Java中的多继承 方式 一个类可以同时继承一个类 并实现另一个或多个接口 以同时获得多 个类型的信息 包括属性和方法 其他的边缘知识点其他的边缘知识点 有关Java的垃圾回收机制 虚拟机给程序员提供一个统一的编程接口 API 程序员只需按API中的 规定进行编程 与C和C 最大的不同是 Java中不需要考虑内存的回收 虚拟 机会以延时的方式对垃圾进行回收 以达到对内存空间的最大利用 Java中有多种垃圾回收的方法 但每一中方法都只是对要回收的内容进行 提醒式的说明 并非操作虚拟机进行回收 如System gc 方法 是系统提供的回 收垃圾的常见方式 但当对象的取值为null的时候 gc 方法并不是立即将内 存空间释放 只是null的取值提醒虚拟机 该对象的内容可以被回收 程序员无法控制Java虚拟机的垃圾回收时间点 只能尽到提示的责任 但 多数情况下 虚拟机的垃圾回收区的自动运行能够满足系统运行的需要 在程序运行的过程中 可以会报出与虚拟机堆栈溢出的相关信息 此类错 误都是与虚拟机运行过程中的数据结构有关 是人力不能保证不发生的错误 多 数情况下 程序中抛出虚拟机异常后 只需重新启动虚拟机或重新编译相对应 的Java代码即可 只有少数情况需要重启PC以及其它相关部件 命令行参数命令行参数 public class Test public s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论