版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA编程要点和编程规范,杭州新世纪 2011年7月 朱宝君,内容,JAVA编程要点,1,2,3,JAVA编程规范,Q/A,Java2 的版本划分,Java语言的主要特性,面向对象三大特性,封装 继承 多态,封装(Encapsulation),封装: 将方法和数据组织在一起,隐藏其具体实现而对外体现出公共的接口 数据封装,提供公共接口访问 方法封装,不用影响调用者,继承(Inheritance),广义地说,继承是指能够直接获得已有的性质和特性,而不必重复定义它们。在面向对象的软件技术中,继承是子类自动地共享父类中定义的数据和方法的机制。,继承的作用,使软件系统具有开放性 更好地进行抽象与分类
2、 实现代码的复用 提高可维护性,Java接口实现多重继承,单一继承指明了子类和父类的层次关系和各自 的行为。 多重继承是指一个类有多个父类,这使得类的 层次关系不清楚。 接口则把方法的定义同类的层次区分开来,通 过接口可以在运行中动态地定位所调用的方 法,同时一个类可以实现多个接口,使得接口 提供了比多重继承更简单、更灵活的功能。,多态,编译多态 重载 运行多态 Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制 。,例子,类Parent public class Parent public Parent () System.out.print( 1
3、 ); 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(); ,面向接口编
4、程,要依赖于抽象,不要依赖于实现 方便代码复用,无需关注细节 便于团队协同开发,无编译依赖 考虑你的设计中什么可能发生变化,找到一个系统的可变因素,数据类型,数据类型的分类如下所示:,数据类型,基本数据类型,复合数据类型,数值型,字符型:char,布尔型:boolean,整型:byte,short,int,long,实型:float,double,类:class,数组和字符串,接口:interface,字符串和字符串缓冲区,Java平台提供两个类String和StringBuffer,它们用于存储和操作字符串由多个字符组成的字符数据。 String类用于其值不能改变的字符串; StringBu
5、ffer类用于被修改的字符串,通常用来动态的构造字符数据。 字符串是常量,比字符串缓冲区更高效,而且字符串可以被共享。,数据类型,每个变量都必须有一个数据类型. 一个变量的数据类型决定了它能容纳的值和在它上面可以进行什么操作。 Java编程语言有两大类数据类型: 原始类型(primitive) 引用类(reference),实例化,new new 只能实现具体类的实例化,不适合于接口编程 强类型 newInstance Class c = Class.forName(“A”); factory = (AInterface)c.newInstance(); 伸缩性、可扩展性、复用性 弱类型,对象
6、、类与实体的关系,接口(Interface),接口和类一样也是一种类型,也同样包含一些方法的定义。但与类不同的是:接口中所定义的所有方法都是抽象方法(即没有实现的方法)。 接口中所定义的方法由实现(implement)该接口的类来实现,一个类可以同时实现多个接口 接口机制使Java的面向对象编程变得更加灵活。解决了单重继承带来的问题 接口定义了对象的行为模型,相当于一个协议。实现接口的各个类负责实现接口所定义的行为。虽然实现细节各不相同,但对用户来说是一样的行为。,接口功能不能简单扩大,例如:要加个报股价的方法在接口里,此时所有实现它的类不能正常工作。,public interface Sto
7、ckWatcher final String sunTicker = SUNW; final String oracleTicker = ORCL; final String ciscoTicker = CSCO; void valueChanged(String tickerSymbol, double newValue); void currentValue(String tickerSymbol, double newValue); ,用继承来扩大接口,如果需要增加接口的功能,可以利用继承来实现:,public interface StockTracker extends StockWa
8、tcher void currentValue(String tickerSymbol, double newValue); ,抽象类与接口,接口不可以实现任何方法,而抽象类可以; 类可以实现多个接口,但父类仅只有一个; 接口和继承无关,不是类层次结构的一部分。无关的类可以实现相同接口。 接口是设计的结果 抽象类是重构的结果 应用场景 优先定义接口 如果有多个接口实现有公用的部分,则使用抽象类,然后继承它。,反射机制,Reflection 是 Java 程序开发语言的特征之一 运行时加载、探知、使用编译期间完全未知的 classes。 Java程序可以加载一个运行时才得知名称 的class,获
9、悉其完整构造,并生成其 对象实体、或对其fields设值、或唤起其methods1,反射例子,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);,什
10、么是异常?,异常(Exception)又称为例外,是指在程序运行过程中发生的非正常事件,这些事件的发生会影响程序的正常执行。如: 进行数学中“无意义”的运算,例如除数为零、对负数求对数平方根等 对数组进行操作时,超出了数组的最大下标 程序所需进行的I/O操作不能正常执行,如所需访问的文件不存在 内存耗尽无法进行类的实例化 JVM崩溃,为什么要异常处理?,对于任何语言的程序设计而言,错误的发生总是不可避免的 为了加强程序的健壮性,程序设计时,必须充分考虑错误发生的可能性,并建立相应的处理机制。,异常,可以使用 try、catch、throw、throws 和 finally 来管理 Java 异
11、常处理。要监控的程序语句包含在 try 块内catch 块中的代码用于捕获和处理异常。在方法返回之前绝对必须执行的代码应放置在 finally 块中 要手动引发异常,使用关键字 throw。任何被抛到方法外部的异常都必须用 throws 子句指定 多重catch 和嵌套try-catch的使用 自定义异常的编写和使用,异常对象,在Java语言中,我们用异常对象来表示不同的异常。 所谓Java异常对象就是一个存放着相关错误信息的对象,如果方法运行时产生了异常,该方法就可以抛出一个异常对象 为了表示不同种类的异常,Java语言中定义了许多异常类。,方法调用堆栈中异常对象的传递,当某一方法中的一个语
12、句抛出一个异常时,如果该方法中没有处理该异常的语句,那么该方法就会中止执行,并将这个异常传递给堆栈中的下一层方法,直到某一方法中含有处理该异常的语句为止。如果该异常被传递至主方法,而主方法中仍然没有处理该异常的语句,则异常将会被抛至JVM,程序中断。,调 用,传 递,手动引发异常,指定由方法引发的异常,try,finally,catch,throws,throw,处理异常,Java中的异常类,在Java语言中,任何的异常对象都是Throwable类的直接子类或间接子类的实例。Java的类库已经提供了一些常见的异常类,如果这些异常类不能够满足要求,用户也可以创建自己的异常类。,SERVLET,r
13、equest中封装的是请求信息 response中封装的是响应信息 session,对象的串行化,所谓对象串行化是指读写对象的过程,其关键之处在于以串行的流的形式来表示结构化的对象。为了实现完整对象的输入输出,java.io包中提供了两个类:ObjectOutputStream和ObjectInputStream。这两个流类与其他的字节流类的功能类似,其特殊之处在于通过它们可以读写对象。对象的串行化通常在下面两个方式下使用: 远程方法调用(RMI)在远程方法调用时,需要在客户机与服务器之间传递各种对象。 对象持久性保存允许对象在创建它们的程序的生命周期结束后仍然存在保存,供以后的程序调用。,Serializable接口,并非所有对象都是可串行化的,如果要对某对象进行串行化,该对象的类必须实现Serializable接口 Serializable接口是一个空接口,也就是说,它不包含任何方法的声明,该接口的作用只是表明这个类的对象可以被串行化,数据库连接池,直连 创建连接需要耗费时间 保持连接打开状态的代价很大 连接池 数据库连接池:Connection pooling,它是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。 数据库连接池运行机制 从连接池获取或创建可用连接; 使用完毕之后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年乡镇机关公务员(综合知识)考前冲刺试题解析及答案(洛阳)
- 2026年初中化学九年级上册复习试卷
- 财务报表提交格式调整通知函7篇
- 2025年阿坝州选调公务员笔试真题
- 智能家电产品设计开发催办提醒(5篇)
- 汽车维修技术操作规程与故障诊断指南
- 网络文学编辑作家合作KPI考核表
- 2025年重庆银行招聘笔试真题
- 山东国考考试真题2025
- 机械装备销售总监销售策略与客户关系管理绩效考评表
- 甘肃酒钢集团宏兴钢铁股份有限公司白云岩矿矿产资源开发与恢复治理方案
- 2025年再生铝熔炼工艺优化与有害元素控制
- 面包委托加工合同模板(2篇)
- 人才招聘需求与筛选分析模板
- 社会组织财务审计工作方案
- 2026年及未来5年市场数据中国美术考试培训行业市场竞争格局及投资前景展望报告
- 物业风控案例分析
- DG-T 222-2019水产养殖水质监控设备
- 食用油厂生产管理制度
- 多元解纷培训课件
- 橡胶制品生产工岗前技术评优考核试卷含答案
评论
0/150
提交评论