精华内容
下载资源
问答
  • 慕课北京大学.软件工程.第八章.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.自底向上
    正确答案:B

    2判断(2分)判断题:所有的类都必须与客观事物相对应,都必须有具体的实例。
    A.B.2.00/2.00
    正确答案:错

    3判断(2分)判断题:一个类中可以有多个操作,也可以没有操作。
    A.2.00/2.00B.
    正确答案:对

    4单选(2分)_____是描述类的所有对象的共同特征的一个数据项。
    A.实例属性B.类属性2.00/2.00C.方法属性D.对象属性
    正确答案:B

    8 下一章

    博客地址:

    展开全文
  • 属性和方法:添加 abstract 或 final 声明时, 必须写访问修饰符(public、protected、private)前,而 static 则必须写其后。 1、什么是static? static 是很常用修饰符,它被用来控制变量存储方式和...

    类、属性和方法:添加 abstractfinal 声明时, 必须写在访问修饰符(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

    展开全文
  • HybridApp 一种可以下载的Native App,其用户界面的全部或者部分元素嵌入式浏览器组件(WebView之类的)里面运行 优雅降级 一开始就构建站点的完整功能,然后针对浏览器测试和修复。认为应该针对那些最高级、最...
  • 11.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 指定一个图片无法加载时对图片描述 搜索引擎主要通过该属性来识别图片内容 如果不写该...
  • 11.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:没有限制的修饰符 ...
  • 11.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
    表示某一时刻类的具体实例和这些实例之间的具体连接关系 类 与 对象 关系 类 与 对象 关系 类图和对象图的区别 包 包 一种分组机制,把各种各样的模型元素通过内在的语义连一起成为一个整体就叫做包 ...
  • 数据逻辑结构是对数据元素之间逻辑关系描述,它可以用一个数据元素集合和定义在此集合中的若干关系来表示。数据逻辑结构有两个要素:一是数据元素集合,通常记为D;二是D上关系,它反映了数据元素之间...
  • C#全能速查宝典

    热门讨论 2014-04-26 16:16:27
    分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程常用的属性、方法、和各种技术,...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    14.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:17
    14.4 继承关于属性的一些问题.169 14.5 小 结 .172 第四部分 深入了解 C#.174 第十五章 接 口 .174 15.1 组件编程技术 .174 15.2 接 口 定 义 .177 15.3 接口成员 .178 15.4 接口实现 .182 ...
  • 你要DTD中定义一个元素,然后XML文档使用。元素的定义语法为:<!ELEMENT DESCRIPTION (#PCDATA, DEFINITION)*> 说明: "<!ELEMENT" 是元素声明,说明你要定义的是一个元素; 声明后面"DESCRIPTION",...
  • Protel DXP 是第一套完整板卡级设计系统,真正实现单个应用程序中的 集成。设计从一开始目的就是为了支持整个设计过程,Protel DXP 让你可以 选择最适当设计途径来按你想要方式工作。Protel DXP PCB 线路...
  • JavaScript王者归来

    2013-01-10 11:30:48
    7.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.软件工程 软件工程:运用现代科学技术知识来设计并构造计算机程序及为开发、...
  • 这部分是可选择配置,多数情况下可以不必使用它,如果你想定义一个新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支持原生的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:41
    29.Flash选择是否合并为单声道的属性是? A. Bit Rate B. Quality C. ExprotSettings D. Perprocessing 30.Flash为变形过渡动画的矢量图形设置形状提示的快捷操作是? A. Ctrl+Alt+S B. Ctrl+Shift+Z C....
  • 修改扩展界面支持库一,为“树形框”增加多态检查框功能,相应地添加了多个与检查框相关的属性、方法和事件。 17. 修改高级表格支持库,允许“复制选定文本()”“剪切选定文本()”“允许选择块”属性为假时复制...
  • 各学校开始逐步引入计算机今天,试卷作为考察教学成果重要手段之一,通用试卷自动生成系统升化了传统手工出卷,解决了很多问题,例如: ① 避免了不必要重复劳动,节约了人力资源及时间; ② 使用科学...
  • 这样在类的任何一处地方就都能使用。这个时候ThreadLocal大显身手了。 详情移步:https://github.com/higminteam/practice/blob/master/src/main/java/com/practice/concurrent/threadLocal 六、 线程池 在Java,...
  • Python编程入门经典

    热门讨论 2013-10-27 14:17:39
    9.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...
  • 这也意味着所有的全局变量或者方法都是window对象的属性或方法。当一个函数被调用的时候都会创建自己的执行环境,而这个函数所写的代码就开始进入这个函数的执行环境,于是由变量对象构建起了一个...
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    ANDROID 推出后可能影响产业包括移动电信业,软件开发业,手机制造业,以消费者为核心状 态 。 对消费者影响 � 高档手机选择面增加。 � A ndroid 设计初期就考虑了与现其有业务融合,改变以往从...
  • 默认情况下,存储全局目录中的对象属性是那些经常用到内容,而非全部属性。 - g' B e* Q1 b' N! @ 4 k9 H# a7 L4 C" C全局目录服务器是一个域控制器,活动目录建立第一个域控制器自动成为全局目录服务器。全局...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

在类的属性定义中引入可见性