-
慕课软件工程(第八章.表达客观事物的术语—类)
2020-03-18 12:45:24慕课北京大学.软件工程.第八章.UML-1.表达客观事物的术语—类0 目录8 UML-18.3 表达客观事物的术语—类8.3.1课堂重点8.3.2...1单选(2分)在类的属性定义中引入可见性,主要是为了支持_____这一软件设计原则。 A.抽象...慕课北京大学.软件工程.第八章.UML-1.表达客观事物的术语—类
0 目录
8 UML-1
8.3 表达客观事物的术语—类
8.3.1课堂重点
8.3.2测试与作业
1单选(2分)在类的属性定义中引入可见性,主要是为了支持_____这一软件设计原则。
A.抽象B.信息隐蔽2.00/2.00C.模块化D.自底向上
正确答案:B2判断(2分)判断题:所有的类都必须与客观事物相对应,都必须有具体的实例。
A.B.2.00/2.00
正确答案:错3判断(2分)判断题:一个类中可以有多个操作,也可以没有操作。
A.2.00/2.00B.
正确答案:对4单选(2分)_____是描述类的所有对象的共同特征的一个数据项。
A.实例属性B.类属性2.00/2.00C.方法属性D.对象属性
正确答案:B8 下一章
-
PHP面向对象中的static关键字
2018-08-31 17:08:57类、属性和方法:添加 abstract 或 final 声明时, 必须写在访问修饰符(public、protected、private)前,而 static 则必须写在其后。 1、什么是static? static 是很常用的修饰符,它被用来控制变量的存储方式和...类、属性和方法:添加
abstract
或final
声明时, 必须写在访问修饰符(public、protected、private)前,而static
则必须写在其后。1、什么是static?
static 是很常用的修饰符,它被用来控制变量的存储方式和可见性。2、为什么要引入static?
函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题:如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义一个全局的变量,但定义为一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅受此函数控制)。3、什么时候用static?
需要一个数据对象为整个类而非某个对象服务,同时又力求不破坏类的封装性,即要求此成员隐藏在类的内部,对外不可见。4、static的内部机制:
静态数据成员要在程序一开始运行时就必须存在。因为函数在程序运行中被调用,所以静态数据成员不能在任何函数内分配空间和初始化。
这样,它的空间分配有三个可能的地方,一是作为类的外部接口的头文件,那里有类声明;二是类定义的内部实现,那里有类的成员函数定义;三是应用程序的 main() 函数前的全局数据声明和定义处。
静态数据成员要实际地分配空间,故不能在类的声明中定义(只能声明数据成员)。类声明只声明一个类的“尺寸和规格”,并不进行实际的内存分配,所以在类声明中写成定义是错误的。它也不能在头文件中类声明的外部定义,因为那会造成在多个使用该类的源文件中,对其重复定义。
static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间,静态
数据成员按定义出现的先后顺序依次初始化,注意静态成员嵌套时,要保证所嵌套的成员已经初始化了。消除时的顺序是初始化的反顺序。5、static的优势:
可以节省内存,因为它是所有对象所公有的,因此,对多个对象来说,静态数据成员只存储一处,供所有对象共用。静态数据成员的值对每个对象都是一样,但它的值是可以更新的。只要对静态数据成员的值更新一次,保证所有对象存取更新后的相同的值,这样可以提高时间效率。6、引用静态数据成员时,采用如下格式:
<类名>::<静态成员名>
如果静态数据成员的访问权限允许的话(即public的成员),可在程序中,按上述格式来引用静态数据成员。7、注意事项:
(1) 类的静态成员函数是属于整个类而非类的对象,所以它没有this指针,这就导致了它仅能访问类的静态数据和静态成员函数。
(2) 不能将静态成员函数定义为虚函数。
(3) 由于静态成员声明于类中,操作于其外,所以对其取地址操作,就多少有些特殊,变量地址是指向其数据类型的指针,函数地址类型是一个“nonmember函数指针”。non-member是:非成员函数
非成员函数包括:静态函数、内联函数、非静态函数。
成员函数和非成员函数最大的区别在于成员函数可以是虚拟的而非成员函数不行。
虚函数为了重载和多态的需要,常常需要在基类中定义虚函数,纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数。
成员函数的优势是能够方便的进行动态绑定,实现多态。(4) 由于静态成员函数没有this指针,所以就差不多等同于nonmember函数,结果就产生了一个意想不到的好处:成为一个callback函数,使得我们得以将 C++ 和 C-based X Window 系统结合,同时也成功的应用于线程函数身上。
//自定义函数 function study($username){ echo $username. ' is study...<br/>'; } function play($username){ echo $username .' is playing...<br/>'; } //自定义调用 function doWhat($funcName,$param){ $funcName($param); } doWhat('study','king'); doWhat('play','lisi');
(5) static并没有增加程序的时空开销,相反它还缩短了子类对父类静态成员的访问时间,节省了子类的内存空间。
(6) 静态数据成员在<定义或说明>时,前面加关键字static。
(7) 静态数据成员是静态存储的,所以必须对它进行初始化。
(8) 静态成员初始化与一般数据成员初始化不同。初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆;
初始化时不加该成员的访问权限控制符private、public等;
初始化时使用作用域限定符来标明它所属类;
双冒号 :: 被认为是作用域限定操作符,用来指定类中不同的作用域级别。:: 左边表示的是作用域,右边表示的是访问的成员。系统定义了两个作用域,self和parent。self表示当前类的作用域,在类之外的代码是不能使用这个操作符的。
所以我们得出静态数据成员初始化的格式:
<数据类型><类名>::<静态数据成员名>=<值>Hook::listen('view_filter', $content);
(9) 为了防止父类的影响,可以在子类定义一个与父类相同的静态变量,以屏蔽父类的影响。这里有一点需要注意:我们说静态成员为父类和子类共享,但我们有重复定义了静态成员,这会不会引起错误呢?不会,我们的编译器采用了一种绝妙的手法:name-mangling 用以生成唯一的标志。
Name-mangling是指,在连接过程中,在目标文件符号表中使用的名字通常和编译目标文件的源程序中的名字不一样,编译器将目标源文件中的名字进行调整。
静态成员
在类中,静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏的原则,即保证了安全性。因此,静态成员是类的所有对象中共享的成员,而不是某个对象的成员。使用静态数据成员可以节省内存,因为它是所有对象所公有的,因此,对多个对象来说,静态数据成员只存储一处,供所有对象共用。静态数据成员的值对每个对象都是一样,但它的值是可以更新的。只要对静态数据成员的值更新一次,保证所有对象存取更新后的相同的值,这样可以提高时间效率。
静态成员,它们都属于类的静态成员,而不是对象成员。因此,对静态成员的引用不需要用对象名。
在静态成员函数的实现中不能直接引用类中说明的非静态成员,可以引用类中声明的静态成员。如果静态成员函数中要引用非静态成员时,可通过对象来引用。
参考:
http://www.php.cn/php-weizijiaocheng-372124.html
https://www.cnblogs.com/liu-zhao/p/6805537.html
http://www.php.cn/php-weizijiaocheng-374139.html
https://www.cnblogs.com/yyy251/p/6388691.html
https://www.cnblogs.com/clphp/p/5129429.html -
工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究
2017-02-28 21:22:19HybridApp 一种可以下载的Native App,其用户界面的全部或者部分元素在嵌入式浏览器组件(WebView之类的)里面运行 优雅降级 一开始就构建站点的完整功能,然后针对浏览器测试和修复。认为应该针对那些最高级、最... -
JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)
2013-05-07 17:18:0711.2.2 类的可见性 293 11.2.3 final——让类不可被继承 295 11.2.4 理解final关键字 296 11.2.5 总结:类的修饰符 297 11.3 方法的修饰符 297 11.3.1 方法的访问控制符 298 11.3.2 public:没有限制的修饰符 ... -
前端css+html+布局笔记
2017-09-14 20:03:59使用图片标签可以向页面中引入一个外部图片 属性 src 指向一个外部图片的路径,可以使用相对路径 alt 指定一个在图片无法加载时对图片的描述 搜索引擎主要通过该属性来识别图片的内容 如果不写该... -
Java入门1·2·3:一个老鸟的Java学习心得.PART2(共3个)
2013-05-07 17:19:1411.2.2 类的可见性 293 11.2.3 final——让类不可被继承 295 11.2.4 理解final关键字 296 11.2.5 总结:类的修饰符 297 11.3 方法的修饰符 297 11.3.1 方法的访问控制符 298 11.3.2 public:没有限制的修饰符 ... -
Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)
2013-05-07 17:20:1211.2.2 类的可见性 293 11.2.3 final——让类不可被继承 295 11.2.4 理解final关键字 296 11.2.5 总结:类的修饰符 297 11.3 方法的修饰符 297 11.3.1 方法的访问控制符 298 11.3.2 public:没有限制的修饰符 ... -
软件工程教程
2012-07-06 23:10:29表示在某一时刻类的具体实例和这些实例之间的具体连接关系 类 与 对象 关系 类 与 对象 关系 类图和对象图的区别 包 包 一种分组机制,把各种各样的模型元素通过内在的语义连在一起成为一个整体就叫做包 ... -
计算机二级公共基础知识
2011-04-30 14:00:09数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和定义在此集合中的若干关系来表示。数据的逻辑结构有两个要素:一是数据元素的集合,通常记为D;二是D上的关系,它反映了数据元素之间... -
C#全能速查宝典
2014-04-26 16:16:27分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用的属性、方法、类和各种技术,... -
C#微软培训教材(高清PDF)
2009-07-30 08:51:1714.4 继承中关于属性的一些问题.169 14.5 小 结 .172 第四部分 深入了解 C#.174 第十五章 接 口 .174 15.1 组件编程技术 .174 15.2 接 口 定 义 .177 15.3 接口的成员 .178 15.4 接口的实现 .182 ... -
css入门笔记
2018-05-15 14:58:57独立于任何网页位置处,声明一个样式文件(.css为后缀),在文件中声明样式,在使用的网页中引入.css文件。 使用步骤: 1.创建样式表文件(.css) 2.在样式文件中编写样式规则 3.在网页中对样式文件进行引入 <... -
C#微软培训资料
2014-01-22 14:10:1714.4 继承中关于属性的一些问题.169 14.5 小 结 .172 第四部分 深入了解 C#.174 第十五章 接 口 .174 15.1 组件编程技术 .174 15.2 接 口 定 义 .177 15.3 接口的成员 .178 15.4 接口的实现 .182 ... -
XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解
2008-12-05 08:39:07你要在DTD中定义一个元素,然后在XML文档中使用。元素的定义语法为:<!ELEMENT DESCRIPTION (#PCDATA, DEFINITION)*> 说明: "<!ELEMENT" 是元素的声明,说明你要定义的是一个元素; 声明后面的"DESCRIPTION",... -
基于AT89S52 单片的频率计
2010-01-04 08:47:37Protel DXP 是第一套完整的板卡级设计系统,真正实现在单个应用程序中的 集成。设计从一开始的目的就是为了支持整个设计过程,Protel DXP 让你可以 选择最适当的设计途径来按你想要的方式工作。Protel DXP PCB 线路... -
JavaScript王者归来
2013-01-10 11:30:487.3.1 构造函数--一个双精度浮点数封装类的例子 7.3.2 缺省构造和拷贝构造 7.3.3 对象常量 7.4 对象的销毁和存储单元的回收 7.5 JavaScript的内置对象 7.5.1 Math对象 7.5.2 Date对象--创建一个简单的日历 7.5.3 ... -
软件工程知识点
2012-12-02 21:34:25(2)危机原因:软件的不可见性,系统规模庞大,生产工程化程度低,对用户需求关心不 够,对维护不够重视,开发工具自动化程度低。 5.软件工程 软件工程:运用现代科学技术知识来设计并构造计算机程序及为开发、... -
DWR.xml配置文件说明书(含源码)
2010-01-15 11:02:17这部分是可选择性配置的,多数情况下可以不必使用它,如果你想定义一个新的creator或者converter那么就必须在部分中声明,but do double check on the ones that are currently available first. 在init部分的作用是... -
ExtAspNet_v2.3.2_dll
2010-09-29 14:37:08-ExtAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程中会反映到页面中,但并不是所有的控件属性都支持AJAX改变。 -加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)... -
ExtAspNet v2.2.1 (2009-4-1) 值得一看
2010-04-01 09:41:27-ExtAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程中会反映到页面中,但并不是所有的控件属性都支持AJAX改变。 -加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)... -
asp.net知识库
2015-06-18 08:45:45动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个时间转换的问题,顺便谈谈搜索技巧 .net中的正则表达式使用高级技巧 (一) C#静态成员和... -
中文版Excel.2007高级VBA编程宝典 1/2
2012-04-06 16:00:16他在书中分享了自己15 年来使用Excel 的经验,毫无保留地传授了学习和使用Excel 的所有知识,为读者掌握Excel 提供了绝佳的途径。本书的前两个版本均已获得巨大成功,在前两版的基础上,本书升华了已有的精华,并... -
flash shiti
2014-03-14 10:32:4129.Flash中选择是否合并为单声道的属性是? A. Bit Rate B. Quality C. ExprotSettings D. Perprocessing 30.Flash为变形过渡动画中的矢量图形设置形状提示的快捷操作是? A. Ctrl+Alt+S B. Ctrl+Shift+Z C.... -
易语言程序免安装版下载
2011-04-07 09:28:50修改扩展界面支持库一,为“树形框”增加多态检查框功能,相应地添加了多个与检查框相关的属性、方法和事件。 17. 修改高级表格支持库,允许“复制选定文本()”“剪切选定文本()”在“允许选择块”属性为假时复制... -
毕业设计(带论文)—试卷生成系统.rar
2020-05-23 21:52:13在各学校开始逐步引入计算机的今天,试卷作为考察教学成果的重要手段之一,通用试卷自动生成系统升化了传统的手工出卷,解决了很多问题,例如: ① 避免了不必要的重复劳动,节约了人力资源及时间; ② 使用科学的... -
这样在类的任何一处地方就都能使用。这个时候ThreadLocal大显身手了。 详情移步:https://github.com/higminteam/practice/blob/master/src/main/java/com/practice/concurrent/threadLocal 六、 线程池 在Java中,...
-
Python编程入门经典
2013-10-27 14:17:399.6.3 线程——在相同的进程中 完成多个工作 141 9.7 本章小结 143 9.8 习题 144 第10章 创建模块 145 10.1 研究模块 145 10.1.1 导入模块 147 10.1.2 查找模块 147 10.1.3 理解模块 148 10.2 创建模块和包 149 10.3... -
前端开发基础-JavaScript
2020-11-20 18:08:12这也意味着所有的全局变量或者方法都是window对象的属性或方法。当一个函数在被调用的时候都会创建自己的执行环境,而这个函数中所写的代码就开始进入这个函数的执行环境,于是由变量对象构建起了一个... -
新版Android开发教程.rar
2010-12-14 15:49:11ANDROID 的推出后可能影响的产业包括移动电信业,软件开发业,手机制造业,在以消费者为核心的状 态 。 对消费者的影响 � 高档手机选择面增加。 � A ndroid 在设计初期就考虑了与现其有业务的融合,改变以往从... -
微软活动目录管理管理简明手册
2010-12-08 11:04:17默认情况下,存储在全局目录中的对象属性是那些经常用到的内容,而非全部属性。 - g' B e* Q1 b' N! @ 4 k9 H# a7 L4 C" C全局目录服务器是一个域控制器,活动目录建立的第一个域控制器自动成为全局目录服务器。全局...
-
spider数据挖掘-----19、selenium
-
java jks cer pkcs12_SSL 证书格式普及,PEM、CER、JKS、PKCS12
-
51单片机条形码识别设计.rar
-
C语言大作业-学生成绩管理系统
-
strace 跟踪进程中的系统调用
-
Samba 服务配置与管理
-
MySQL 性能优化(思路拓展及实操)
-
第一百题
-
java 并发 调优_2019年Java面试题(集合+并发+调优+微服务)
-
java 存储任意类型数据_JavaSE基础(100) 自定义容器类(存储任意数据类型和数据个数)-Go语言中文社区...
-
朱老师C++课程第3部分-3.6智能指针与STL查漏补缺
-
非线性电子线路的特点(一).ppt
-
linux java性能分析工具_Java性能调优工具(Linux)
-
数据库MySQL上机实验报告.docx
-
自动化测试Python3+Selenium3+Unittest
-
C++代码规范和Doxygen根据注释自动生成手册
-
C/C++反汇编解密
-
MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表
-
2021-02-28
-
财务小管家 - 2016.7z