OOP11
本章介绍BCB中几种比较高级组件的使用方法。 中几种比较高级组件的使用方法。 本章介绍 中几种比较高级组件的使用方法 定时器Timer §6.1 定时器Timer 定时器组件是非可视化组件, 选项卡中。 定时器组件是非可视化组件,在System选项卡中。 选项卡中 定时器组件在许多方面有应用, 定时器组件在许多方面有应用,比如要制作一个屏 幕保护程序, 就可以加入一个定时器, 幕保护程序 , 就可以加入一个定时器 , 每隔一段时间 定时刷新屏幕; 利用间隔时间较短的定时器, 定时刷新屏幕 ; 利用间隔时间较短的定时器 , 还可以 做各种动画效果。 做各种动画效果。 一、Timer组件的重要属性 组件的重要属性 Enabled:该属性为True,表明这个定时器在当前状态 :该属性为 , 下处于活动状态;该属性为False, 表明该定时器处于 下处于活动状态 ; 该属性为 , 非活动状态。 非活动状态。 Interval:定时器的间隔时间是由Interval性指定,该属 :定时器的间隔时间是由 性指定, 性指定 性存储了以毫秒为单位的时间间隔的数字。 性存储了以毫秒为单位的时间间隔的数字。
TrackBar属性中 属性中Min、 Max和 Position等的作用与 属性中 、 和 等的作用与 ScrollBar控件中的对应属性相同,其他属性如下: 控件中的对应属性相同, 控件中的对应属性相同 其他属性如下: Frenquency: 该属性表示标度的稀疏程度 , 也就是每 : 该属性表示标度的稀疏程度, 隔多远有一个刻度, 比如把Frequency设定为 , 则每 设定为5, 隔多远有一个刻度 , 比如把 设定为 两个刻度之间的位置相差5。该属性的默认值为1。 两个刻度之间的位置相差 。该属性的默认值为 。 PageSize: 该属性决定鼠标在游标左右点击 : 该属性决定鼠标在游标左右点击TrackBar 的轨迹条区域时游标一次前进的Position数。 的轨迹条区域时游标一次前进的 数 Orientation: 该属性控制TrackBar的摆放方向 , 其取 : 该属性控制 的摆放方向, 的摆放方向 值有: 值有:trHorizontal,trVertical。 , 。 TickMark:该属性用于指出刻度出现的位置。 :该属性用于指出刻度出现的位置。 6.2.3 UpDown控件 UpDown控件 UpDown位于 位于Win32选项卡中, 在需要设置连续的 选项卡中, 位于 选项卡中 整数值时常用到该控件。 整数值时常用到该控件。
假如Timer1->Interval=1000, 则每隔一秒就产生 , 假如 产生一个OnTimer事件。 事件。 产生一个 事件 应用定时器除了运用Enable属性打开 关闭定时器 应用定时器除了运用 属性打开/关闭定时器 属性打开 以外,其他的工作就是编写OnTimer事件处理程序。 事件处理程序。 以外,其他的工作就是编写 事件处理程序 §6.2 滚动组件 6.2.1 ScrollBar组件 ScrollBar组件 许多组件自身带有滚动条, 许多组件自身带有滚动条,如Memo、RichEdit和 、 和 ListBox 等 。 对 于 没 有 滚 动 条 的 组 件 , 可 以 使 用 ScrollBar控件。ScrollBar在Standard选项卡中。 控件。 选项卡中。 控件 在 选项卡中 一、ScrollBar的主要属性 的主要属性 Kind: 该属性控制 : 该属性控制ScrollBar控件是处于水平还是垂直 控件是处于水平还是垂直 状态。 状态。 sbHorizontal:水平状态出现(默认值); :水平状态出现(默认值) sbVertical: 以垂直状态出现; : 以垂直控制ScrollBar的位置。 :该属性为整型,控制 的位置。 的位置 Min:该属性为整型,控制 属性的最小值。 :该属性为整型,控制Position属性的最小值。 属性的最小值 Max:该属性为整型,控制 属性的最大值。 :该属性为整型,控制Position属性的最大值。 属性的最大值 SmallChange: 该属性为整型 , 控制单击 : 该属性为整型, 控制单击ScrollBar两端 两端 的按钮时, 移动的距离。 的按钮时,ScrollBar移动的距离。该属性默认值为 。 移动的距离 该属性默认值为1。 LargeChange : 也是整 型属 性 , 用 来 控制当 直 接单 击 控制 当直 ScrollBar控件空白位置时,ScrollBar控件移动的距离。 控件空白位置时, 控件移动的距离。 控件空白位置时 控件移动的距离 LargeChange属性的默认值为 。 属性的默认值为1。 属性的默认值为 [举例 举例] 举例 二、ScrollBar的主要事件 的主要事件 OnChange:当滚动条移动时,触发该事件。 :当滚动条移动时,触发该事件。 6.2.2 TrackBar控件 TrackBar控件 TrackBar与ScrollBar相似, 它也有一个滚动条 , 可 相似, 与 相似 它也有一个滚动条, 以通过拖动滚动条实现参数的设置, 以通过拖动滚动条实现参数的设置,且TrackBar控件两 控件两 侧还可以显示刻度。 选项卡中。 侧还可以显示刻度。TrackBar在Win32选项卡中。 在 选项卡中
Orientation:该属性同TrackBar的含义相同。 :该属性同 的含义相同。 的含义相同 Wrap: 该属性是布尔类型 。 如果为 : 该属性是布尔类型。 如果为True, 则 Position将 , 将 之间循环变化: 在Min和Max之间循环变化: 和 之间循环变化 即当Position为Min时,再单击向下按钮则 即当 为 时 再单击向下按钮则Position将 将 变为最大值; 变为最大值 ; 当 Position为 Max时 , 单击向上按钮将使 为 时 Position值变为最小值。 值变为最小值。 值变为最小值 如果Wrap设置为 设置为False, 则当 如果 设置为 , 则当Position为 Min和 Max, 为 和 , 分别单击向下按钮和向上按钮时Position没有变化。该属 没有变化。 分别单击向下按钮和向上按钮时 没有变化 性默认值为 False。 。 UpDown控件常用事件 二、UpDown控件常用事件 OnClick:单击 的按钮时, :单击UpDown的按钮时, 触发该事件 , 该事件 的按钮时 触发该事件, 处理程序的定义为: 处理程序的定义为: void __fastcall TForm1::UpDown1Click(TObject *Sender, TForm1::UpDown1 TUDBtnType Button)
该控件的OnClick事件与其他控件的 事件与其他控件的OnClick事件的 该控件的 事件与其他控件的 事件的 事件处理程序的形参稍有不同,它有一个TUDBtnType 事件处理程序的形参稍有不同 , 它有一个 类型的Button参数。 当其取值为 参数。 类型的 参数 当其取值为btNext时表示单击的是 时表示单击的是 向上按钮,如取值为btPrev则表示单击的是向下按钮。 则表示单击的是向下按钮。 向上按钮,如取值为 则表示单击的是向下按钮 6.2.4 ScrollBox组件 ScrollBox组件 ScrollBox提供一个可以滚动的区域,在该区域中可 提供一个可以滚动的区域, 提供一个可以滚动的区域 以放置其他组件,即属于容器组件。 以放置其他组件,即属于容器组件。当所容纳的组件边 界超过区域的边界时, 会自动产生滚动条。 界超过区域的边界时,ScrollBox会自动产生滚动条。该 会自动产生滚动条 组件提供给那些没有滚动条的组件。 组件提供给那些没有滚动条的组件。 §6.3 日期类组件 6.3.1 DateTimePicker组件 DateTimePicker组件 该组件主要用于处理DateTime 类型的日期和时间数 该组件主要用于处理 选项卡中。 据,在WIN32选项卡中。其主要属性有: 选项卡中 其主要属性有: Date:记录了该组件 的日期,比如 的日期,比如2000-1-1。 : 。
一、UpDown的主要属性 UpDown的主要属性 Position , Min 和 Max : 3 个 属 性 的 意 义 和 用 法 与 ScrollBar的属性用法和意义相同。 的属性用法和意义相同。 的属性用法和意义相同 Associate : 该 属 性属 于 TWinControl 类 的 对 象 , 指 定 属性属 UPDown控件所关联的控件 。 运行时 控件所关联的控件。 控件所关联的控件 运行时UpDown将自动出 将自动出 现在Associate属性指定的控件的左侧或右侧,且高度与 属性指定的控件的左侧或右侧, 现在 属性指定的控件的左侧或右侧 其相同。 其相同。 通常, 属性被设置为一个Edit控件 , 当 控件, 通常 , Associate属性被设置为一个 属性被设置为一个 控件 UpDown控件的 控件的Position属性值变化时 , 它会自动地转 属性值变化时, 控件的 属性值变化时 化为字符串显示在Edit控件中。 控件中。 化为字符串显示在 控件中 AlignButton:该属性是枚举型的,控制 :该属性是枚举型的,控制UpDown与其所 与其所 关 联 的 控 件 的 相 对 位 置 。 其 取 值 可 以 为 upLeft 或 upRight。其默认值为 。其默认值为upRight。 。 Increment:该属性用于控制当单击按钮时,Position增 :该属性用于控制当单击按钮时, 增 减的数量。默认值为1。 减的数量。默认值为 。
Time:记录了该组件 的时间,比如 :11:12。 : 的时间,比如10: : 。 Kind:枚举型属性 , 设置组件显示类型 , 值为 : 枚举型属性,设置组件显示类型,值为dtkDate, , 显示日期;值为dtkTime,显示时间;缺省值为 显示日期;值为 ,显示时间;缺省值为dtkDate。 。 DateFormat:枚举型属性,设置日期的显示格式。 :枚举型属性,设置日期的显示格式。 MaxDate 与MinDate:分别设置日期变化的最大最小值。 :分别设置日期变化的最大最小值。 6.3.2 MonthCalendar组件 MonthCalendar组件 MonthCalendar以月历方式显示日期,在WIN32选项 以月历方式显示日期, 以月历方式显示日期 选项 卡中。其主要属性有: 卡中。其主要属性有: Date:记录了组件 的日期,比如 的日期,比如2000-1-1。 : 。 MultiSelect与EndDate:这两个属性实现了组件的多选功 与 : 能。当MultiSelect为True,按住 为 ,按住Shift键可以连续选择多个 键可以连续选择多个 日 期 , 起 始 日 期 记 录 在 Date 属 性 中 , 结 束 日 期 记 录 在 EndDate中。默认值为 中 默认值为false。 。 ShowToday与ShowTodayCircle: 这两个属性与组件显示 与 : 的当前日期有关系。 的当前日期有关系。
aop的介绍作用和功能有哪些
aop的介绍作⽤和功能有哪些 AOP是OOP的延续,是软件开发中的⼀个热点,也是Spring框架中的⼀个重要内容,⼩编在此整理了aop的相关内容,供⼤家参阅,希望⼤家在阅读过程中有所收获! AOP的介绍 区分 AOP、OOP在字⾯上虽然⾮常类似,但却是⾯向不同领域的两种设计思想。
OOP(⾯向对象编程)针对业务处理过程的实体及其属性和⾏为进⾏抽象封装,以获得更加清晰⾼效的逻辑单元划分。
⽽AOP则是针对业务处理过程中的切⾯进⾏提取,它所⾯对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
这两种设计思想在⽬标上有着本质的差异。
上⾯的陈述可能过于理论化,举个简单的例⼦,对于“雇员”这样⼀个业务实体进⾏封装,⾃然是OOP/OOD的任务,我们可以为其建⽴⼀个“Employee”类,并将“雇员”相关的属性和⾏为封装其中。
⽽⽤AOP设计思想对“雇员”进⾏封装将⽆从谈起。
同样,对于“权限检查”这⼀动作⽚断进⾏划分,则是AOP的⽬标领域。
⽽通过OOD/OOP对⼀个动作进⾏封装,则有点不伦不类。
换⽽⾔之,OOD/OOP⾯向名词领域,AOP⾯向动词领域。
关系 很多⼈在初次接触 AOP 的时候可能会说,AOP 能做到的,⼀个定义良好的 OOP 的接⼝也⼀样能够做到,我想这个观点是值得商榷的。
AOP和定义良好的OOP 的接⼝可以说都是⽤来解决并且实现需求中的横切问题的⽅法。
但是对于OOP 中的接⼝来说,它仍然需要我们在相应的模块中去调⽤该接⼝中相关的⽅法,这是 OOP 所⽆法避免的,并且⼀旦接⼝不得不进⾏修改的时候,所有事情会变得⼀团糟;AOP 则不会这样,你只需要修改相应的 Aspect,再重新编织(weave)即可。
当然,AOP 也绝对不会代替 OOP。
核⼼的需求仍然会由 OOP 来加以实现,⽽ AOP 将会和 OOP 整合起来,以此之长,补彼之短。
aop的名称含义 Aspect Oriented Programming(AOP)是较为热门的⼀个话题。
程序员常见面试20题问答
程序员常见面试20题问答1. 什么是OOP?OOP是面向对象编程的缩写,它是一种程序设计范例,通过对象的建立、组织和交互来实现软件功能和服务。
它是一种具有继承、封装和多态等特性的编程范式。
2. 什么是面向对象编程的特点?面向对象编程的特点包括封装、继承和多态。
封装是指将数据和行为组合在一起形成类,隐藏类的内部实现细节,提供接口让用户使用。
继承是指子类继承的属性和方法可以从父类中获得,减少代码重复。
多态是指同一个方法可以有不同的实现方式,提高代码灵活性。
3. 什么是RESTful API?RESTful API是一种设计风格,它基于HTTP协议,通过URL和HTTP协议中的GET、POST、PUT和DELETE等动作来实现对Web资源的操作,它是一种轻量级的Web服务架构。
4. 什么是MVC?MVC是一种软件设计模式,它将应用程序分为三个部分:模型、视图和控制器。
模型用来处理数据,视图用来展示用户界面,控制器用来连接模型和视图,接收用户操作并处理响应。
5. 什么是设计模式?设计模式是指经典的、经过验证的、可重用的软件设计经验。
它们提供了通过使用已知的最佳实践来解决特定问题的方法。
6. 什么是数据结构?数据结构是计算机科学中的一种基础技术,用于组织和存储数据,包括数组、链表、队列、堆栈、树、图等。
7. 什么是算法?算法是计算机科学中的一种基础技术,用于解决特定问题的方法和步骤。
常见的算法包括排序、查找、贪心法、动态规划等。
8. 什么是Git?Git是一种分布式版本控制系统,用于协作开发和管理代码修改历史。
它可以跟踪代码的修改,回溯到历史版本,分支和合并代码等功能。
9. 什么是CI/CD?CI/CD是一种持续集成/持续交付的开发方法,目的是在较短的时间内快速开发出高质量的软件。
它实现了自动化构建、测试、部署和发布等过程,提高了开发效率和交付效率。
10. 什么是NoSQL?NoSQL是一种非关系型数据库,相对于传统的关系型数据库,它提供了更好的横向扩展、灵活性和性能等优点。
OOP练习题
OOP练习题一、选择题1.对象的实例如何调用自己的方法?我的方法Da.$self=>mymethod();b.$this->mymethod();c、 $current->mymethod();d、 $this::mymethod();2、以下是一个类的声明,其中有两个成员属性,对成员属性正确的赋值方式是(d)classdemo{private$one;static$two;functionsetone($value){$this->one=$value;}$demo=newdemo();a、 $demo->one=\b.demo::$two=\c.demo::setone(\d.$demo->two=\3.以下语句错误:(d)不能继承由a.final关键字标识的类b.final关键字标识既可以标识成员方法,也可以标识成员属性c.在静态方法中只能访问静态成员d.将类中的成员属性定义为常量使用const4.一个类继承父类并同时实现多个接口。
(b)类名扩展了父类名、接口1、接口2,。
{}b.class类名implements接口1,接口2,……extends父类名{}c.class类名extends父类名implements接口,1接口2,……{}d.class类名implements父类名implements接口,1接口5.以下哪项不是PHP中的面向对象机制(d)a.类b.属性、方法c.单一继承d.多重继承6.如果成员未声明限定字符,则该属性的默认值为:(c)a.privateb。
受保护的。
平民的最终的7.php中调用类文件中的this表示(a)a、这个类生成的对象变量B.这个页面C.这个方法D.这个变量8.在php5的类的定义中,无法使用3p修饰的内容是(b)a.属性b.静态方法c.常量d.方法9.定义抽象类时要添加的修改关键字(b)a.publicb interfacec。
【国家自然科学基金】_oop_基金支持热词逐年推荐_【万方软件创新助手】_20140803
2013年 序号 1 2 3 4
科研热词 致贫 脆弱人群 现金卫生支出 影响因素
推荐指数 1 1 1 1
科研热词 面向方面编程 面向对象 面向agent软件工程 面向agent程序设计 软件体系结构 组织 并行运算 多agent系统 四水转化 动态演化 分布式水文模型 modcycle bigraph理论 bigraph反应系统 agent
推荐指数 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
推荐指数 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2010年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
科研热词 麻醉 靶控输注(tci) 面向特征编程 面向对象编程 遗传算法 软件产品线 计算机控制输注 药代动力学模型 船舶设计 船舶航行性能 生物医学工程 模拟退火算法 模块性 嵌入式系统 复合形法 增量 1 1 1 1 1 1 1 1 1 1 1 1
2011年 序号 1 2 3 4 5
2011年 科研热词 模型视图控制器架构 有限元 数值模拟 后处理 direct3d 推荐指数 1 1 1 1 1
2012年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
科研热词 鱼类复殖吸虫 饱和土动力学 面向方面编程 面向对象编程 软件产品线 自动采集技术 群落结构 矢量数据压缩 渤海 抽象集成 实现 多元分析 可配置 可缩放矢量图形(svg) 可变性 公共边对象化douglas-peucker改进算法 oop java语言 java本地接口 green函数 douglas-peucker算法
2008年 序号 1 2 3 4 5 6 7 8 9 10 11 12
php面向对象程序设计(OOP)的61条准则
(23)尽量减少类和协作者之间传递的消息的数量。
(24)尽量减少类和协作者之间的协作量,也即:减少类和协作者之间传递的不同消息的数量。
(25)尽量减少类的扇出,也即:减少类定义的消息数和发送的消息数的乘积。
(26)如果类包含另一个类的对象,那么包含类应当给被包含的对象发送消息。也即:包含关系总是意味着使用关系。
(27)类中定义的大多数方法都应当在大多数时间里使用大多数数据成员。
(28)类包含的对象数目不应当超过开发者短期记忆的容量。这个数目常常是6。
当类包含多于6个数据成员时,可以把逻辑相关的数据成员划分为一组,然后用一个新的包含类去包含这一组成员。
(29)让系统功能在窄而深的继承体系中垂直分布。
(10)把不相关的信息放在另一个类中(也即:互不沟通的行为)。
朝着稳定的方向进行依赖.
(11)确保你为之建模的抽象概念是类,而不只是对象扮演的角色。
(12)在水平方向上尽可能统一地分布系统功能,也即:按照设计,顶层类应当统一地共享工作。
(13)在你的系统中不要创建全能类/对象。对名字包含Driver、Manager、System、Susystem的类要特别多加小心。
(41)所有的抽象类都应当是基类。
(42)所有的基类都应当是抽象类。
(43)把数据、行为和/或接口的共性尽可能地放到继承层次体系的高端。
(44)如果两个或更多个类共享公共数据(但没有公共行为),那么应当把公共数据放在一个类中,每个共享这个数据的类都包含这个类。
(45)如果两个或更多个类有共同的数据和行为(就是方法),那么这些类的每一个都应当从一个表示了这些数据和方法的公共基类继承。
c++高级用法
C++ 是一种强大的编程语言,除了基本语法和特性外,还有许多高级用法和技巧可以提升编程效率和代码质量。
以下是一些C++ 的高级用法:1. 面向对象编程(OOP):C++ 是一种面向对象的语言,允许使用类、对象、继承、多态等概念来组织代码,提高代码的可维护性和复用性。
2. 模板编程:C++ 支持模板,可以创建通用的数据结构和算法,提高代码的灵活性和可扩展性。
3. 智能指针:C++ 提供了智能指针,如`std::shared_ptr` 和`std::unique_ptr`,用于管理动态分配的内存,避免内存泄漏和资源管理问题。
4. RAII(资源获取即初始化):利用栈上对象的生命周期管理资源,如文件句柄、数据库连接等,确保资源的自动释放。
5. 移动语义和右值引用:C++11 引入了移动语义和右值引用,可以实现高效的资源管理和对象转移,提高性能。
6. Lambda 表达式:C++11 引入了Lambda 表达式,允许在代码中内联定义匿名函数,增加代码的可读性和简洁性。
7. STL(标准模板库):C++ 提供了丰富的标准模板库,包括容器、算法、迭代器等,可以加速开发过程。
8. 多线程和并发编程:C++11 引入了对多线程和并发编程的支持,可以创建和管理线程,实现并发操作。
9. 自定义操作符:C++ 允许自定义操作符的行为,可以实现自定义的操作符重载。
10. 函数指针和回调:C++ 支持函数指针,可以实现回调机制,用于事件处理等场景。
11. 元编程:利用模板和编译时计算,可以在编译阶段执行计算和生成代码,提高性能和灵活性。
这只是一些C++ 的高级用法,实际上C++ 是一个非常丰富的语言,还有许多其他的高级特性和技巧可以探索和应用。
OPPOr11工程模式代码
OPPOr11工程模式代码首先要说的是,因为安卓系统版本不同,有的是安卓7.1有的是安卓8.1,因此即便都是vivo手机,可能在具体的代码指令上面,也会稍有不同,但是也都是大同小异,具体请自测。
其次,工程模式是工程师测试使用的,若更改了工程模式下的设置,造成手机硬件问题,手机将无法再享受保修服务。
1.“*#800#”OTA开关,系统更新时要打开OTA开关才能更新。
2.“*#802#”TTFF:搜星测试,字面意思,GPS搜索卫星的测试3.“*#803#”Wi-Fi设置关于Wi-Fi的一些设置4.“*#804#”自动搜网自动重新搜索手机网络5.“*#805#”关于蓝牙的一些设置6.“*#806#”自动老化测试7.“*#807#”自动测试自动测试屏幕、背景灯、回音测试、振动、前置、后置、摄像头、角度测试、感光测试。
8.“*#808#”手动测试各项测试,如通话测试、回音测试等。
9.“*#6776#”软件版本手机各项版本号10.“*#1234#”手机固件版本号11.“*#888#”PCB号12.“*#06#”移动通信国际识别码 IEME号13.“*#*#4636#*#*”安卓通用信息手机信息14.“*#36446337#”OPPO手机通用工程模式有很多东西可以自己设置修改,拉到最底,有个项“工程模式”15.“*#8778#”格式化手机内置储存并恢复出厂设置。
16.*#06# 可查询手机串号17.*#1234# 可查询硬件代码和手机版18.*#6776# 可查询手机版本,出厂信息等19.*#*#4636#*#* 可查询电池使用情况和温度,更改网络类型20.*#800# 断言开关(别乱摁,否则无限重启)21.*#801# 工程模式开关22.*#802# GPS扫描测试23.*#803# WLAN设置24.*#804# 自动搜网25.*#805# 蓝牙测试26.*#806# 自动老化测试27.*#807# 自动测试28.*#808# 手动测试29.*#809# 回音测试。
unit02-oop基本概念
34
对象和类
类是什么?
类的通用结构
{数据,…} 私有的 公有的
{方法,…}
类的通用结构
35
对象和类
类是什么?
类定义的实例
Student类 String name String studentId Date birthDate String address … registerForCourse dropCourse chooseMajor …
• • • • • •
• • • •
课程编号 课程名称 课程所需的学时 讲授该课程的教师名单
32
对象和类
对象是什么?
对象的行为/操作/ 对象的行为/操作/方法
学生对象的行为/操作 课程对象的行为/操作 每一个操作都涉及到学 生的一个或多个属性
• • • •
注册一门课程 取消一门课程 选定一个专业 选择一个导师
28
对象和类
对象是什么? 类是什么? 实例化对象
29
对象和类
对象是什么?
实际的对象
可以被感官感知的实物 思想、感觉或行为所及的概念或物理上的东西 上课的学生 教学生的教师 上课的教室 教室里的多媒体设备 教室所在的建筑物 学生用的课本 学生所上的课程 教师所在的系别 学生获得的学位
30
对象和类
OOPLs的分类 OOPLs的分类
纯面向对象语言(Smalltalk,Java) 纯面向对象语言(Smalltalk,Java) 混合性面向对象语言 (C++)
17
面向对象程序设计语言(OOPLs) 面向对象程序设计语言(OOPLs)
C++和Java对OOP的支持 C++和Java对OOP的支持
oppoete11说明书
oppoete11说明书导航键(导航手势)是指在使用手机的“返回上一级、回到桌面、查看最近任务、切换最近任务”等操作时使用的导航手势,主要有两侧滑动手势(全面屏手势)、虚拟按键和上滑手势。
ColorOS 12及以上版本:导航键提供了全面屏手势、虚拟按键两种导航方式。
您可以进入手机「设置>系统设置>系统导航方式」,设置您需要的导航方式。
ColorOS 11.2-11.3版本:导航键提供了全面屏手势、虚拟按键两种导航方式。
您可以进入手机「设置>便捷工具>导航方式」,设置您需要的导航方式。
ColorOS 11.0-11.1版本:导航键提供了两侧滑动手势、虚拟按键、上滑手势三种导航方式。
您可以进入手机「设置>便捷工具>导航方式>(更多)」,设置您需要的导航方式。
ColorOS 7.0-7.2版本:导航键提供了两侧滑动手势、虚拟按键、上滑手势三种导航方式。
您可以进入手机「设置>便捷辅助>导航键」,设置您需要的导航方式。
1、两侧滑动手势(全面屏手势):(1)返回上一级:从屏幕左侧或右侧下部向内滑动。
(2)回到桌面:从屏幕底部向上滑动。
(3)查看最近任务:从屏幕底部向上滑动并停留。
(4)切换最近应用:从屏幕底部向左或者向右滑动。
(5)学习使用手势:进入使用手势学习场景。
(ColorOS 11及以上版本提供该功能。
)(6)隐藏手势指示条:下方手势指示条被隐藏。
(7)返回时振动:返回上一级时手机会振动。
(8)切换上一个应用:从屏幕两侧向内滑动并停留,切换上一个应用。
(9)两侧滑动手势横屏防止误触:部分应用(如游戏)横屏全屏时,手势需要2次滑动才生效。
2、虚拟按键:(1)开启功能后,在手机屏幕下方显示虚拟按键。
≡:查看最近任务□:回到桌面_:返回上一级(2)虚拟按键可隐藏。
ColorOS 7-7.2版本:打开“虚拟按键可隐藏”开关,在虚拟按键栏左侧显示“⊙”。
点击“⊙”,将隐藏虚拟按键。
OOP法规解读
OOP法规解读OOP是面向对象编程,面向对象编程是一种计算机编程架构。
1、【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。
2、【强制】所有的覆写方法,必须加@Override 注解。
说明 : getObject() 与 get0bject() 的问题。
一个是字母的 O,一个是数字的 0,加 @Override可以准确判断是否覆盖成功。
另外,如果在抽象类中对方法签名进行修改,其实现类会马上编译报错。
3、【强制】相同参数类型,相同业务含义,才可以使用 Java 的可变参数,避免使用 Object。
正例 : public User getUsers(String type, Integer... ids) {...}4、【强制】外部正在调用或者二方库依赖的接口,不允许修改方法签名,避免对接口调用方产生影响。
接口过时必须加@Deprecated 注解,并清晰地说明采用的新接口或者新服务是什么。
5、【强制】不能使用过时的类或方法。
6、【强制】Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals。
正例 : "test".equals(object); 反例 :object.equals("test"); 说明 : 推荐使用java.util.Objects#equals (JDK7 引入的工具类)7、【强制】所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。
说明: 对于 Integer var = ? 在-128 至 127 范围内的赋值,Integer 对象是在IntegerCache.cache 产生,会复用已有对象,这个区间内的 Integer 值可以直接使用 == 进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用 equals 方法进行判断。
