计算机英语教程 吕云翔等 第5单元.docx
- 文档编号:23971753
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:17
- 大小:55.41KB
计算机英语教程 吕云翔等 第5单元.docx
《计算机英语教程 吕云翔等 第5单元.docx》由会员分享,可在线阅读,更多相关《计算机英语教程 吕云翔等 第5单元.docx(17页珍藏版)》请在冰豆网上搜索。
计算机英语教程吕云翔等第5单元
第5章计算机程序设计
第一部分阅读和翻译
A部分面向对象编程
面向对象编程(OOP)是一种编程模式,使用“对象”及其相互作用来设计应用程序和计算机程序。
编程技术可能包括如封装,模块化,多态性和继承的功能。
这是不常用的主流应用软件开发,直到1990年代初期。
许多现代的编程语言才开始支持面向对象。
1.简介
面向对象的编程其根源可以追溯到1960年的。
随着硬件和软件变得越来越复杂,质量被妥协。
研究人员研究了可以使软件质量可维持不变的方法。
面向对象编程被部署在要求解决这一问题并强调离散单位编程逻辑和再使用的软件的部分。
(1)计算机编程的方法侧重于数据,而不是过程,使用由自给自足模块(对象)组成的程序,其中载有需要操纵一个数据结构所有信息。
[1]
面向对象的程序设计可被看作是一个合作对象的集合,而不是传统的观点,其中一个程序可以被看作是一组任务来计算(“子程序”)。
在面向对象编程中,每个对象是能够接收信息,处理数据,并给其他对象发送信息。
2.基本概念
一项调查阿姆斯特朗的德博拉学者近40年来文学的计算确定了一些“夸克”,或基本概念,发现在绝大多数的定义对象。
它们是:
(1)类
类定义具有抽象特征的事物(对象),包括事物的特点(其属性,字段或属性)和事物的行为(它可以做的事,或完成事的方法,操作或功能)。
例如,类犬由具有所有相同特征的狗组成,如品种和皮毛颜色(狗的特性),并且可以吠和坐下(行为)。
类为计算机编程提供了模块和结构功能。
一个类通常应该可以被对某一领域熟悉的非程序员所识别,也就是说这个类说明的特征应该在这个领域具有代表。
同时,一个类的代码应该是相对独立的(一般采用封装的方法)。
由类定义的集合,属性和方法被称为成员。
(2)对象
对象是类的模式(范例)。
定义类犬界定所有狗可能具有的特点和行为;莱西是一个具有独自特点的狗。
一只狗有毛皮,莱茜的毛皮是棕白色的。
(3)实例
可以对一类或某一特定对象举例。
该实例为实际运行时创建的对象。
用程序员的术语来说,Lassie对象的是一个狗类的举例。
这套特定对象价值属性被称为其状态。
对象包括状态和在该对象类定义的行为。
(4)方法
方法是一个对象的能力。
Lassie,作为狗,能叫。
因此,bark()是Lassie的方法。
她可能有其他的方法,例如sit()或eat()或walk()或save_Timmy()。
在此程序中,使用方法通常只影响一个特定的对象;所有狗都能叫,但是你只需要一个特定的狗去叫。
(5)继承
“子类”是特别的一类,它从父类继承属性和行为,并能介绍自己。
例如,狗类可能有子类称为Collie,Chihuahua和GoldenRetriever。
在这种情况下,Lassie是Collie子类的一个举例。
假设狗类定义的一种方法称为bark()和一个为毛色的属性。
每个子类(Collie,Chihuahua和GoldenRetriever)将继承这些,这意味着程序员只需要为他们编写一次代码。
每个子类可以改变其遗传性状。
例如,对于Collie类的默认毛色棕白相间。
在Chihuahua类默认规定,bark()产生一个高音。
子类也可以添加新成员。
在Chihuahua类可以添加一个方法称为tremble()。
因此,对于单个Chihuahua能高声叫,这来自Chihuahua子类,它继承了一般狗的bark()。
Chihuahua对象也会有tremble()方法,但Lassie不会,因为它是Collie,而不是Chihuahua。
事实上,继承是一种关系:
Lassie是Collie。
Collie是狗。
因此,Lassie继承Collies和狗的方法。
多重继承是指从多个祖类继承,它们之间互不为祖类。
例如,独立的类可以定义猫和狗,奇美拉可以由继承所有或多个行为的猫狗产生。
这不是一贯支持的,因为它是很难实施和用好。
(6)抽象
抽象是通过符合问题的建模来简化复杂的现实,在给定方面的问题上,它在最适当的继承水平上工作。
例如,在很多时候Lassie被视为狗,当它需要拥有Collie的属性及行为时,它被视为Collie,在清点Timmy宠物的时候它被视为动物。
(7)封装
封装隐藏了工作的细节。
比如,每个种类的狗叫的方法都不一样。
代表狗叫方法的代码准确地定义了一个叫声如何开始(从吸气开始然后呼气,发出特定的声调和声量)。
但是Lassie的朋友Timmy并不需要准确的知道她如何叫。
封装是通过区别对象的类来实现的。
于是结果就是每个对象都可能在某个层面暴露给任何一个类,也就是在这个对象中拥有一个属于那个类的成员。
使用封装的理由就是防止在每个层的用户区依赖执行方案中另一个在将来可能会发生突变的部分,因为这样会使突变发生得更加频繁,也就是说封装的目的是防止用户使用的功能发生变化。
比如,一个层可以保证小狗通过类代码被加进狗类下的一个对象。
成员通常被分为公共的,受保护的和有隐私权的,这就决定了他们是对所有类都可用,还是对子类可用还是仅对定义类可用。
有些语言做得更细,Java运用了默认的连接变址数使得对同一封装内的不同类的连接也受到了限制。
C#和VB通过运用关键词“internal”或“Friend”为一个群里的类保留了几个位置。
Eiffel和C++允许指定哪个类对那些用户可用。
(8)多态
多态中是指在一个面向对象的系统中每个属于不同数据类型的对象可以对拥有同一方法名称的呼叫做出响应的能力,每个呼叫的方式都对应着一个合适的类型特征。
比如,如果一个狗被命令去说话,它的反应一定是发出叫声。
(9)去耦
去耦功能允许把对象层面从类中分离出来,并使它对一个单个的抽象层产生继承关系。
去耦的一个通常的作用就是在多态的基础上对封装去耦,这样做是利用可以重复利用的代码防止具体的代码模块相互影响。
以上的这些概念并不是都只能在面对对象的语言中被找到。
所以面向对象的并应用类概念的编程方式有时也被称为基于类的编程。
尤其要指出的是,基于模版的编程基本上并不用类概念。
因此,在这些虽然不存在对象概念的语言中,“object”作为一个非常不同但是很形象的术语被用来定义关于对象和实例的概念。
3.历史
电脑中对象和实例的概念第一次重大的突破是在麻省理工学院,通过他们的PDP-1系统表现出的,这有可能是最早的基础结构的例子。
另一个很早的例子是由伊凡萨瑟兰在1963年制作的画板程序。
但是,这只是一个应用而不是编程的范例。
对象作为编程实体在六十年代由一个叫做西姆拉67的编程语言命名,这个编程语言由在位于奥斯陆的挪威计算机中心的奥莱-约翰德哈和克里斯汀尼高达尔(音译)设计,用来做决策模拟。
(据说这个故事是他们在研究船舶模拟时,想到不同的属性如何在不同的船只之间相互影响的而想到的,他们觉得把不同类型的船分为具有不同对象的类,每个对象的类负责定义自己的数据和行为)。
这其实是一个早起用于模拟程序的简单外推法的概念。
在模拟计算机中,类似这种
直接映射现实世界的现象、用来模拟现象的对象或对象(相反)被称为“仿真”。
西姆拉不仅介绍了类的概念,而且对于之后的许多语言,尤其是Smalltalk、Lisp和Pascal的衍生语言产生了很大的影响。
Smalltalk语言,是由施乐帕洛阿尔托研究中心在20世纪70年代开发,引入了面向对象编程,来代表普遍使用的对象和信息为基础计算。
Smalltalk的创作者受到67号公式引入的思想的影响,但Smalltalk被设计是要作为一个完全动态的系统,在其中类可以动态地创建和修改而不是像67号公式那样静态的。
Smalltalk和它的面向对象编程于1981年8月由字节杂志引入,面向更广泛的群众。
在20世纪90年代中期,面向对象的程序设计开发作为主导的编程方法,主要是受到C++的影响。
通过日益流行的图形用户界面,其主导地位进一步增强,并且面向对象的程序设计非常适合。
一个关于动态图形界面库和面向对象语言的例子,可以在MacOSX的可可框架上找到,用C写的,面向对象的,基于Smalltalk的动态信息延伸至C。
面向对象的工具包还加强了流行的事件驱动编程(虽然这一概念不仅限于面向对象)。
有些人认为,协会与GUIs(实际或想象的)就是推进面向对象的编程主流。
在苏黎世ETH,尼克劳斯沃尔斯和他的同事们也一直在调查数据抽象和模块化编程这些课题。
模式2包括两者,他们的后继设计,奥伯伦,包括一个独特的办法去实现面向对象、阶级等。
该方法不同于Smalltalk,并且非常不同于C++。
面向对象的功能已被添加到当时的许多语言中。
包括Ada,BASIC,Fortran,Pascal等。
在这些最初不是为他们设计的语言中添加这些功能,往往导致相容性和代码的可维护性问题。
在过去十年中Java被广泛应用,因为它与C和C++的相似性,但更重要的,因为它使用的虚拟机,可以让运行代码不变许多不同的平台。
(2)这最后一个功能已经吸引力了有异构环境的更大的发展商店。
微软的.NET也有类似的目标,其中包括/支持几种新的语言,或变旧的重要前提,当然,这仅限于微软平台。
最近,出现了主要是还没有符合面向对象方法的程序,如Python和Ruby。
除了Java,最重要商业的面向对象的语言是VisualBasic.NET(VB.NET)和C#,都专为微软的.NET平台。
VB.NET和C#中都支持跨语言的继承,使类中定义一个语言子类中所界定的其他语言。
正如程序编程语言使技术得到改进,像结构化编程,现代的面向对象的软件设计方法包括改进如使用设计模式,设计合同,与建模语言(如UML)。
B部分C#编程语言和.NET框架入门
1.简介
C#是一种优雅的,类型安全的面向对象的编程语言,其使得开发者能够建立范围极广的安全且健壮的应用软件。
而这些应用软件都是运行于.NET框架之上的。
(1)你可以使用C#来创建传统的Windows客户端软件、XML网络服务、分布式部件、客户端-服务器应用软件、数据库应用软件,以及更多,更多。
微软的VisualC#2005,提供了高级代码编辑器、便捷的用户界面设计器以及许多其他工具,以方便快速开发基于C#语言2.0版和.NET框架的应用软件。
2.C#Language
C#的语法富于表达,但是其关键字少于90个,并且C#也很简单并易于学习。
C#语法中的大括号将会立即被任何一个熟悉C,C++或者Java的人所认出来。
熟悉这些语言中的任何一种的开发者,最有可能能够在很短的一段时间内就开始高效率地使用C#语言开发。
C#语法对C++中的许多复杂问题进行了简化,但却提供了诸如无效值类型,列举,委托,无名方法和直接内存访问等在Java中所没有的强大功能。
C#同时也支持泛型函数和类型,这提高了类型的安全和性能,而迭代器则使得集合类的实现能够定义客户迭代行为,这些行为可以很容易地通过客户代码使用。
作为一种面向对象的编程语言,C#支持封装、继承和多态的概念。
所有的变量和方法,包括主方法,应用程序的入口,都被封装在类定义之中。
一个类可以直接继承一个父类,但是其可以实现任意个父类接口。
覆盖(override)了父类中的虚方法的方法,需要用到覆盖的关键字以避免意外的重新定义。
在C#语言中,结构类似于一个轻量级的类;结构式一种堆栈分配的类型,其能够实现接口,但不支持继承。
除了这些面对对象的基本准则之外,C#还通过许多创造性的语言构造来促进了软件部件的开发,这些构造包括:
•被称为委托(delegate)的封装方法签名:
其使得类型安全的事件通知得以实现。
•属性(properties):
其可作为私有成员变量的访问者。
•特性(attributes):
其提供运行中关于类型的声明元数据。
•内嵌式XML文件注释。
如果你需要与诸如COM对象或者Win32原有动态链接库等其他Windows软件进行交互的话,你可以通过一个名为“Interop”的过程来用C#实现。
Interop使得C#程序能够完成原有的C++程序所能够完成的所有事情。
C#甚至支持指针和“非安全”代码的概念。
“非安全”代码用于直接内存访问非常重要的情形。
C#构建的过程,相比较于C和C++是很简单的,而对比Java所构建的过程则显得更为灵活。
在C#中,没有单独的头文件,也没有方法和类型必须按照特定顺序声明的要求。
一个C#源代码文件可以声明任意个类、结果、接口和事件。
3..NET框架平台体系结构
C#程序运行于.NET框架之上。
.NET框架是一个完整的Windows部件,其包括了一个被称为通用语言运行时(commonlanguageruntime,CLR)的虚拟执行系统和一个类库的统一集合。
通用语言运行时(CLR)是微软的通用语言下层构造(CLI)的商用实现。
CLI是一个国际标准,其构成了产生执行和开发环境的基础,在环境下,各种语言和库能够组合在一起紧密地运行。
[1]
用C#编写的源代码将被编译成符合CLI规范的中间语言(IL)。
中间语言代码,与位图和字符串一起,被存储在磁盘上一个被称为为汇编文件的可执行文件中,该文件通常以.exe或者.dll作为扩展名。
(2)汇编文件包括了一份清单,该清单提供了关于编译文件的类型、版本、文化和安全性要求等信息。
当执行C#程序时,汇编文件将被加载到CLR中去。
基于清单中所包含的信息,CLR将采取各种不同的措施。
然后,如果达到了安全性要求的话,CLR运行即时无库生产(JIT)编译,将中间语言代码转化成本地机器指令。
CLR同时也提供与自动碎片帐集、异常处理,和资源管理等相关的其他功能。
由CLR执行的代码有时被称为“可管理代码”,与之形成相对的是“非可管理代码”。
“非可管理代码”是指以特定的系统为目的的被编译成本地机器指令。
下图展示了C#源代码、基本类库、编译文件和CLR在编译时和运行时的关系,见图5-1。
语言互用性是.NET框架的一个主要特征。
因为由C#编译器产生的中间语言代码符合通用类型规范(CTS),由C#生成的中间语言代码,能够与由VisualBasic、VisualC++、VisualJ#,以及超过20种的符合CTS的语言中其他任意一种的.NET版本生成的代码进行交互。
单个的编译文件可以包含用不同.NET语言编写的多种模块,并且各种类型可以互相引用,如同用同一种语言编写一样。
除了运行时操作外,.NET框架也包含了编排成了名字空间的超过4000个类的广泛类库。
这些名字空间提供了各种各样的有用功能,包括从文件输入和输出,到字符串处理,到XML解析,到Windows窗体控制。
[2]典型的C#应用程序广泛地使用.NET框架类库来处理常见的繁杂事务。
C部分在线AppStore
1.简介
AppStore,是苹果公司为其iPhone、iPodTouch以及iPad等产品开发和维护的数字化应用的平台。
AppStore允许用户从iTunesStore浏览和下载一些由iOSSDK或者MacSDK开发的应用程序。
根据应用发布的不同情况,用户可以付费或者免费下载。
应用程序可以直接下载到iOS设备,也可以通过MacOSX或者Windows平台下的iTunes下载到电脑中。
通过iTunes,用户也可以将这些程序直接下载到某一目标设备,比如PC或者Mac。
AppStore收入的30%属于苹果公司,剩下的70%属于应用的开发者。
通过对iTunes的一次更新,AppStore于2008年7月10日正式向公众开放了。
同年7月11日,苹果公司发布了iPhone3G,同时用户可以通过AppStore预下载iOS2.0.1系统,以及iPhone和iPodTouch的iOS2.0.1固件。
截至到2010年10月20日,至少有30万的第三方应用程序在AppStore上正式上市。
截止到2011年1月18日,苹果公司在“10BillionAppCountdown”的活动上宣布在AppStore有超过99亿次的下载量。
在格林威治标准时间2011年1月22日星期六上午10点26分,苹果的AppStore上的下载量达到了100亿。
应用程序收益的中间值估计为8700美元,虽然直到苹果公司并没有公开数据。
到2011年5月,苹果公司证实在经过审批的50万个应用程序中,37%是免费的,应用程序的平均售价是3.64美元。
价格的分布服从幂律分布(齐普夫曼德尔布罗法律):
“虽然卖家可以自由定价,但是大多数还是将价格定为5美元的倍数(并减去1美分)”。
鉴于苹果的AppStore的巨大成功,苹果的对手也发布了类似的应用,“AppStore”这个词已经被用来代表各种类似的手机应用。
不过,苹果在2008年提出的商标申请已经在2011年暂时通过了。
App这个词已经成了一个流行术语;在2011年1月,“app”被美国方言学会授予“年度词汇”的荣誉称号。
苹果公司并不拥有app这个词的商标,也并未宣称对这个词的独有权;因为这个词最晚从2002年起就已经被用于“application”的简写,例如GoogleApps(在2006年第一次出现)。
苹果于2010年10月20日宣布了MacAppStore的到来,并在2011年1月7日正式发布了MacAppStore。
这是一个类似于iOS设备的AppStore的应用,只是它拥有为Mac电脑设计的应用程序。
MacAppStore只能通过MacOSXSnowLeopard和即将发布的MacOSXLion访问。
AppStore可以通过iPhone、iPodTouch和iPad上的同名iOS应用程序访问。
这也是除了越狱之外唯一能直接下载本地应用程序的方式。
Web应用程序也可以绕过AppStore安装在这些设备上,不过它们通常都会缺少一些功能。
这个商店可以通过iTunes访问,所以任何能安装iTunes的系统(MacOSX和Windows)上都可以访问这个商店。
2011年2月,苹果公司宣布了其新的基于订阅的服务,这将允许出版商设定订阅的时间和价格。
之前,新的杂志和新闻需要每次发布之后才能出售。
这项新的服务使得出版商可以通过他们的应用程序出售他们的内容,并且使用户能在特定的时间收到新的内容。
更有意思的是,苹果不仅仅允许出版商通过需要与苹果公司共享收益的iTunes出售(苹果得到30%,出版商得到70%),还允许出版商直接从他们的网站分发订阅并无需与苹果共享收益。
2.iPhone软件开发包
iPhoneOS软件开发包于2008年3月6日的iPhone软件发展大会上正式发布。
这个软件开发包允许使用装有MacOSX10.5.4或更高版本的intelMac电脑的开发者用Xcode开发能在iPhone、iPodTouch和iPad运行的应用程序。
之后苹果公司发布了beta版,并在2008年7月和iPhone3G一起发布了最终版。
这次发展大会(加上一个为第三方开发者提供的分配计划),后来被称为iPhone开发者计划,并为现在的第三方开发者提供了两种路线:
标准和企业。
通过标准计划开发的应用程序可以通过Mac和Windows上的iTunesStore或者iPhone、iPodTouch和iPad上的AppStore分别销售。
软件的发布者可以获得销售收益的70%,并无需为应用程序的布施支付费用。
但是他们需要为使用iPhone软件开发包和上传程序到商店而支付一个年费。
通过企业计划开发的应用程序,官方称为“iOS企业开发者计划”(iDEP),是专为机构所用,并不在AppStore上发布。
这使得企业,非营利组织和政府机构能够开发专门的“内部”应用程序而不公开发行。
2010年9月14日,企业计划更新并允许任何拥有资料综合编码制度序列号的组织加入这一计划。
在此之前,只有拥有500以上雇员的组织可以加入企业计划。
应用程序必须被签名才能在iPhone上运行。
签名证书只能是在开发者首次开发软件后通过购买99美元的标准包或者299元的企业包获得苹果公司授权。
3.应用许可
根据SDK协议中的条款,应用程序进行基本可靠性测试和其它分析必须得到苹果的许可。
即使应用程序被拒签,作者仍可以手动向苹果申请授权个别的iPhone应用,虽然苹果可能会撤销这一权利。
“保密协议”一直都禁止开发者公开驳回通知的内容,不过苹果现在开始在驳回邮件上说明“保密协议”的警告-----“本邮件中的内容不能公开”。
苹果后来改变了NDA并表示“这给开发者带来很诸多不便”,但是他并没有改变禁止公开驳回通知的决定。
根据开发者的要求,有些应用只有在美国的AppStore上才能获得。
由于现在很多开发者都公开了驳回邮件,苹果现在大多直接打电话告诉开发者有关驳回的通知。
另外,由于某个项目的开发者抱怨AppStore的服务条款与GPL不一致,苹果公司已经从AppStore删除了在GNUGPL下授权的软件许可证。
第二部分模拟写作:
概要
一、简介
概要是演讲材料的一个大体计划。
概要描述了各种主题的命令,它们之间的相对重要性和各部分之间的关系。
二、概要的内容顺序
概要设计有多种方式。
有时按年代安排很好运作;有时候,空间布局最适合。
概要的共同特点是从大体到具体的转化。
这意味着您先有一个笼统的想法然后得到所支持的具体例子。
三、概述句的论点声明
所有的概要都应该从一开始便声明论点或总领下文。
这个表达论点的句子提出文章的中央想法。
它具体完整而又简要扼要,可以表达出您的论点。
四、概要的类型
概要的两个主要类型是标题型概要和句子型概要。
在标题型概要中,标题用单词或简要的词组给出。
在句子行概要中,所有标题用完全句子表述。
五、格式
一个好的切入点是写好一篇文章的重要条件。
概要的格式通常跟随着:
题目/标题
论题:
概述句
I.论文介绍
A.总领文章的若干句子
B.结束语与你的论点声明(例如有3个要点)
1.第一要点
2.第二要点
3.第三要点
II.正文——(应该有至少三段)
A.第一论点——(正文第1段)
1.支持论点的引文或实证
2.有至少五个句子
B.第二个要点——(正文第2段)
1.支持论点的引文或实证
2.有至少五个句子
C.第三要点——(正文第3段)
1.支持论点的引文或实证
2.有至少五个句子
III.结论
A.总结文章的若干句子
B.再次声明你的论点和论据
当你将题目和信息照着概要完成后,剩下的就很容易了!
检查拼写和标点,然后就可以了。
六、范例
A.标题型概要
温室效应
论题:
该报告讨论温室效应的基本概念、主要原因、影响和解决办法。
I.介绍
A.温室效应的定义
B.温室效应形成的基本步骤
i.滞留在大气中一定数量二氧化碳
ii.全球性温度上升
II.二氧化碳的增加的主要原因
A.矿物燃料的燃烧
B.砍伐森林
C.木头的燃烧
III.二氧化碳浓度上升对气候的影响
A.地方气候类型的改变
B.天旱
C.热带风暴的增加
D.海平面上升
IV.温室效应的应对方法
A.减少矿物燃料的使用
B.洁净新能源的开发
C.太阳能和核能资源的发展
D.全球范围的大规模的重新造林
E.减少木头和其他物质的燃烧
F.碳循环的进一步研究
G.正确的方法消除二氧化碳
第三部分听力和对话
对话:
认识Java运行时环境(JRE)和Java虚拟机(JVM)
(在第一课的Java编程学习中,Mark下载一个简单的程序进行示例学习,但他发现,它无法正常运行。
)
Mark:
对不起,Henry和Sophie。
你能帮助我吗?
Henry:
当然可以。
什么问题?
Mark:
为什么这个程序不能运行?
它的源代码是正确的。
Sophie:
是否您的计算机安装[1]Java运行环境?
Mark:
尚未。
什么是Java运行环境?
Henry
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机英语教程 吕云翔等 第5单元 计算机 英语 教程 吕云翔 单元