`
heipn
  • 浏览: 37971 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

slice中的类-摘抄

阅读更多

除了接口ice还允许定义类,类与接口区别在与它可以拥有成员,与结构的区别在于它可以拥有行为。类支持集成,因此是多态的。

• 简单类
   class  test{
     string name;
     void sayhello();
  }
能够使用结构的地方都可以使用类,但是从性能上考虑,如果结构够用了就请尽量使用结构。


• 类的继承
   使用extends关键字,派生类不能重新定义基类的数据成员

• 类的继承语义
   如果客户端和服务端都理解一个实例的基类和派生类,当客户端需要传回是基类时,服务器端传回了派生类,此时客户端也会得到派生类,但当客户端只连接了基类没有链接派生类时,客户端会把这个这个派生类切回基类。

• 自引用类
   class Link{
      string value;
      Link next;
   };

  interface Link{
     string getValue();
    Link* getNext();
};
之间的区别

Link*是指返回的是Link的代理,它代表了某个地方的对象,如果你调用返回值的getValue方法,可能是某个servant会收到你的请求并返回给你一个值,对于代理而言他是存在它的服务器进程中的,我们是通过远程调用访问了这个对象的状态。

而在class Link中 next是一个数据成员,它是一个本地实例的值,不能代表另外地址空间中的对象。这意味着我们的队列链是在当前地址空间的,读取某个值是对当前地址空间的操作。

• 类Vs结构
类比结构:
   类支持继承,类可以自引用,类可以有操作,类可以实现接口,类的这些额外的特性带来实现上的代价,无论是生成代码的尺寸还是运行时消耗的内存和cpu的周期数量。所以使用结构你可以使程序有更好的性能和使用更少的内存。

• 有操作的类
类上的操作总是在调用者的地址空间中执行,也就是说类的操作时本地操作。

• 类在构架上的影响
没有继承、只有数据成员的类不会带来构架问题。
一旦你使用了有操作的类,你实际上就是使用客户端原生代码,因此你能够再享受到接口提供的实现透明性。当你能够控制部署环境是你应该使用有操作的类,如果不是这样你最好使用接口或者没有操作的类。

• 实现接口的类
通过implements实现接口

类型ID
以全局::起头,加上你module的类型::module,加上自身名字结束。


Object上的操作
Ice_ping操作,测试对象是否可以到达
Ice_isA
Ice_ids

本地类型
任何slice定义都可以有local修饰符。如果用local修饰,slice编译器不会为相应类型生成整编代码。本地类型永远不能被远地访问。
分享到:
评论

相关推荐

    PyPI 官网下载 | slice_db-2.0.1-py3-none-any.whl

    资源来自pypi官网。 资源全名:slice_db-2.0.1-py3-none-any.whl

    Time-slice-rotation-algorithm.rar_slice

    current->time_slice--; return current; } else { // 时间片耗尽,将进程放回队尾 rear--; // 因为队列是循环的,所以这里可以不用考虑溢出 current->time_slice = initial_time_slice; // 重置时间片 return...

    Python库 | slice_db-2.0.1-py3-none-any.whl

    在Python中,"slice"通常指的是通过索引或范围来选取序列的一部分,因此这个库可能提供了对数据库查询结果进行切片操作的能力,允许用户以更灵活的方式处理大量数据。 在Python的数据库操作中,通常会使用ORM(对象...

    slice-group-by:group_by Haskell函数的实现,仅可对str进行切片

    它适用于每种Iterator类型, slice-group-by仅适用于slice和str ,这是该库的强大功能,它由于而非常快。 slice-group-by支持多种搜索算法(即,和),并且可以从头开始返回分组。例子线性搜索不变组如果两个元素在...

    slice-mapper-api-4.0.0-incubator.zip

    开源项目“slice-mapper-api-4.0.0-incubator.zip”中的主要内容是一个名为“UpdateableTreeSet”的类,它是对Java标准库中`java.util.TreeSet`的一个扩展。这个扩展的主要目的是为了解决原生`TreeSet`在元素更新时...

    前端开源库-css-slice-imgs

    【前端开源库-css-slice-imgs】是一个专为前端开发者设计的开源库,其核心功能是帮助优化CSS中的背景图像处理。在Web开发中,为了提高页面加载速度和减少HTTP请求,开发者常会将一张大的图片切割成多个小图,然后...

    slice-flip-flops.docx

    关于7 series FPGA一些文件的翻译 因为网上找不到相关翻译 是机翻加上自己校对了一些 供大家参考 一起学习

    time-slice-polling-method-.zip_polling method_slice_时间片轮询法_时间轮询_

    单片机程序编写的主体思想--多任务分层思,即参考时间片轮询法!内容包括思想介绍和一个简单的例程。

    Slice-button-hover-effect

    在实际项目中,"Slice-button-hover-effect" 可能会包含多个CSS和JavaScript文件,如`styles.css`用于样式定义,`script.js`用于交互逻辑,以及可能的HTML结构文件。开发者通常会在`Slice-button-hover-effect-main`...

    计算h264码流slice的数目及大小

    H.264中的slice分为三种类型:I-slice(Intra-slice,只包含I帧的宏块),P-slice(Predicted-slice,包含P帧的宏块)和B-slice(Bidirectional-slice,包含B帧的宏块)。I帧不依赖于其他帧,P帧依赖于前一帧,B帧...

    center_slice-masterx.zip

    在本文中,我们将深入探讨Flutter框架中的`center_slice`概念,并通过给定的`center_slice-master.zip`压缩包文件中的示例进行详细解释。`center_slice`是一种在UI设计中常用于图片或背景图像处理的技术,它允许图像...

    slice-file-upload

    ReactSSR 这是一个由Typescript编写的react ssr演示。 它基于react16.x和webpack4.x 特点: 在开发模式... 打开在浏览器中查看它。npm run build 生成用于生产的应用程序。npm run start 启动服务器进行生产。参考网址

    h264-sps-slice-nalunit解析VS2017.rar

    本文将围绕“h264-sps-slice-nalunit”这一主题,深入探讨H264编码中的关键组件——Sequence Parameter Set (SPS)、Picture Parameter Set (PPS)、Slice以及Network Access Layer Unit (NAL Unit),并结合Visual ...

    Slice-and-dist-count:录像的循环播放可以切出个别动物

    在IT行业中,尤其是在数据分析与处理领域,"Slice-and-dist-count"是一种可能的视频分析方法,尤其适用于生物行为学研究。这个方法允许用户从录像中精确地切割出特定动物的活动片段,并对这些片段进行计数和分析。在...

    bigslice:用于生物合成基因簇数据大规模分析的高度可扩展,用户交互工具

    使用pip安装BiG-SLiCE : 来自PyPI(稳定) user@local:~ $ pip install bigslice 从来源(出血边缘) user@local:~ $ git clone git@github.com:medema-group/bigslice.git user@local:~ $ pip install ./big...

    西门子S7-1200PLC如何使用Slice方式对变量进行寻址?.docx

    Siemens S7-1200 PLC 使用 Slice 方式对变量进行寻址是指在编程中使用 Slice(片段访问)方式来访问和操作变量。Slice 方式可以选择包含所声明变量的特定地址区域,可以访问宽度为 1 位、8 位、16 位或 32 位的区域...

    Slice-of-a-Pizza:那个美味的比萨中最神奇的一块。

    "Slice-of-a-Pizza"项目看起来是一个以Python编程语言为基础的软件开发实例,可能是用于模拟披萨订购系统或者实现披萨切割算法。在这个项目中,我们可以期待学习到以下几个与Python和软件开发相关的知识点: 1. **...

    Go-轻松在golang中处理slice的库

    这些功能通常会通过面向对象的方式封装在类(在Golang中是结构体和方法)中,提供清晰的API供用户使用。例如,一个`Slice`结构体可能有`Append`, `Remove`, `Find`, `Sort`, `Merge`, `Split`, `Copy`, `Reverse`, `...

Global site tag (gtag.js) - Google Analytics