JAVA编程要点和编程规范.ppt_第1页
JAVA编程要点和编程规范.ppt_第2页
JAVA编程要点和编程规范.ppt_第3页
JAVA编程要点和编程规范.ppt_第4页
JAVA编程要点和编程规范.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1 JAVA编程要点和编程规范 杭州新世纪 2011年7月 朱宝君 2 内容 JAVA编程要点 1 2 3 JAVA编程规范 Q/A 3 Java2 的版本划分 Java 2Java 2 J2MEJ2ME J2SEJ2SE J2EEJ2EE 4 Java语言的主要特性 平台无关性 简单性 面向对象 分布式、动态性、 可靠性、安全性 多线程 5 面向对象三大特性 封装 继承 多态 6 封装(Encapsulation) 封装: 将方法和数据组织在一起,隐藏其具体实现而对外体现出公共 的接口 数据封装,提供公共接口访问 方法封装,不用影响调用者 变量 方法 7 继承(Inheritance) 广义地说,继承是指能够直接获得已有的性质和特性,而不必重复定义 它们。在面向对象的软件技术中,继承是子类自动地共享父类中定义的 数据和方法的机制。 共性部分 继承部分 个性部分 父类 子类 8 继承的作用 使软件系统具有开放性 更好地进行抽象与分类 实现代码的复用 提高可维护性 9 Java接口实现多重继承 单一继承指明了子类和父类的层次关系和各自 的行为。 多重继承是指一个类有多个父类,这使得类的 层次关系不清楚。 接口则把方法的定义同类的层次区分开来,通 过接口可以在运行中动态地定位所调用的方 法,同时一个类可以实现多个接口,使得接口 提供了比多重继承更简单、更灵活的功能。 10 多态 编译多态 重载 运行多态 Java实现运行时多态性的基础是动态方法调度,它是一种 在运行时而不是在编译期调用重载方法的机制 。 11 例子 类Parent public class Parent public Parent () System.out.print(“ 1 “); public void print() printOne(); System.out.print(“2“); public void printOne() System.out.print(“3“); 类:Clild public class Clild extends Parent public Clild () System.out.print(“ 4“); public void printOne() System.out.print(“ 5“); public static void main(String arg) Clild c=new Clild(); c.print(); 12 面向接口编程 要依赖于抽象,不要依赖于实现 方便代码复用,无需关注细节 便于团队协同开发,无编译依赖 考虑你的设计中什么可能发生变化,找到一个系统的可变 因素 13 数据类型 数据类型的分类如下所示: 数据类型 基本数 据类型 复合数 据类型 数值型 字符型:char 布尔型:boolean 整型:byte,short,int,long 实型:float,double 类:class 数组和字符串 接口:interface 14 字符串和字符串缓冲区 Java平台提供两个类String和StringBuffer,它们用于存 储和操作字符串由多个字符组成的字符数据。 String类用于其值不能改变的字符串; StringBuffer类用于被修改的字符串,通常用来动态的构 造字符数据。 字符串是常量,比字符串缓冲区更高效,而且字符串可以 被共享。 15 数据类型 每个变量都必须有一个数据类型. 一个变量的数据类型决 定了它能容纳的值和在它上面可以进行什么操作。 Java编程语言有两大类数据类型: 原始类型(primitive) 引用类(reference) 16 实例化 new new 只能实现具体类的实例化,不适合于接口编程 强类型 newInstance Class c = Class.forName(“A”); factory = (AInterface)c.newInstance(); 伸缩性、可扩展性、复用性 弱类型 17 对象、类与实体的关系 对象 类 计算机逻辑的实现 映射 计算机世界 实例化 抽象 实体 抽象数据类 现实世界 概念世界 抽象 18 接口(Interface) 接口和类一样也是一种类型,也同样包含一些方法的定义。但与类不 同的是:接口中所定义的所有方法都是抽象方法(即没有实现的方法 )。 接口中所定义的方法由实现(implement)该接口的类来实现,一个 类可以同时实现多个接口 接口机制使Java的面向对象编程变得更加灵活。解决了单重继承带来 的问题 接口定义了对象的行为模型,相当于一个协议。实现接口的各个类负 责实现接口所定义的行为。虽然实现细节各不相同,但对用户来说是 一样的行为。 19 接口功能不能简单扩大 例如:要加个报股价的方法在接口里,此时所有实现它的 类不能正常工作。 public interface StockWatcher final String sunTicker = “SUNW“; final String oracleTicker = “ORCL“; final String ciscoTicker = “CSCO“; void valueChanged(String tickerSymbol, double newValue); void currentValue(String tickerSymbol, double newValue); 20 用继承来扩大接口 如果需要增加接口的功能,可以利用继承来实现: public interface StockTracker extends StockWatcher void currentValue(String tickerSymbol, double newValue); 21 抽象类与接口 接口不可以实现任何方法,而抽象类可以; 类可以实现多个接口,但父类仅只有一个; 接口和继承无关,不是类层次结构的一部分。无关的类可 以实现相同接口。 接口是设计的结果 抽象类是重构的结果 应用场景 优先定义接口 如果有多个接口实现有公用的部分,则使用抽象类,然后继 承它。 22 反射机制 Reflection 是 Java 程序开发语言的特征之一 运行时加载、探知、使用编译期间完全未知的 classes。 Java程序可以加载一个运行时才得知名称 的class,获悉 其完整构造,并生成其 对象实体、或对其fields设值、或 唤起其methods1 23 反射例子 public Object getBean(String className) Object result=“; try /获取类映射 Class cls= Class.forName(className); /实例化 Object bo = cls.newInstance(); /获取方法映射 Method method = cls.getMethod(“getDataMap“, new Class ); /根据方法映射和实例类调用方法 result =method.invoke(bo, null); 24 什么是异常? 异常(Exception)又称为例外,是指在程序运行过程中 发生的非正常事件,这些事件的发生会影响程序的正常执 行。如: 进行数学中“无意义”的运算,例如除数为零、对负数求对 数平方根等 对数组进行操作时,超出了数组的最大下标 程序所需进行的I/O操作不能正常执行,如所需访问的文件 不存在 内存耗尽无法进行类的实例化 JVM崩溃 25 为什么要异常处理? 对于任何语言的程序设计而言,错误的发生总是不可避免 的 为了加强程序的健壮性,程序设计时,必须充分考虑错误 发生的可能性,并建立相应的处理机制。 26 异常 可以使用 try、catch、throw、throws 和 finally 来管理 Java 异常处理。要监控的程序语句包含在 try 块内catch 块中的代码 用于捕获和处理异常。在方法返回之前绝对必须执行的代码应放 置在 finally 块中 要手动引发异常,使用关键字 throw。任何被抛到方法外部的异 常都必须用 throws 子句指定 多重catch 和嵌套try-catch的使用 自定义异常的编写和使用 27 异常对象 在Java语言中,我们用异常对象来表示不同的异常。 所谓Java异常对象就是一个存放着相关错误信息的对象, 如果方法运行时产生了异常,该方法就可以抛出一个异常 对象 为了表示不同种类的异常,Java语言中定义了许多异常类 。 28 方法调用堆栈中异常对象的传递 当某一方法中的一个语句抛出一个异常时,如果该方法中没有处理该异常的 语句,那么该方法就会中止执行,并将这个异常传递给堆栈中的下一层方法 ,直到某一方法中含有处理该异常的语句为止。如果该异常被传递至主方法 ,而主方法中仍然没有处理该异常的语句,则异常将会被抛至JVM,程序中 断。 main() methodA() methodB() methodC() 调 用 传 递 29 手动引发异常 指定由方法引发的异常 try finallycatch throws throw 处理异常 要监控的程序语句包含在此块中 以合理的方式 捕获和处理异常 释放资源等 30 Java中的异常类 在Java语言中,任何的异常对象都是Throwable类的直接子类或间接 子类的实例。Java的类库已经提供了一些常见的异常类,如果这些异 常类不能够满足要求,用户也可以创建自己的异常类。 31 SERVLET request中封装的是请求信息 response中封装的是响应信息 session 32 对象的串行化 所谓对象串行化是指读写对象的过程,其关键之处在于以串行的流的 形式来表示结构化的对象。为了实现完整对象的输入输出,java.io 包中提供了两个类:ObjectOutputStream和ObjectInputStream。这 两个流类与其他的字节流类的功能类似,其特殊之处在于通过它们可 以读写对象。对象的串行化通常在下面两个方式下使用: 远程方法调用(RMI)在远程方法调用时,需要在客户机与服 务器之间传递各种对象。 对象持久性保存允许对象在创建它们的程序的生命周期结束 后仍然存在保存,供以后的程序调用。 33 Serializable接口 并非所有对象都是可串行化的,如果要对某对象进行串行 化,该对象的类必须实现Serializable接口 Serializable接口是一个空接口,也就是说,它不包含任 何方法的声明,该接口的作用只是表明这个类的对象可以 被串行化 34 数据库连接池 直连 创建连接需要耗费时间 保持连接打开状态的代价很大 连接池 数据库连接池:Connection pooling,它是程序启动时建 立足够的数据库连接,并将这些连接组成一个连接池,由程 序动态地对池中的连接进行申请,使用,释放。 数据库连接池运行机制 从连接池获取或创建可用连接; 使用完毕之后,把连接返还给连接池; 在系统关闭前,断开所有连接并释放连接占用的系统资源; 35 事务 原子性 对数据修改操作要么全部执行,要么完

温馨提示

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

评论

0/150

提交评论