文档库 最新最全的文档下载
当前位置:文档库 › ext.get()和ext.fly()的区别

ext.get()和ext.fly()的区别

ext.get()和ext.fly()的区别
ext.get()和ext.fly()的区别

从一开始接触Ext就看到有Ext.fly这个函数,当时觉得这个跟Ext.get没什么区别,加之当时对JS性能相关

问题认识肤浅,也一直没有在意其区别,今日看learning extjs一书,看到了有专门对Ext.fly 特别强调的一处:

This isn't exactly a speed tip, but is more about conserving memory by using something called

a "flyweight" to perform simple tasks, which results in higher speed by not clogging up the browser's memory

大概意思也就是Ext.Fly采用flyweight模式使所有fly出来的元素共享内存,可以提高程序执行速度,减少内存占用。

这段话激起了我对这个函数的兴趣,毕竟近段时间一直在搞JS性能优化相关问题,对“内存”这个字眼

非常敏感。大概看了下Ext源码对get和fly实现的部分,然后在网上查看了一些资料,终于对他们之间的异同有

了个比较深入的认识。

Ext的官方开发人员给出了如下的解释:

Ext.Element wraps a lot of functionality around DOM element/node, for example functions like hide, show,

all animation stuff, dimensions getting and setting function and a lot more.

Ext.Element keeps reference to DOM element it is wrapped around in dom property. Once you have an Ext.Element

(e.g. you call Ext.get('some-d') it is an instance of Element class and you can work with it as such.

Now, imagine that you need to hide 1000 DOM nodes, you call 1000 times Ext.get('some-one-of- 1000-id').hide() so you create 1000 instances of Element just to call one function: hide.

Ext.fly is one instance of Ext.Element with "replaceable" DOM node it is wrapped around.

If you call 1000 times Ext.fly('some-one-of-1000-id').hide() you 1000 times replace dom property of one instance of Ext.Element.

Result: higher performance, lower memory usage.

You only need to keep in mind that you cannot keep Element returned by Ext.fly for later use as

it's dom will sooner or later gets replaced by another one.

这段话中,大致的意思如下:

Ext.Element是Ext对Dom元素的一个强有力封装,它封装了很多方便对dom操作的接口(并通过Element的dom属性

引用对应的dom元素),因此每创建一个Element元素都将消耗不少的内存(主要是大量的操作接口消耗),因此如

果创建过多的Element元素必然导致内存占用的剧增和系统性能的下降。

Ext.get和Ext.fly返回的都是一个Element对象,但是Ext.get返回的是一个独立的Element,拥有自己独立的操作接口

封装,可以将其返回值保存到变量中,以便以后调用操作等,这样为重用带来了方便。但是它的一个很大缺

点就是内存消耗问题,假如调用Ext.get(id)1000次,则会在内存中创建1000个独立Element,其内存占用可想而

知。但是很多时候我们可能仅仅只是对该dom元素执行一次很简单的操作,如隐藏(hide),这样如果每次都创建

一个独立Element放在内存中,实在是对内存的巨大浪费,因此当我们在只需要执行一次操作或者一个很简单

的操作时,采用Ext.get就显得很不合理。Ext.fly正是为了解决这个问题而出现,它通过使每次创建的Element共

享内存中的一套操作接口来达到节省内存的效果。

下面来看Ext.fly的实现代码(我简单加了一些注释):

1var flyFn = function(){};

2flyFn.prototype = El.prototype;

3var _cls = new flyFn(); //将Element的所有操作接口放在_cls中

4

5// dom is optional

6El.Flyweight = function(dom){

7this.dom = dom;

8}; //仅包含一个dom属性的Object

9

10El.Flyweight.prototype = _cls; //将操作接口复制给Element实例对象

11El.Flyweight.prototype.isFlyweight = true; //标志该Element是flyweight对象

12

13El._flyweights = {}; //flyweight对象缓存容器

14

15El.fly = function(el, named){

16named = named || '_global';

17el = Ext.getDom(el); //取得dom对象

18if(!el){

19return null;

20}

21if(!El._flyweights[named]){

22El._flyweights[named] = new El.Flyweight(); //仅在第一次调用Ext.fly时创建一个Flyweight对象并缓存

23}

24El._flyweights[named].dom = el; //将flyweight对象的dom属性指向该el

25return El._flyweights[named];

26};

从上面的代码不难看出,仅在第一次调用Ext.fly时创建一个Flyweight对象(该对象包含了Element的所有操作接口)并将其缓存,

之后的所有fly操作都只是修改该flyweight对象的dom属性,每次fly返回的结果都是共享的同一个flyweight对象。

这样每次fly返回的Element相比Ext.get而言,减少了每次创建Element时对大量的操作接口的创建。所有fly的对象

都共享一套Element操作接口,内存占用自然少了很多,而且执行速度也得到了提升。在大量的创建操作中效

果会更加明显。

由于fly的操作原理,我们不能将fly的返回结果保存在变量中以便重用,因为每次fly操作都将可能改变该变量的

dom指向。如下面的代码就是不正确的:

1var my_id = Ext.fly('my_id');

2Ext.fly('another_id'); //此时my_id的dom引用已经变为another_id

3my_id.highlight('FF0000',{ //此处的操作将是对another_id元素的操作

4endColor:'0000FF', duration: 3

5});

在以后使用中,一定要合理的利用Ext.get和Ext.fly,避免滥用Ext.get这个“重量级”的方法。

JAVA类和对象的关系

1、JAVA中的参数传递问题(理解内存图) 基本类型:形式参数的改变对实际参数没有影响 引用类型:形式参数的改变直接影响实际参数 2、面向对象(理解,升就业班问说说什么是面向对象和思想特点) 1、面向对象(从三点回答) A面向过程是以函数为基础,完成各种操作,强调的是过程 B面向对象以对象为基础,完成各种操作,强调的是对象,结果 C面向对象是基于面向过程的 2、面向对象的思想特点: a)是一种更符合人们思考习惯的思想 b)把复杂的事情简单化 c)把我们从执行者变成了指挥者 3、举例: a)买电脑 b)洗衣做饭 c)旅游 d)把大象装进冰箱(伪代码体现) 4、事物是如何体现的 a)属性有哪些特征名词提取法 b)行为有哪些功能 5、类与对象的关系(掌握) 把事物转换成类 A:成员变量 定义在类中,方法外 B:成员方法 和以前的区别是去掉static 把这个说完还没有说道类与对象的概念,对不对 类:是相关的属性和行为的集合,集合就是一堆东西,是一个抽象的概念 对象:是某种事物的具体的存在,具体的表现形式 举例: 学生:类 对象:小明 6、案例 A学生类 B手机类 C汽车类(在这里画了内存图,有空看一下) 7、如何使用呢 a)创建对象 i.格式 a)类名变量= new 类名() b)使用成员变量和成员方法

i.对象名.成员变量 ii.对象名.成员方法 8、成员变量和局部变量的区别(理解) A 定义位置 成员变量:在类中方法外 局部变量,在类中方法中,或者方法上的形式参数 B 初始化的区别 成员变量:有默认的初始化值 局部变量:无 C 存储位置 成员变量:堆随着对象的存在而存在 局部变量:栈随着方法的存在而存在 9、匿名对象 a)概念:没有名字的对象 b)使用场景 i.当对象中的方法只掉用一次的情况下使用(一般不用,测试时使用)new Student().sayHello(); ii.匿名对象作为实际参数传递

第10章类和对象

第10章 类和对象 本章工作任务 实现学校类,并描述学校的信息 实现教员类,并输出教员的信息 实现学生类,并输出学生的信息 本章技能目标 掌握类和对象的特征 理解封装 会创建和使用对象

使用Java理解程序逻辑 本章单词 请在预习时学会下列单词的含义和发音,并 填写在横线处。 1.class: 2.object: 3.OOP: 4.return: 5.encapsulation: 6.null: 7.initial: 8.type:

类和对象 本章简介 在前面章节中,我们学习了程序设计的基本知识和流程控制语句。通过这些内容的学习,大家能够用Java语言进行程序设计,但这些程序的规模都很小,一般只有几十行代码。假设我们要编程解决一个很大的问题,需要写几万行代码,如果按照以前的做法,将这些代码都放在一个Java文件中,可以想象这个文件会非常冗长,而且很难维护。 因此,在下面的课程中,你将看到Java程序设计的另一道风景——面向对象程序设计,英语缩写为OOP。面向对象程序设计是一个里程碑,Alan Kay因为设计了世界上第一个面向对象语言Smalltalk而获得图灵奖。Java之父James Gosling结合Internet背景设计了完全面向对象的Java语言。本章将带领你进入面向对象的世界,学习什么是对象和类,以及如何创建和使用类的对象。 10.1 对象 首先问你一个问题,“世界是由什么组成的?”。如果你是一个化学家,你可能会说,“世界是由分子、原子、离子等这些化学物质组成的”。如果你是一个画家,你可能会说,“世界是由不同的颜色组成的”。不同的人会有不同的回答。但如果你是一个分类学家,你会说,“这个世界是由不同类别的事物组成的”,如图10.1所示。 图10.1 世界的组成 其实,这个问题本身就比较抽象,我们说物以类聚,所以可以说世界是由不同类别的事物构成,如图10.1中所示,世界由动物、植物、物品、人和名胜等组成。动物可以分为脊椎动物和无脊椎动物。脊椎动物又可以分为哺乳类、鱼类、爬行类、鸟类和两栖类。 爬行类又可以分为有足类和无足类……,就这样可以继续分下去。当我们提到某一个分类时,就可以找到属于该分类的一个具体的事物。比如乌龟就属于爬行类中的有足类,

第4章-Java语言与面向对象作业习题与答案

第4章 Java语言与面向对象作业习题与答案 一、简答题 1.什么是对象?什么是类? 对象是一种抽象数据类型。它包含了事物的静态特征(属性)和动态特征(行为)两大特征。 类是一组同种对象的集合与抽象。即是具有相同属性和方法的一组对象集合。 2.Java语言的单继承是指什么? 一个类可以派生出多个子类,但子类只允许有一个父类,而不允许存在多个父类。 3.在一个共有类中的数据成员及方法成员的访问控制符为缺省,则这个类可供什么样的包引用? 当一个类的访问控制符为public共有时,表明这个类作为整体对其它类是可见和可引用的;但其数据成员和方法成员访问控制符为缺省时,它们只能被包中类(含当前类)引用。 4.抽象类的用途 (1)设计在更高的层次上进行,不考虑具体对象,从而大大简化了处理问题的复杂性; (2)设计出的类也具有更加良好的可扩展性。 5.什么是非静态的成员变量? 非静态成员即为实例成员变量(没有加static修饰的变量)。 6.异常Exception和错误Error有什么不同?Java如何处理它们? 答:错误通常是指程序本身存在非法情形,常常是因为代码存在问题而引起的,如造成系统崩溃、虚拟机粗错、动态失败等,这一类错误无法恢复或不可能捕获,并将导致应用程序中断。 异常表示另外一种“非同寻常”的错误。这种错误通常是不可预测,但可以被捕获且可以恢复。常见的异常情况包括存不足、找不到所需文件等。 对于错误,编程人员可以通过对程序进行更仔细的检查,以避免这种错误。 对于异常,可以使用捕获机制进行捕获,再编写出相应的处理程序。 7.简单述Java的异常处理机制。 答:Java采取“抛出—捕获”的方式,一旦一个异常想象产生,Runnable环境和应用程序会抛出各种标准类型和自己定义的异常,系统就可以捕获这些异常,并一定有相应的机制来处理它,确保不会产生司机、死循环或其它对操作系统的损害,从而保证了整个程序运行的安全性。 8.简单述throw语句和throws关键字之间的差别。 答:throw语句是在一个方法中用来直接抛出异常对象,其格式是: throw 异常对象; throws关键字是用一个方法声明首部,用来指出这个方法中可能产生若干种异常,其格式:[方法修饰符] 返回类型方法名(参数表)throws 异常类型表 { /*方法体*/ } 二、填空题 1.所有Java应用程序都必须包含的一个类方法是 main() 。 2.面向对象程序设计语言的三种重要特性是封装性、继承性和多态性。

浅谈阿拉伯伊斯兰文化的开放性与保守性

浅谈阿拉伯伊斯兰文化的开放性与保守性 杨格西北民族大学外国语学院兰州 730000 摘要:文化是世界人民特定价值观的集合体,文化没有好坏之分,但却可以采用包容性标准进行评价。某一种文化的开放程度与保守程度也决定了对于其他文化的取舍程度,阿拉伯伊斯兰文化作为世界四大文化体系之一,关于它的评价和讨论一直没有停止过。本文将从开放性和保守性两个相对视角来对阿拉伯伊斯兰文化展开探究。 关键词:阿拉伯伊斯兰文化;开放性;保守性 阿拉伯伊斯兰文化是由阿拉伯人与穆斯林各族人民共同创造的,其糅合了东西方古代优秀文化,尤其是汲取了希腊罗马文化的特征,属于阿拉伯人固有文化、伊斯兰文化以及波斯、古希腊、古罗马、古印度等多种文化源流汇合而成的新文化。所以,可以说阿拉伯伊斯兰文化是贯通东西方文化的重要交流媒介,其本身就具有很强的包容性。 1 阿拉伯伊斯兰文化的开放性 1.1 开放性的形成 阿拉伯伊斯兰文化的产生本身就是建立在多种文化融合基础上的。早在公元7世纪之初的阿拉伯部落林立、缺乏统一的文化思想,直至穆罕默德传播伊斯兰教,才使得阿拉伯人成为了信仰伊斯兰教的穆斯林,建立了政教合一的国家。然后,阿拉伯伊斯兰文化发展的历史必然伴随着穆斯林向东西方扩张的历史,阿拉伯人先后征服多个国家建立起“阿拉伯帝国”,其中原有的阿拉伯伊斯兰文化与其它民族的优秀文化进行了交融发展,使得伊斯兰教成为世界性宗教的同时,也使得阿拉伯伊斯兰文化成为融合古代多种优秀文明的综合性文化。其中包括语言、文学、艺术、哲学、医学、天文学、游艺、美术、工艺、占星学等多种文明成果糅合在一起,涉及到波斯、古希腊、罗马、印度以及中国等各种优秀的古典文化。 1.2阿拉伯伊斯兰文化与其他文化的交互影响 阿拉伯伊斯兰文化善于汲取其它文化的优势来弥补自己的不足,在长期的征服战争过程中,阿拉伯伊斯兰文化得到了迅速传播,并且在唐朝时期传入中国,对其他文化造成了深刻影响。然而,早期的阿拉伯伊斯兰文化毕竟存在局限性,尤其是在社会制度与思想文化上与其他优秀文化相比处于劣势,古代印度、埃及、罗马、叙利亚等国家的文明程度要高于阿拉伯人,所以,当阿拉伯人在传播伊斯兰教的同时也在积极吸收其他民族先进的文化,各种民族文化在阿拉伯人的精神世界中相互渗透和融合进而逐渐形成更具开放性和兼容性的阿拉伯伊斯兰文化。尤其是在阿拔斯朝时期所掀起的“翻译古典文明运动”高潮,使得阿拉伯人大量吸收了来自其他民族的优秀文化,越来越多的其他文化纷纷以阿拉伯文为载体而被保存下来。同时随着伊斯兰教向世界范围内的推广,其他民族也在积极学习阿拉伯伊斯兰文化,阿拉伯语也成为许多民族的通用语言。可以说,阿拉伯人在接纳和吸收外来文化的过程中,对于其他民族文化相互交流与传播产生了积极影响,对世界文明发展做出了巨大贡献。阿拉伯文明发挥着承前启后的重要作用,为近代文明的产生奠定了文化基础,为东西方优秀文化的交流与传播发挥了桥梁作用,使得大量的东西方古代优秀的文化精华传播到世界多地,推动了世界文明的发展。正如赫伯特·格特沙尔克所说的“全世界都应感谢阿拉伯这个媒介”一样,阿拉伯伊斯兰文化在很大程度上起到了古代东西方文明的保存与传播作用,例如中国中国古代的四大发明就是在中世纪通过阿拉伯伊斯兰文明传入欧洲的。与此同时,阿拉伯人不仅是文化的传播者,也是创新者,他们在翻译其他优秀文化过程中,会融合进入更有价值的解释和评论,为世界文化发展做出贡献,如果没有阿拉伯伊斯兰文化的开放性,那么世界文明发展的脚步无疑将会延缓。 2 阿拉伯伊斯兰文化的保守性

信仰伊斯兰教的国家和地区

信仰伊斯兰教的国家和地区 伊斯兰国家和地区还有:文莱、印尼、巴基斯坦、孟加拉、马尔代夫、阿富汗、伊朗、伊拉克、叙利亚、黎巴嫩、约旦、沙特阿拉伯、科威特、巴林、卡塔尔、阿拉伯联合酋长国、阿曼、阿拉伯也门共和国、也门民主人民共和国、土耳其、巴勒斯坦、埃及、苏丹、利比亚、突尼斯、阿尔及利亚、摩洛哥、毛里塔尼亚、塞内加尔、冈比亚、几内亚、塞拉利昂、马里、乍得、吉布提、索马里、科摩罗、尼日尔和西撒哈拉,一共45个国家和地区。 有的国家穆斯林虽不占人口多数,但由于受伊斯兰教影响,也宣布为伊斯兰国家,参加了伊斯兰会议,如亚洲的马来西亚、非洲的几内亚比绍、布基纳法索、喀麦隆、乌干达、加蓬等。 90%的穆斯林属逊尼派,10%的穆斯林是什叶派,而将近三分之二的什叶派穆斯林生活在伊朗,伊朗是四个什叶派穆斯林占主导的国家之一,此外还有伊拉克、阿塞拜疆和巴林。 有些国家居住着大量的穆斯林,如印度、俄罗斯和中国。许多人认为欧洲大部分的穆斯林属于移民,这种说法只适合于西欧,因为在欧洲的另一些地区,如俄罗斯、阿尔巴尼亚、科索沃的穆斯林均属于本地居民,这说明,欧洲半数以上的穆斯林都是本土居民。

报告统计,世界范围内,最大的穆斯林聚居区分布在以下十个国家。 1:印度尼西亚,202867000,占总人口的88.2%。 2:巴基斯坦,174082000,占总人口的96.3%. 3:印度,160945000,占总人口的13.4%。 4:孟加拉国,145312000,占总人口的89.6%. 5:埃及,78513000,占总人口的94.6%。 6:尼日利亚,78056000,占总人口的50.4%. 7:伊朗,73777000,占总人口的99.4%。 8:土耳其,73619000,占总人口的98%。 9:阿尔及利亚,34199000,占总人口的98%。 10:摩洛哥,31993000,占总人口的99%。 世界上穆斯林民族最单纯的国家是沙特阿拉伯和巴林,100%都是穆斯林;其次是土耳其,人口7千万,穆斯林占99%。穆斯林人口最多的国家是印度尼西亚,2亿3千万人口中穆斯林占88%以上,其余的人口信仰基督教、印度教或佛教。非洲穆斯林最多的国家是尼日利亚,有7千多万。亚洲的穆斯林人口大国有巴基斯坦,全国1亿5千万人口中穆斯林占97%;其次是孟加拉国国,1亿4千万人口中,穆斯林占83%,在这两个国家只有

JAVA基础-第3章类与对象-练习题-200910

第3章类与对象 一.选择题 1.下列不属于面向对象编程的特性是(D)。 A.封装性 B. 继承性 C. 多态性 D. 编译执行 2.下列类的声明中不合法的是(C)。 A. class People{…} B. class 植物{…} C. Class A{…} D. public class 共有类{… 3.下列方法的声明中不合法的是(C)。 A. float area(){…} B. void area(){…} C. double area(d){…} D. int area(int r){…} 4. 下列构造方法(构造器)的调用中正确的是(C)。 A. 按照一般的方法调用 B. 由用户直接调用 C. 只能通过new自动调用 D. 被系统调用 5.下列程序运行的结果是(A)。 class Book{ int width; int length; } public class A{ static void f(Book p){ p.width=20; p.length=40; } public static void main(String args[]){ Book b=new Book(); b.width=10; b.length=20; f(b); System.out.print(" "+b.width); System.out.print(" "+b.length); } } A. 20 40 B. 10 40 C. 10 20 D. 以上都不对 6.下列程序运行的结果是(D)。 public class A{ static void f(int y){ y=y+10; } public static void main(String args[]){ double x=10; f(x); System.out.println(x); } }

印度教和伊斯兰教冲突的原因是什么

印度教和伊斯兰教冲突的原因是什么 印度作为宗教信仰风气浓重的国家,教派之争就成了这个国家的标志,那你知道印度教和伊斯兰教冲突的原因是什么吗?下面是印度教和伊斯兰教冲突的原因介绍,一起来看看吧。 印度教和伊斯兰教冲突的原因1.宗教信仰的不同引发冲突 印度教是产生于印度次大陆的古老宗教,伊斯兰教则随着穆斯林的入侵而传入印度。印度教与伊斯兰教在信仰、法律、道德标准、习俗、服饰、语言等方面都有不同,甚至截然对立之处。如印度教崇拜以三大神为主的众神,伊斯兰教崇拜安拉。印度教徒宣扬轮回转世和解脱,伊斯兰教宣扬“末日审判”。这种信仰和价值观的不同是教派冲突的重要原因。 2.国际形势的变化刺激了教派主义的发展 20世纪80年代以来,由于世界范围内伊斯兰原教旨主义势力的蔓延,使印度教徒有一种危机感,刺激了印度教教派情绪的增长。冷战结束后,两大营垒的对抗不复存在,意识形态的斗争淡化,民族和宗教争端成为日益突出的热点问题,这种国际大背景的变化为印度教教派主义情绪的蔓延提供了温床。 3.教派主义组织有意识地煽动人们的教派情绪 印度教教派组织“国民志愿服务团”、“世界印度教大会”,为了扩大影响,利用罗摩庙-巴卑尔清真寺大做文章,推波助澜,煽动印

度教教徒的教派情绪,鼓吹建立“印度教国家”,恢复“罗摩盛世”,导致教派冲突愈演愈烈。 4.教派主义政党有意识地利用宗教矛盾捞取政治好处 具有浓厚教派色彩的印度人民党就是靠打教派主义牌起家的。1982年该党在印度人民院选举中只有两个席位,由于利用罗摩庙址和清真寺之争大做文章,异军突起,获得印度教选民的支持,首先在北方邦执掌权柄,接着又在全国组成联合政府。近年来,以瓦杰帕伊为首的温和派为了照顾其他政党的利益,教派色彩有所淡化,但初衷未改,去年,瓦杰帕依称修建罗摩庙是一个“尚未完成的任务”,引发一片批评之声。 5.政治和经济利益之争 在经济全球化和信息时代,印度教徒和穆斯林在就业、教育、升迁等方面的竞争更加激烈,也是引发双方冲突的一个重要原因。 两教冲突为何愈演愈烈从穆斯林以“剑与火”征服印度之日起,印度教徒与穆斯林之间的矛盾和冲突就没有停止过。英国殖民主义者入侵印度后,利用印度教与伊斯兰教的矛盾,实行“分而治之”的政策,挑拨印度教徒和穆斯林之间的关系,造成严重的教派流血冲突,最终导致印巴分治。印巴分治期间,出现了大规模的民族迁徙和流血冲突,50多万人惨遭杀戮,数百万人流离失所。主张教派团结和“非暴力”原则的圣雄甘地也被狂热的印度教教派分子杀害。 印度的宪法规定印度是一个世俗主义国家。尼赫鲁政府提倡世俗主义,承认各个宗教存在的合理性,主张各宗教一律平等,和睦相处。

类和对象 笔记

类与对象(笔记) 定义对象的类 1.类就像苹果派的配方(对象代表现实世界可以明确标识的一个实体,凡事看到的物体或者看不到的气体都算是对象。) 2.对象像苹果派(对象的行为是由方法定义的) 3.类里面有:数据域(就是对象的属性或者状态或者特征)、方法、构造方法(特殊类型方法、可以完成任何动作) 举个例子:人就像一个类: (数据域)属性:两条腿 两双手 智商 (当方法别调用时对象可以完成的动作)方法:说话 走路 跑 当对象调用方法的时候,就是要求对象完成一个动作。 一个对象是类的实例。类可以创建多个对象。创建实例的过程为实例化。 Java使用变量数据域、使用方法定义动作、还提供了一种陈伟构造方法的特殊类型的方法。 类:1.数据域 书写格式:(1.变量类型类型名、2.变量类型类型名=变量值) 2.构造方法(与类名相同,同时没有void和返回值,但可以用public) 书写格式:(类名(参数类型、参数名)构造方法的前面不能出现的是static final synchronized ,abstact native ,void,但是可以出现的是public private) 3.方法(有返回值,要返回给main) 书写格式(方法名(参数类型、参数名):返回值[必须是一个返回值,同时必须是一个具体的值]) 使用构造方法构造对象 1.构造方法必须与具备所在类相同的名字 2.构造方法没有返回类型,甚至连void也没有 3.构造方法是创建一个对象使用new操作符是调用的。构造方法的作用是初始化对象。 (为什么要用到构造方法!这个就是理由,同时可以构造多个构造方法,但要有不 同的签名)这样更容易用不同的初始数据值来构造对象。 4.构造方法是用来构造对象的。 可以不写构造方法,但是类中没有明确定义任何构造方法时会自动提供 通过引用变量访问对象 创新的对象在内存中分配空间。它们可以通过引用变量来访问。 对象是通过对象应用变量来访问的,该变量包含对象的引用。 格式:类名对象引用变量=new 类名();

类与类之间的关系

类与类之间存在以下关系: (1)泛化(Generalization) (2)关联(Association) (3)依赖(Dependency) (4)聚合(Aggregation) 1.泛化(Generalization) [泛化] 表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。 父类父类实例=new 子类() [UML图](图1.1) 2.依赖(Dependency) [依赖] 对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。 依赖关系表现在局部变量,方法的参数,以及对静态方法的调用 [现实例子] 比如说你要去拧螺丝,你是不是要借助(也就是依赖)螺丝刀(Screwdriver)来帮助你完成拧螺

丝(screw)的工作 [UML表现](图1.2) 3.关联(Association) [关联] 对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。[具体表现] 关联关系是使用实例变量来实现[现实例子] 比如客 3.关联(Association) [关联] 对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。 [具体表现] 关联关系是使用实例变量来实现 [现实例子] 比如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司 [UML图] (图1.3) (4)聚合(Aggregation) [聚合] 当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。 [具体表现] 与关联关系一样,聚合关系也是通过实例变量来实现这样关系的。关联关系和聚合关系来语

类和对象练习题

类和对象 一、选择题 1、下面对方法的作用描述不正确的是:( d ) A、使程序结构清晰 B、功能复用 C、代码简洁 D、重复代码 2、方法定义的变量:( b ) A 、一定在方法所有位置可见B、可能在方法的局部位置可见 C、在方法外可以使用 D、在方法外可见 3、方法的形参:(a) A、可以没有 B、至少有一个 C、必须定义多个形参 D、只能是简单变量 4、方法的调用:(c) A、必须是一条完整的语句 B、只能是一个表达式 C、可能是语句,也可能是表达式 D、必须提供实际参数 5、return 语句:( d) A、不能用来返回对象 B、只可以返回数值 C、方法都必须含有 D、一个方法中可以有多个return 语句 6、void 的含义:(d) A、方法体为空 B、方法体没有意义 C、定义方法时必须使用 D、方法没有返回值 7、main()方法的返回类型是:( c ) A 、boolean B、int C、void D、static 8、方法重载所涉及的方法:( a ) A、有相同的名字 B、参数个数必须不同 C、参数类型必须不同 D、返回类型必须不同 9、下面关于类和对象之间关系的描述,正确的是( c ) A、联接关系B、包含关系C、具体与抽象的关系D、类是对象的具体化 10、下面关于java中类的说法哪个是不正确的( c ) A、类体中只能有变量定义和成员方法的定义,不能有其他语句。 B、构造方法是类中的特殊方法。 C、类一定要声明为public的,才可以执行。

D、一个java文件中可以有多个class定义。 11、下列哪个类声明是正确的( d) A、public void H1{…} B 、public class Move(){…} C、public class void number{} D、public class Car{…} 12、下面的方法声明中,哪个是正确的(c) A、public class methodName(){} B、public void int methodName(){} C、public void methodName(){} D、public void methodName{} 13、下述哪些说法是不正确的?( b ) A、实例变量是类的成员变量 B、实例变量是用static关键字声明的 C、方法变量在方法执行时创建 D、方法变量在使用之前必须初始化 14、下面对构造方法的描述不正确是( b)。 A、系统提供默认的构造方法 B、构造方法可以有参数,所以也可以有返回值 C、构造方法可以重载 D、构造方法可以设置参数 15、定义类头时,不可能用到的关键字是( b)。 A、class B、private C、extends D、public 16、下列类头定义中,错误的是( )。 A、public x extends y {...} B、public class x extends y {...} C、class x extends y implements y1 {...} D、class x {...} 17、设A为已定义的类名,下列声明A类的对象a的语句中正确的是( ) 。 A、float A a; B、public A a=A( ); C、A a=new int( ); D、static A a=new A( ); 18、设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( a )。 A、void X(int k ){ i=k; } B、X(int k ){ i=k; } C、X(int m, int n ){ i=m; j=n; } D、X( ){i=0;j=0; } 19、有一个类A,以下为其构造方法的声明,其中正确的是

JAVA类与对象习题

JAVA类与对象习题 一、写出一个类People,并由该类做基类派生出子类Employee和Teacher。其中People 类具有name、age两个保护成员变量,分别为String类型、整型,且具有公有的getAge 成员函数,用于返回age变量的值。Employee类具有保护成员变量empno,Teacher类有teano和zc成员变量。 二、(1)创建Rectangle类,添加属性width、height; (2)在Rectangle类中添加两种方法计算矩形的周长和面积; (3)编程利用Rectangle输出一个矩形的周长和面积 三、(1)设计一个User类,其中包括用户名、口令等属性以及构造方法(至少重载2 个)。获取和设置口令的方法,显示和修改用户名的方法等。编写应用程序测试User 类。 (2)定义一个student类,其中包括用户名、姓名、性别、出生年月等属行以及init()——初始化各属性、display()——显示各属性、modify()——修改姓名等方法。实现并测试这个类。 (3)从上题的student类中派生出Granduate(研究生)类,添加属性:专业subject、导师adviser。重载相应的成员方法。并测试这个类。 四、项目名称:Bank Account Management System 银行账户管理系统简称BAM 练习1:(面向对象基础语法) 写一个账户类(Account), 属性: id:账户号码长整数 password:账户密码 name:真实姓名 personId:身份证号码字符串类型 email:客户的电子邮箱 balance:账户余额 方法: deposit: 存款方法,参数是double型的金额 withdraw:取款方法,参数是double型的金额

浅析伊斯兰法与伊斯兰教的关系

浅析伊斯兰法与伊斯兰教的关系 【摘要】在伊斯兰世界里,法律与宗教从来就不是相互分离的。在法律被披上宗教外衣的同时,宗教也一定程度上被赋予了法律的权威。伊斯兰教与伊斯兰法就是这样千百年来不断的相互推动,共同作用于全世界穆斯林的法治、道德、传统观念之中,使得法律没有沦为僵死的教条,也使得宗教没有退化为私人的狂信①。 【关键词】伊斯兰;婚姻制度;法律;宗教 一、从面纱到伊斯兰婚姻制度 “你对信女们说,叫她们降低视线,遮蔽下身,莫露出首饰,除非自然露出的,叫她们用面纱遮蔽胸膛……”②不论是从《古兰经》中这则训诫还是从其语法都不难得出如下结论:其一,伊斯兰妇女应遮蔽“羞体”,不可外露于丈夫、父亲、丈夫的儿子以外的人;其二,伊斯兰妇女为伊斯兰男性的附属。 首先,就婚姻本身而言,传统伊斯兰法认为婚姻是一种特殊买卖契约。阿拉伯半岛在伊斯兰教产生以前盛行买卖婚姻,妇女只是作为婚姻买卖的对象。而在伊斯兰教产生以后,男性应向女性给付聘礼,作为女性出让其性权利的回报。 其次,《古兰经》中有明确规定:“你们可以择娶你们爱悦的女人,各娶两妻、三妻、四妻;如果你们恐怕不能公平地待遇她们,那么,你们只可以各娶一妻……” ③而在现代信奉伊斯兰教较多的阿拉伯国家能看到几座一模一样挨在一起的房屋,其中很有可能分别居住着一位男性穆斯林的一个个妻子。也就是说,一位适龄的伊斯兰男性只要有足够的抚养能力并且能公平对待他的每一个妻子,他就同时可以与四名女子结婚。这并不代表伊斯兰国家与穆斯林本身的滞后与不开化,相反,是伊斯兰教与伊斯兰法不断进步的体现。因为在伊斯兰教产生初期男性穆斯林可以无限制娶妻,而最多择娶四名女的规定无疑是对无限制的多妻制的妥协与限制。 再次,从婚姻的实质要件和程序要件来看,古代伊斯兰各学派有不同的主张,但概括的看,伊斯兰教认可童婚制,结婚年龄比较低,例如穆罕默德迎娶阿伊莎时她的年龄仅有七岁。而在结婚程序上,穆斯林男女的婚姻都须有伊斯兰信徒在场作证。 此外,《古兰经》中还规定了许多结婚的禁止性条件,例如:女性穆斯林不得嫁给伊斯兰信徒以外的人;血亲不得结婚;姻亲不得结婚;不得超过最高娶妻限额等。《古兰经》中还规定了一些特殊的婚姻制度,例如:女子被休后必须等待三个经期才能结婚,这样用来保证该女子未孕育其丈夫的孩子。所以,《古兰经》中所规定的伊斯兰婚姻制度不仅渗透在伊斯兰法中,也已深深渗透每一位伊斯兰信徒的思想之中。他们的宗教信仰从人类认知深度和思维能力上表现出很高的水平,体现出其对未知探索上已达到了整体、普遍、统一性认识。[1]他们无

类与对象作业1_2012_参考答案

1.类的定义 ?类的成员包括 –数据成员与成员函数 ?类定义的三种形式 –声明与实现不分离,写在{}内 –声明与实现分离,放在同一个文件中 –声明与实现分离,放在两个文件中 ?类声明:放在头文件中,命名:类名.h,包含: –数据成员的定义 –成员函数的原型说明语句 ?类实现:放在源程序文件中,命名:类名.cpp,包含: –成员函数的定义:要在每个成员函数的函数名前加:类名:: –增加文件包含命令,包含类声明文件,如:#include”circle.h” 2.类的使用 ?编写main 函数 –放在源程序文件中,命名:test.cpp –增加文件包含命令,包含类声明文件,如:#include”circle.h” –创建对象 –测试各个成员函数,形式为 ?对象名.公有成员函数名(实参表) 类与对象1_2012_参考答案 4-1.编写圆类Circle,包含: 一个名为radius的double型数据成员,表示圆形的半径。 数据成员的获取函数getRadius和设置函数setRadius。 一个名为getArea()的函数,返回圆形的面积。 一个名为getPerimeter()的函数,返回圆形的周长 编写一个测试程序,它创建2个Circle类对象,将第一个圆形的半径设置为2.5,第2个圆形的半径设置为3.5,并输出两个圆形对象的半径、面积和周长。 //以下为Circle类的声明部分:circle.h class Circle { public: double getArea(); double getPerimeter(); double getRadius(); void setRadius(double); private: double radius; }; //以下为Circle类的实现部分: circle.cpp #include"circle.h"

基督教与伊斯兰教的冲突

在漫长的历史长河中,伊斯兰与西方之间曾屡屡上演征服与反征服,压迫与反压迫的历史画面。可以说,自伊斯兰教在阿拉伯半岛诞生之日起,便拉开了东西方两大世界性宗教对抗的历史序幕。在这场十字架与新月的长期较量中,起初是伊斯兰世界占上风。他们向西跨过直布罗陀海峡,攻占西班牙,把欧洲的基督教国家挤到了西北角一个非常狭小的空间。谈到这段历史,英国历史学家汤因比指出:“第一次遭遇发生在西方社会尚处在幼年之时,那时,伊斯兰教已是阿拉伯人所处的辉煌时代的一种特殊的宗教了。在那一次冲突中,穆斯林几乎占领了西方原有领土的一半,只差没有使自己成为全世界的主人。”甚至到1683年,奥斯曼帝国还再度包围了维也纳。此后,西方文明在经受了来自东方的严峻考验之后,逐步恢复成长并开始恃机反击。从1095年到1291年,在罗马教廷到组织下,西方基督教国家打着“反对异教徒”,夺回“圣墓”和“圣地”的宗教口号,发达了倡导两个世纪的“十字军东征”。这次的不幸经历使“伊斯兰教和基督教之间为此长期互相仇视。” 进入资本主义时代后,西方工业革命及由此带来的生产力的巨大发展,政治经济结构和思想观念的巨大变革,使西方在同伊斯兰世界的斗争中取得了压倒性优势。“这时,穆斯林世界面对的不再是十字军时代好战的基督教,而是传教士、教育家和商人,是大炮和舰只,是科学技术。穆斯林在拥有新文化、新生活秩序的西方手下,遭到了失败和耻辱。”从1798年拿破仑入侵埃及时起,西方国家掀起了新一轮的征服狂潮。面对西方世界建立在现代工业基础上的巨大政治军

事优势,伊斯兰世界的应战与西方完全不在同一个级别上。“对多数穆斯林来说,殖民主义使他们联想起十字军东征。欧洲的挑战与侵略无非是另一场好战的基督教对伊斯兰教的战争。”这意味着,西方的现代入侵不仅使传统的伊斯兰政治制度开始瓦解,而且也使广大穆斯林的宗教感情和民族精神受到伤害。而对基督教西方的咄咄进逼和伊斯兰历史就无可挽回的衰落,广大穆斯林激忿、沮丧,却又无可奈何。这种由来已久的社会心理上的彼此敌对,“在双方心灵上或共同的潜意识中留下了永久伤痕,伤痕下面的创口至今还很敏感,最最轻微的压力就会使其再次颤跳。”这种基于历史冲突形成的思维定势,又因近现代以后西方国家对伊斯兰世界的新一轮殖民扩张而得到进一步验证。“对穆斯林来说,殖民主义与历史上的十字军东征如出一辙。欧洲的挑战与侵略无非是另一场基督教诉诸于伊斯兰教的军事性战争。欧洲的扩张和霸权归结于它的固有的基督教文化的优越感。”从而使双方业已形成的心灵鸿沟越来越难以弥合。 西方殖民侵略造成的历史阴影尚未在广大穆斯林心头完全消退,中东新独立国家便又开始面临以色列咄咄逼人的挑战。而以色列在中东的强大存在严重威胁着整个阿拉伯世界的基本生存与民族尊严。在阿拉伯国家看来,1948年以色列的建国被看成是欧洲殖民主义最胆大妄为的例证。以色列在政治、经济方面与西方的密切联系,及犹太教在信仰体系上与基督教的亲缘关系,使得“他们(伊斯兰国家)以及以色列和西方都把以色列看作西方文明的前哨战和堡垒。”因此,在某种意义上,反对以色列的斗争就意味着反对帝国主义的战争。

类与对象部分作业题

第四章类与对象习题 基本概念与基础知识 填空题(知识点) 4.1.1 引入类定义的关键字是()。类的成员函数通常指定为(),类的数 据成员通常指定为()。指定为()的类成员可以在类对象所在域中的任何位置访问它们。通常用类的()成员表示类的属性,用类的()成员表示类的操作。 答案: (1) (2)公有的 (3)私有的 (4)公有的 (5)数据 (6)函数 4.1.2 类的访问限定符包括()、()和()。私有数据通常由() 函数来访问(读和写)。这些函数统称为()。 答案: (1)(公有的) (2)(私有的) (3)(保护的) (4)公有的成员函数 (5)类的接口 4.1.3 通常在逻辑上,同一类的每个对象都有()代码区,用以存储成员函数。而 在物理上通常只有()代码区。只有在()定义,并()的函数和加了关键字()的函数例外。 答案: (1)独立的 (2)共用的 (3)在类说明中 (4)不包括循环等复杂结构 (5) .1.4 中支持三种域:()、()、()。函数域被包括在()中,全局域被包括在()中。指示符以关键字开头,后面是关键字(),最后是()。这样表示以后在该名字空间中所有成员都()。如不使用指示符则在使用时要加::,称为()运算符。 答案: (1)局部域() (2)名字空间域()

(3)类域() (4)局部域 (5)名字空间域 (6) (7)名字空间名 (8)可以直接被使用 (9)域 4.1.5 引用通常用作函数的()和()。对数组只能引用()不能引用()。 答案: (1)参数 (2)返回值 (3)数组元素 (4)数组名本身 .6 构造函数的任务是()。构造函数无()。类中可以有()个构造函数,它们由()区分。如果类说明中没有给出构造函数,则编译器会()。拷贝构造函数的参数是(),当程序没有给出复制构造函数时,系统会自动提供()支持,这样的复制构造函数中每个类成员()。 答案: (1)初始化数据成员 (2)函数返回类型说明 (3)多 (4)不同的参数表 (5)自动给出一个默认的构造函数 (6)同一类对象的引用 (7)默认的的复制构造函,称为默认的按成员语义支持。 (8)被依次复制 .7 一个类有()个析构函数。()时,系统会自动调用析构函数。 答案: (1)一 (2)对象注销时 .8 运算符重载时,其函数名由()构成。成员函数重载双目运算符时,左操作数是(),右操作数是()。 答案: (1)关键字和该运算符 (2)对象 (3)该函数的参数 4.9面向过程的程序设计中程序模型描述为(),面向对象程序设计的程序模型可描述 为()。 答案:

伊斯兰教的形成与阿拉伯国家的产生有什么关系

伊斯兰教的形成与阿拉伯国家的产生有什么关系? 随着伊斯兰教对异教的征服和对伊斯兰教教义的推广,阿拉伯统一国家逐渐拓大,形成明显带有伊斯兰教色彩的政教合一的神权国家,所以伊斯兰教在阿拉伯统一国家形成中无论从政治、经济、思想上都起到了很大的作用。 背景 7世纪阿拉伯半岛正处于社会剧烈动荡和重大变革的时期。商人贵族的剥削、压迫加剧了阿拉伯社会的阶级矛盾,各氏族部落矛盾和民族矛盾,错综交织,十分尖锐;战争和动乱严重破坏生产力和经济的发展,引起阿拉伯人民起了对超越氏族部落之上的权威需要,他们渴望摆脱半岛日益严重的社会困境,而建设新生活,幻想借助神灵的权威,来实现现世的理想生活。伊斯兰教的产生正是反映了阿拉伯人民的这种迫切需求。 穆罕默德为了把阿拉伯人从异教奴役和社会危机中拯救出来,企图通过一神信仰,把阿拉伯各个部落纷繁不一的多神信仰统一起来。决定首先对半岛原始宗教加以改造。公元610年,他40岁时安拉召唤穆罕默德作了他的使者。公元622年,穆罕默德及信徒全部迁往麦地那,在实现了麦地那的统一后,以伊斯兰教共同信仰代替部落血缘关系,建立了以“乌玛”为形式的政教合一的政权,从此他的信徒越来越多,不久穆罕默德成为麦地那宗教、政治、军事和司法的最高领袖。穆罕默德以安拉“启示”的名义,完成了伊斯兰教义体系及各项制度的创建。在“为安拉之道而战”的号召下,他领导穆斯林武装同麦加贵族进行了战争,628年,以朝觐为由,率军至麦加近郊,麦加贵族被迫妥协,协议向其国王和部落首领宣传伊斯兰教,以扩大影响,630年,麦加贵族最终接受伊斯兰教,并承认穆罕默德的先知地位,麦加全城居民宣布归信伊斯兰教。从此,麦加克尔白成为世界穆斯林礼拜的朝向和朝觐的中心。631年末,半岛各部落相继归信伊斯兰教,承认穆罕默德的领袖地位,基本上实现了阿拉伯半岛的政治统一。到632 年他去世时,阿拉伯半岛统一基本完成,成为一个坚强的民族共同体,并为阿拉伯统一国家的产生奠定了群众基础。 伊斯兰教 伊斯兰教是阿拉伯半岛社会经济、政治和宗教发展演变的必然产物。 伊斯兰教是一种宗教、行政、军事三位一体的组织,这种组织为统一国家的形成提供了组织形式。 严格的一神教反映了统一国家的政治要求。“除安拉外,别无神灵。穆罕默德是安拉的使者”。这种一神教的信仰,反映了阿拉伯贵族统一国家的政治要求。同时,伊斯兰教教义和经典,是伊斯兰教阿拉伯国家的政治纲领。它为建立统一的阿拉伯国家奠定了政治基础。 伊斯兰教反对血亲复仇,近亲婚配和遗弃女婴;禁止高利贷和赌博行为;提倡赈济贫民,宽待和释放奴隶;强调保护个人财产的所有权。并相应地规定了一系列的政策,在一定程度上改善了劳动者处境,为社会稳定创造了条件,使得阿拉伯半岛广大下层民众迅速的皈依了伊斯兰教,为新生的麦地那政权构筑起了坚实的社会基础,也为建立统一的阿拉伯民族国家,成为每一个穆斯林生活的基本总则,奠定了物质基础

实验四-类与对象

实验四类与对象 1.实验目的 1、使用类来封装对象的属性和行为; 2、掌握对象的组合以及参数传递; 3、掌握类变量与实例变量,以及类方法与实例方法的区别 2.实验内容 1、参考教科书,完成下面实验: 1)实验1 Tank类 2)实验2 计算机与光盘 3)实验3 家族的姓氏 4)实验4 三角形、梯形和圆形的类封装 5)实验5 实例成员与类成员 2、完成习题: 1)根据要求修改实验1,改进speedUP方法,使得Tank类的对象加速时不能将speed值超过220;增加一个刹车方法:void brake(),Tank类的对象调用它能将speed的值变成0。 2)根据要求修改实验2,主类中再增加一个CD的对象,然后将计算机中的数据(data数组)复制到CD对象中。 3、提高题 编写储蓄账户类及测试类,模拟存款,参考以下运行方式: (1)新开5个储蓄账户,各储蓄账户的编号、户名在新开储蓄账户时初始化,假设每位用户新开储蓄账户时都存入了一笔钱。 (2)提示用户从键盘输入储蓄账户编号。 (3)若输入的储蓄账户编号与新开的5个储蓄账户编号之一匹配,则提示用户从键盘输入存款金额,存款金额必须大于0,否则显示错误提示,直到用户输入的存款金额大于0为止。 (4)相应储蓄账户的余额被更新。 (5)存款完成后,提示存款成功,显示该储蓄账户的编号、户名、余额。 (6)若输入的储蓄账户编号与新开的5个储蓄账户编号均无法匹配,显示错误提示,并询问是否还要继续存款。 (7)用户输入yes,继续执行步骤(2),否则显示退出信息。 最基本要求:绘制UML类图;储蓄账户的余额必须确保大于等于0。 3.实验步骤 参考教材中相关的实验。 4.评分标准

类与类之间的关系及代码表现

类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就介绍一下。 类与类之间存在以下关系: (1)泛化(Generalization) (2)关联(Association) (3)依赖(Dependency) (4)聚合(Aggregation) UML图与应用代码例子: 1.泛化(Generalization) [泛化] 表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。 [具体表现] 父类父类实例=new 子类() [UML图](图1.1) 图1.1Animal类与Tiger类,Dog类的泛化关系 [代码表现] 1.class Animal{} 2.class Tiger extends Animal{} 3.public class Test 4.{ 5. public void test() 6. { 7. Animal a=new Tiger(); 8. } 9.} 2.依赖(Dependency) [依赖] 对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。 [具体表现]

依赖关系表现在局部变量,方法的参数,以及对静态方法的调用 [现实例子] 比如说你要去拧螺丝,你是不是要借助(也就是依赖)螺丝刀(Screwdriver)来帮助你完成拧螺丝(screw)的工作 [UML表现](图1.2) 图1.2 Person类与Screwdriver类的依赖关系 [代码表现] 1.public class Person{ 2. /** 拧螺丝 */ 3. public void screw(Screwdriver screwdriver){ 4. screwdriver.screw(); 5. } 6.} 3.关联(Association) [关联] 对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。 [具体表现] 关联关系是使用实例变量来实现 [现实例子] 比如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司 [UML图] (图1.3) 图1.3 公司和员工的关联关系 [代码表现] 1.public class Company{ 2. private Employee employee;

相关文档