网络编程(Java)第一讲_第1页
网络编程(Java)第一讲_第2页
网络编程(Java)第一讲_第3页
网络编程(Java)第一讲_第4页
网络编程(Java)第一讲_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

网络编程

(Java)教材:ThinkinginJava,FourthEditionByBruceEckel柳杨Office:院楼303QQ:228850250Telmail:lylxq@21网络编程

(Java)评分(100分):考勤与作业:20分;实验:30分期末考试:50分目标与目的目的:

初步掌握使用Java进行网络编程.前提条件是学习过面向过程的编程.

目标:

使用Java语言进行OOP模式的网络编程,而不只是编码.课程内容1:对象导论2:一切都是对象3:控制程序流4:初始化和清除5:隐藏实现细节6:复用类7:多态8:接口和内部类9:异常和错误处理10:类型检查11:对象的集合12:JavaI/O系统13:并发14:Socket编程第1章:对象导论主题:集合和迭代器单根继承向下转型和模板/泛型确保正确清除垃圾回收与效率和灵活性异常处理:处理错误并发持久性Java与theInternetJava为什么成功Java与C++1.1 抽象过程所有编程语言都提供了抽象机制:

汇编语言是对底层机器的小型抽象.FORTRAN,BASIC,和C是对汇编语言的抽象.在解决问题时,这些语言要求考量的是基于计算机的结构而不是基于要解决问题的结构.另一种对机器建模的方式就是对待解决问题建模.1.1 抽象过程AlanKay总结的OOP的5个基本特性:万物皆为对象.程序是对象的集合,它们彼此通过发送消息来调用对方.每个对象都拥有由其他对象所构成的存储.每个对象都拥有其类型.某一特定类型的所有对象都可以接收同样的消息.对象拥有状态(State),行为(Behaviour)和标识(Identity).-ByGradyBooch1.2 每个对象都有一个接口InterfaceofclassLightLighton()off()brighten()dim()TypeNameInterfaceTypeNameDataelementfunctionality1.3 每个对象都提供服务

在开发设计程序时,最好的方法是把对象想象为”服务提供者”.程序本身将为用户提供服务,它将通过调用其他对象提供的服务来实现这一目的.它有助于提供对象的内聚性.高内聚是软件设计的基本质量要求之一.

1.4被隐藏的具体实现

2个角色:类创建者客户端程序员

(类消费者)隐藏的目的:

创建类,只向客户端程序员暴露必须的部分,而隐藏其它所有部分.隐藏的好处:

类创建者可以任意修改被隐藏的部分而不担心对其他任何人造成影响.1.5 复用具体实现

将类的一个对象置于某个新的类中,成为组合.

这使程序员可以在不干扰客户端代码的情况下修改类的成员.也可以在运行时修改这些成员对象以实现动态修改程序的行为.

CarEnginehas-a关系1.6 继承:

复用接口

继承

以现有的类为基础,复制它,然后通过添加和修改这个副本来创建新的类.

BaseDerivedis-a关系1.6 继承:

复用接口Shapedraw()erase()move()getColor()setColor()Squaredraw()erace()Triangledraw()erace()Circledraw()erace()1.7 Is-a和is-like-a关系有时必须在导出类型中添加新的接口元素,这样也就扩展了接口并创建了新的类型,而基类无法访问添加的新方法.

CoolingSystemcool()HeatPumpcool()heat()AirConditionercool()is-like-arelationship1.8 伴随多态的可互换对象经常把一个对象不当作它所属的特定类型来对待,而是将其当作其基类的对象来对待.例如,声明了一个Point类型的数组,就可以将由类Point类型派生出来的所有类型的对象放到该数组中.1.8 伴随多态的可互换对象一个非OOP编译器产生的函数调用会引起所谓的”前期绑定”.面向对象的语言使用所谓”后期绑定”的概念.Java使用一小段特殊的代码来替代绝对地址调用.这段代码使用在对象中存储的信息来计算方法体的地址.

1.9 抽象基类和接口

可以使用关键字abstract来创建抽象类.该抽象类不能被实例化.

也可以使用关键字abstract来描述一个尚未被具体实现的方法,该方法不能包含方法体.一个抽象方法只能在抽象类中创建.当该类被继承时,抽象方法必须有具体实现,或者继承类必须被声明为抽象类.1.9抽象基类和接口interface

关键字比abstract

类更进一步,它压根不允许有方法定义.接口提供了接口与实现的完美分离.Java不支持多继承,但可以通过实现多个接口来达到这一目的.1.10对象创建,使用和生命周期C++把对象置于堆栈(stack)或静态存储区.在Java中,如果需要一个新对象,可以在需要的时候直接在堆(heap)中创建.对象最重要的因素之一是它们的生成和销毁.Java提供了被称为垃圾回收器的机制,它可以自动发现对象何时不再被使用,并继而销毁它.1.11集合和迭代器程序需要容器去持有对象:List

类库(用于存储序列)Map类库(也被称为关联数组,用来建立对象之间的关联)Set

类库(用来存储一类对象)所有容器都有某种方式来处理元素的置入与取出.Java使用迭代器来控制或比较容器中的元素.1.12单根继承在Java中,所有的类最终继承自单一的终极基类Object.在单根继承结构中的所有对象都具有一个共用接口,所以它们归根到底都是相同的基本类型.单根继承结构(例如Java所提供的)保证所有对象都具备某些功能.单根继承结构使垃圾回收器(内置于Java中)的实现变得容易得多.

1.13向下转型与模板/泛型可以存储Object的容器可以存储任何东西.当需要把它取回时,获取了一个对Object对象的引用,而不是对置入时的那个类型对象的引用.

所以需要向下转型为更具体的类型.这种转型的方式称为向下转型.

参数化类型是C++的重要组成部分,部分原因是C++压根没有单根继承结构.在C++中,实现参数化类型的关键字是“template”(模板),Java在JDK1.5中拥有了这个特性.1.14确保正确清除每个对象为了生存都需要资源,尤其是内存。当不再需要一个对象时,它必须被清除掉使其占有的资源可以被释放和重用.Java的垃圾回收器被设计用来处理内存释放问题.垃圾回收器“知道”对象何时不再被使用,并自动释放该对象的内存.1.15垃圾回收与效率和灵活性

在堆栈(stack)上创建对象是为对象分配和释放存储空间最有效的途径.在堆(heap)上创建对象可能代价就要高昂得多.垃圾回收器不再由程序员进行管理,所以Java不适合于实时程序.1.16异常处理:处理错误

异常是一种对象,它从出错地点被“抛出(thrown)”,并被适当的专门被设计用来处理特定类型异常的异常处理器“捕获(caught).错误处理是另一条完全分离的执行路径,所以它不会干扰正常的执行代码.Java一开始就内置了异常处理,而且强制必须使用它.1.17并发

在计算机编程中有一个基本概念,就是在同一时刻处理多个任务(task)的思想.在程序中,这些彼此独立运行的部分称之为线程(thread),上述概念被称为“并发”或“多线程”.可以在线程间共享的资源,例如打印机,必须在被使用期间锁定.通过对程序的方法或者代码块使用关键字synchronized,可以保证同一时刻只有一个线程能使用锁定对象所占的内存.1.18持久性即使是程序没有运行,如果一个对象仍然存在并能保持其信息将是非常有用的.

Java提供对“轻量级持久性(lightweightpersistent)”的支持,这意味着可以很容易地将对象存储在磁盘上,并在以后取回它们.轻量级持久性可以通过对象序列化(object

serialization)或Java数据对象(JDO,JavaDataObject)来实现.

1.19Java与Internet何为Web?客户端编程服务端编程

1.19Java与Internet

客户端/服务器计算技术

服务器

信息存储池是用于分发信息的软件,信息与软件的宿主机器(或机器的集群)被称为服务器.客户端

宿主于远程机器上的软件与服务器进行通信,以获取信息、处理信息,然后将它们显示在远程机器上,称为客户端.C/S计算技术的缺陷数据丢失很难创建和使用胖客户端1.19Java与InternetWeb是一个巨大的服务器Web浏览器使一段信息可以不经修改就可以显示在任何型号的计算机上.是一种简单的单向过程:发送请求给服务器,然后接收服务器发送的回应.Web浏览器交互性还不够.这只能结合客户端运行程序的能力来解决.1.19Java与Internet通过Web发送数据给服务器验证消耗了网络带宽并可能带来延迟.客户端编程,也就是在浏览器内运行程序可以加快网站速度并更易于交互.纵览客户端编程的话题和方式:

插件(Plug-ins)脚本语言(Scriptinglanguages)Java.NETandC#SecurityInternet与Intranet1.19Java与Internet这是Java企业化编程的话题了.1.20Java为什么成功系统易于表达与理解

通用类库得到最大的支持错误处理大型程序设计Java与C++?总结本章试图

温馨提示

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

评论

0/150

提交评论