Oop 没有初始化的OCaml数据成员

我希望使用OCaml创建具有数据成员的对象,但不一定要为数据成员指定初始值。许多示例似乎使用列表,但我想使用我创建的对象类型的单个实例。这可能吗?谢谢 class bar = object end;; class foo = object (self) val myDataMember = ((* ??? *) : bar) end;; 此外,我尝试了option关键字,但没有效果: class bar = object (self) method doIt = Printf.p

Oop 关联、聚合和组合之间的区别是什么?

关联、聚合和组合之间的区别是什么? 请从实施的角度进行解释。我认为此链接可以帮助您完成以下任务: 为了理解这些术语,我在早期编程时记得一个例子: 如果您有一个“棋盘”对象,其中包含组成为的“盒子”对象,因为如果删除了“棋盘”,盒子就没有理由再存在了 如果您有一个具有“颜色”对象的“正方形”对象,并且该正方形被删除,“颜色”对象可能仍然存在,即聚合 它们都是关联,主要区别是概念上的正如其他人所说,关联是对象之间的关系,聚合和组合是关联的类型 从实现的角度来看,聚合是通过引用类成员来获得的。例如,如

Oop 标记(或“标记”)接口是否过时?

我试图帮助同事接受OO,我发现在某些情况下,很难找到标签(或标记)接口概念的真实例子。(不包含方法的接口;仅用作标记、标记或标签)。虽然这对我们的讨论来说并不重要,但我们使用PHP作为讨论背后的平台(因为它是我们之间的共同语言)。我可能不是教OO的最佳人选,因为我的大部分背景都是高度理论化的,大约15岁,但我就是他所拥有的 在任何情况下,我发现关于标记接口的讨论很少,这让我相信它甚至没有被充分利用来保证讨论。我错了吗?标签接口在Java中使用(Serializable就是一个明显的例子)。C#甚

Oop 重构一个包含条件语句的方法,该方法具有完全不同的相同代码块;)

所以我有一个糟糕的方法,两个条件块做几乎完全相同的事情,但参数完全不同(至少在我看来)。我想像鲍勃叔叔那样打扫,但我一辈子都想不出一个整洁的方式来做。所以我来找你们,我的书呆子朋友们,看看你们如何把这些东西提炼出来,而不是让人想挖出他们的眼睛。代码是AS3,但在我看来这并没有什么区别 /** * Splits this group into two groups based on the intersection of the group * with another group. The

Oop 面向对象语言中的HAS-A,IS-A术语

我刚刚读完这本书,书中有“HAS-A”和“IS-A”两个词。有人知道他们的具体意思吗?尝试在书中搜索,但书有600页长。表示所讨论的类“有”类型的字段 表示该类从超类扩展或实现接口。在这种情况下,如果针对一个类别进行测试,的实例将返回true。aCarhas-aWheel 麻雀是一种鸟 学术上,这些术语用于决定组合和继承。这不是java特有的,而是面向对象的 IS-A意味着你可以拥有一个“是”的类。就像一个学生是一个人。这用于描述一个对象是另一个对象的子类 有时两个类之间没有IS-a关系,但“H

可用OOP概念列表

我正在为VBA中的OOP(面向对象编程)编写一些资料。 有人能给我列出VBA中可用的OOP概念吗 例如,从我的阅读中,我发现: 继承在VBA中不可用 封装概念就在这里,因为您可以使用访问修饰符“private”并构建公共属性 VBA支持某些OO概念,而不支持其他概念 使用VBA,您可以创建自己的类,也可以从这些类创建对象。但是,VBA不支持继承,并且不真正支持在诸如C++、或.NET、等OO语言中使用的术语的古典意义的“多态”。 VBA类确实支持封装和抽象。以下是我在VBA中处理OOP概念时所做

Oop 在WPF中,哪些是好的架构的快速模式?

有一次,一位同事建议我在WinForms中使用DTO,这让我省去了不少痛苦。目前我正在进行一个WPF项目,我希望至少做出大多数最佳选择,无论是标准的面向对象原则还是特定于WPF的原则。我们已经在使用MVVM了。什么是明显的,也许不是很明显的事情,我应该考虑减少编码的数量,并确保可维护性? 使用RelayCommands而不是RoutedCommands。有关它们的更多信息,请参阅本文:

Oop 对象背后的逻辑重要吗?

在基于控制台的Python翻拍经典游戏“蛇”的早期阶段,有人提交了一个补丁,在任意位置产卵食物。代码定义了一个Food类,该类运行良好,但其背后的逻辑似乎有点奇怪 我认为我们应该在食物被消费后删除它,然后再创建一个。然而,这个人只是简单地移动食物到一个新的随机位置,一旦它被消费。虽然后者在我看来似乎不合逻辑,但它似乎做了完全相同的事情,甚至可能更有效 我的问题是:是使用前一种逻辑更好,还是使用后一种逻辑更好,还是我只是对什么都不挑剔 这一切都始于:我相信这两种解决方案都很好。从内存管理的角度来说

Oop 有人能给我指出F#中的多半径(对象函数)编程的例子吗?

有人能给我指出F#中的多半径(对象函数)编程的例子吗 我特别寻找结合OO和函数式编程的示例。关于F#是一种混合语言的讨论已经很多了,但我还没有找到证明多半径编程的例子 谢谢我不知道任何F#,但我可以向您展示一个您在Scala中寻找的精确语言机制的示例。如果这没有帮助,请忽略它 class Summation { def sum(aLow : Int, aHigh : Int) = { (aLow to aHigh).foldLeft(0) { (result, numb

Oop 什么';领域模型和面向对象领域模型之间的区别是什么?

据说域模型用于捕获应用程序的问题域。这就是所需的需求,等等。但通常,这些模型与实现阶段的类非常接近 但也有一种称为面向对象领域模型的东西,据说它捕获了“问题领域的数据抽象”。通过短语“问题域的数据抽象”,我将其理解为“可以分离的问题域的层” 在这种情况下,域模型和OO域模型之间有什么区别?它们捕获的东西几乎是一样的,不是吗?这样想吧;OOP的一个关键组件是关注点的集群;对数据进行操作的方法应与该数据分组。通常,域模型会捕获问题域,但由于问题域“偏心”,域模型可能无法反映适当的关注点集群。面向对象

Oop 适配器模式和依赖关系

我毫不怀疑适配器类。我知道adapter类的目标是什么。什么时候应该使用。我怀疑的是班级建设。我查看了一些教程,它们都说我应该将“Adaptee”类作为依赖项传递给我的“Adapter”。 e、 g 这个例子是从维基百科复制的。如您所见,AdapteeClass作为依赖项传递给我的对象。问题是为什么?若我要改变一个对象的接口,很明显我将使用“新”接口,而不需要“旧”接口。为什么我需要在适配器外部创建“old”类的实例。有人可能会说我应该使用依赖注入,这样我就可以传递任何我想要的东西,但这是适配器

Oop 结构与关联的区别

在一次采访中,我被问了2,3个问题,这些问题毫无意义 死锁和线程之间的差异(我无法比较) 结构和关联之间的差异(不再具有可比性) 这些问题都是正确的吗?如果是,答案是什么。好吧,这些是不寻常的问题,但你可以回答: 及 或更短:死锁是线程可能处于的情况。这其实没什么区别 我想如果你能描述线程和死锁,那就好了。这可能是一个故意误导的问题,所以你必须真正确定你知道什么,告诉面试官没有真正的区别,因为你无法比较这两件事 结构和关联也是如此。奇怪的问题。特别是第一个问题只能通过定义两者来回答。他们是

Oop 需要设计模式-多个可交换库的外观

我有一个使用facade模式与之交互的第三方库。现在,我有一个进一步的要求,即第三方库可以很容易地更改(而不是在运行时),因此facade需要能够处理这个问题 实现这一点的最佳方法是什么?我建议创建需要是一个接口(或抽象类,无论您使用哪种语言)和多个实现的Facade。每个实现都是一个具体的第三方库: 以为动力,我建议创建一个需要有多个实现的接口(或抽象类,无论您使用哪种语言)的Facade。每个实现都是一个具体的第三方库: 由于展示得很好,你介意我问一下你是如何制作这个图形的吗?@Toma

Oop Matlab,类,不能更改实例';s属性

我在matlab中声明了一个类,这里是构造函数和函数 function Ri = RGBimages(datadir) if(isempty(dir(datadir))) warning([datadir, ' is empty']); return; end Ri.dataSrc=datadir; Ri.twoEnds = load([datadir,'\seIndex.txt']); Ri.startFrame = Ri

Oop 父类和超类之间的区别

父类和超类之间有什么区别吗?超级类仅仅是一个不从其他类继承的父类吗?我认为是一样的 您可能想区分直接父类和间接父类或超类,但我想这两个术语在这方面也不够清楚。所以,如果这是你想要表达的,最好是明确的 此外,许多编程语言都使用“super”关键字来引用(单个)直接父类。但是,即使在那里,如果你调用一个“超级”方法,而直接的父级没有实现它,它也会冒泡。它们本质上是一样的。根据语言的不同,术语也会发生变化。父类可以表示直接父类,而超类可以表示任何祖先类。此外,在java中,还有super()方法,它调

Oop 只读实体的Scala数据模型

我正在对将持久化到数据库中的实体进行建模。以用户实体为例,我希望通过以下方式处理它们: val userBeforePersisting = new User("Joe", "joe@gmail.com") // DB access code (where rs is a ResultSet) val foundUser = new User(rs.getLong("id"), rs.getString("name"), rs.getString("email")) 我希望使用相同的用户代码

在Lua(5.2)中,元表用于OOP有什么用途?

我正在努力理解元表是如何工作的,以及为什么在Lua中需要它们来创建类和继承。我为Lua找到的每个OOP示例都与上一个略有不同,但它们总是使用元表,特别是对于\uu index属性。下面是我如何实现一些简单继承的: Animal = {} function Animal.New() local self = {} self.sName = "Generic Animal" self.GetName = function(self) return self.sName e

Oop JDK和重写?

我有一个关于重写方法的问题。好的,我们这里有一个OOP,我能理解我会得到什么结果。但是jdk是如何解决的,在每种情况下使用什么实现 public class One { One() { run(); } public void run() { System.out.println("One"); } } public class Two extends One { @Override public void ru

Oop 多方法与接口

有一些语言习惯性地同时使用这两个概念吗?如果有必要的话,什么时候才有必要?每种方法的优缺点是什么 问题的背景: 我是一个新手(有一些python知识),试图更好地了解(通常)如何使用多方法和接口 我假设它们不是混合的:要么根据接口声明可用逻辑(并将其实现为类的方法),要么根据多方法声明可用逻辑。这是正确的吗 谈到一系列OOP概念是否有意义,其中: 首先是简单的子类化(数据和逻辑(方法)以及逻辑实现(方法)紧密耦合) 然后通过接口(逻辑在接口中,数据和逻辑实现在类中) 并以多方法结束(逻辑在多方

Oop 一个存储库用于多个实体?

我正在编程库收集一些数据。它将能够切换其存储库以更改数据目的地(数据库/文件)。我有更多的实体要存储,如城市、街道等。我的计划是发布一个接口,该接口需要实现,以创建自定义数据存储库 我已经看到,每个存储库负责一个实体。但在这种情况下,每个存储库应该有更多的接口。是否可以(在存储库设计模式中)创建一个存储库来接受所有需要的实体并只发布一个接口?有了更多的接口,就有可能忘记实现一些接口并创建不一致的数据api 有更好的方法解决这个问题吗?我建议创建一个geographicalposition,其中包

Oop 面向对象编程与过程编程

有人能给我解释一下吗?我读过和听过的所有关于OOP的东西都让它听起来像是程序编程。帮助?有许多文章解释OOP和其他编程范例之间的区别 例如: 试着在网上搜索“面向对象编程和过程编程的区别”、“面向对象编程和函数编程的区别”等等。我将在黑暗中试一试,假设你(a)第一次学习编码是因为你上了某门课,或者(b)第一次学习编码是因为你喜欢它。无论哪种方式,都是不错的选择,非常有趣 无论哪种方式,您都是新手,并且您可能正在从一种练习本(无论是在线练习还是在教室练习)中编写代码。可能看起来像这样的代码 A

Oop 理解LSP

读了这篇文章后,我认为我基本上理解了LSP和大多数示例,但我不能说我对许多继承示例的经验是100%肯定的,因为似乎许多示例确实违反了LSP,而且在重写行为时似乎很难不这样做 例如,考虑下面继承的简单示例,取自。他们在Jet儿童班违反LSP吗 public class Airplane { private int speed; public void setSpeed(int speed) { this.speed = speed; } public int getSpe

Oop GRAP的信息专家和MVC的Modell是否相同?

我刚开始阅读应用UML和模式第二版的书。 其中一种抓取模式是信息专家,等同于Modell表单MVC吗 他们是否有相同的职责存储和检索信息 GRAP的信息专家和MVC的Modell是否相同 是和否 他们是否有同样的责任去寻找和找回 信息 否。信息专家的资格不限于存储和检索信息。它通常是通过一个持久层来完成的,我们可以称之为纯制造 把握模式我更喜欢它们,因为原则用于确定哪个责任属于哪个类别,或者这个责任是否需要一个新类别。这有助于我们在课堂上保持设计整洁。另一方面,MVC是关于整个系统的设计——如何

在用OOP语言命名对象时,“;“地图”;及;转换;?

对我来说,命名是软件工程中的一个重要概念。出于这个原因,我非常喜欢设计模式,因为它为我(我认为是)常见的模式/对象提供了合适的名称 创建对象时,其目的是将一个对象转换为另一个对象,反之亦然,我通常使用名称“映射”: IDictionary\u userIdMap=new/。。。 公共类用户映射器 { UserModel ToModel(UserViewModelModel ViewModel){…} UserViewModelModel到ViewModelModel(UserModel模型){…

Oop 领域模型、概念模型和业务模型之间的区别等

我有一个关于一些术语的问题,这些术语让我困惑了好几年,我就是想不出来。维基百科倾向于非常正式地解释这些事情,这对我来说很难理解 我一直在努力理解的术语是:,,,域逻辑等。它们中的一些表示相同的东西,一些可以互换使用,一些在不同的上下文中表示不同的东西我要求的是一个高层次的概述,所以我不会对这些术语感到困惑 这些条款都是合同的一部分吗?是你说的吗?我应该把它们放在什么背景下 这是我到目前为止所理解的: 领域是主题(即您正在建模的世界),模型试图简洁地解释概念/主题 因此,领域模型(=概念模型)试

Oop 按需编码意味着什么

我听说按需编码是Restful服务的缺点之一,但我找不到一个例子来解释什么是“按需编码”、如何使用它以及我们为什么需要它?来自: 按需编码(COD)是REST中唯一的可选约束。信息技术 允许客户端提高其灵活性,因为实际上它是 决定如何完成某些事情的服务器。比如说, 根据需要编写代码,客户端可以下载javascript、java小程序或 甚至连一个flash应用程序都可以用来加密服务器之间的通信 不知道在此过程中使用了任何加密例程/密钥 但是,使用COD会降低可见性,这就是为什么会使用此约束的原因

在OOP上下文中,SE实现意味着什么?

试图理解一个接口的程序,而不是一个实现,你可以找到很多这样的例子: Dim pizza as PizzaInterface vs. Dim pizza as Pizzaclass 如果他们将程序编写到接口,而不是类,我会理解。我只是不知道实施意味着什么。实现是否与OOP上下文中的具体类相同 我想你是对的。我得到的意思是,你想要编程到一个接口,这意味着有一个定义方法的接口,但你不应该实现它们。。。所以里面没有代码。不是一个抽象类 要清楚的是,我从来没有听说过一些称为实现的代码块

Python帮助:OOP矩形

请帮我完成这个。我被卡住了,似乎无法得到它。下面这是我得到的,下面的代码是输出需要的 def main(): print ("Rectangle a:") a = Rectangle(5, 7) print ("area: {}".format(a.area)) print ("perimeter: {}".format(a.perimeter)) print ("") print ("Rectangle b:") b = Rectangle() b.width = 10 b.hei

Oop 实时“纸牌游戏”应用程序的体系结构

我正在制作一个反人类的流行游戏卡的复制品,用于学习目的。我想知道是否有人能帮我制定一个应用程序的计划。我想在前端使用AngularJS,并通过websockets与节点服务器交互,这样我就可以在玩家之间进行实时交互,即游戏聊天室,并且能够看到其他玩家何时使用websockets和node?实时发布他们的选择 我知道这些类型的“非确定性”问题往往很难回答,但如果有人能给出一些建议,我将不胜感激 您可以使用来了解结构。他是建筑师 您可以安装 npm install -g yo 现在你可以安装一些应

Oop 如何通过脚本在DigitalMicrograph中设置持久的协作对象?

我开始真正体会到使用对象通过DMS语言在数字显微摄影环境中部署给定应用程序的好处。面向对象方法为使用涉及协作对象的可重用设计模式打开了大门,例如模型-视图-控制器(MVC)。然而,由于使用自动引用计数来管理其生命周期,DM中的对象似乎非常不稳定。为了使MVC trio或任何其他协作对象集保持足够长的活动时间以发挥作用,其中至少有一个必须植根于由DM应用程序管理的非易失性对象中。到目前为止,我在DM中遇到的唯一此类对象是基于UIFrame类的对象(即无模式对话框和UI选项板)。对于MVC实现,这很

Oop 为什么我需要通过指向基类的指针引用继承类的对象?

当我知道对继承类专用的函数的调用将产生编译时错误时,为什么需要通过指向其基类的指针引用继承类的对象 为什么是多态性 编辑: 下面是一小段代码作为示例: enum套装{黑桃、红桃、梅花、钻石}; Enm Val{ACE=1、二、三、四、五、六、七、八、九、十、杰克、皇后、King; 班级卡{ 私人: Val-Val; 西服; 公众: 卡片(Val-Val,套装):Val(Val),套装(套装){ cout主要是因为这个原因(遵循链接): 如果你谈到指针,我理解C++,所以你也可以看看这个。 你不需

Oop 如何调用数据定义的对象?

在数据库设计中,经常使用以下术语: 数据定义语言 数据修改语言 在面向对象的世界中,通常使用以下术语: DAO:数据访问对象 数据访问对象使用数据修改语言访问数据 使用数据定义语言修改数据结构的对象的术语是什么 我试图搜索DDO,但这似乎不是一个常用的术语。正确的术语是什么?DAO用于访问数据以读取和修改数据。你找不到一个单独的术语,因为它同时用于这两个词 数据结构修改通常不会这样做,因为它是程序开发的一部分,通常不会在运行时完成。如果这样做的话,刀将是一个合理的地方放置它

Oop 对于在不同数据类型中接受参数的函数,正确的术语是什么?

最近,我努力向我的一位同事解释某种方法的工作原理。这个问题与我不知道某个术语(可能存在)有关。采用如下函数: function myFunct (arg) { if (typeof arg == "number") { // ... } if (typeof arg == "string") { // ... } } 根据arg的数据类型,该方法会执行不同的操作。对于在不同数据类型中接受其参数的函数,正确的术语是什么?这称为“多

Oop 什么是面向对象设计中的分类?

我读了。在第四章我读了分类。我不明白什么是准确的分类? 是关于查找对象?是关于查找模块?它是对实体或对象的分类,或者使用一些“公共特征”可以想象的东西 比如说,, 香蕉,苹果,书,太阳,电脑,电话 在分类之前, 对象->香蕉,苹果,书,太阳,电脑,电话 它们可以分为 可食(常见特征)->香蕉、苹果 电子产品(通用特性)->计算机、电话 当我们对某些事物进行分类时,这种行为本身被称为分类

什么OOP模式可用于在多个;“步骤”;上课?

在OOP中,所有东西都是具有自己属性和方法的对象。但是,您通常希望运行一个流程,该流程跨越需要按顺序运行的多个步骤。例如,您可能需要下载一个XML文件,解析它并相应地运行业务操作。这至少包括三个步骤:下载、解组、解释解码请求 在一个非常糟糕的设计中,你会在一个方法中完成这一切。在稍微好一点的设计中,您可以将单个步骤放在方法中,或者更好地放在新类中。因为您想要测试和重用单个类,所以它们不应该相互了解。在我的例子中,一个中央控制类按顺序运行它们,将一个步骤的输出传递给下一个步骤。我注意到这样的控制和

Oop 什么样的继承是正确的,矩形从正方形还是相反?

什么样的继承是正确的 当我们从正方形继承矩形或从矩形继承正方形时,或者在这种情况下我们不应该继承?是的,根据“Muhahhad Faizan Uddin”的说法,正方形总是一个矩形,但反之亦然并不总是正确的。 但若能看到正方形,若更多的具体形状和矩形是广义项。 根据我的经验,正方形应该继承矩形类。从数学上讲,正方形就是矩形 但从面向对象的角度来看,正方形不是矩形,因为它会破坏矩形 另请参见。如何从类Shape继承这两个属性?您可能知道,正方形始终是矩形,但矩形不一定是正方形。听鲍勃叔叔说。或者至

Oop 用例图布尔情况

用例图中是否存在布尔情况?如果不是这样的话,你还要这样做吗?以下是我的例子: 用户不需要知道我们为他创建了一个用户,一切都发生在后台。因此,它就像与另一台服务器通信的客户端应用程序。 如果新服务器中已经存在该用户,只需处理添加到购物车,否则,在另一台服务器上为该特定用户创建一个用户 编辑: 多亏了Thomas Kilian的建议,这应该是正确的答案: 你的UCs有几个缺陷,因为你尝试的是功能分解而不是合成;读比特纳/斯彭斯 将边界显示为气泡是错误的。UML 2.5.1第642页: 还要注意,主

在没有OOP的情况下是否可以进行封装?

我在一次采访中被问到一个问题:如果封装在没有OOP的情况下是可能的,例如在过程语言中?Bob Martin说封装不仅在没有OOP的情况下是可能的,在OOP出现之前更好 以下是他2014年在耶鲁管理学院发表的一篇演讲的摘录 我们有完美的封装。在C语言中,您所要做的就是向前声明函数和数据结构。你不必实施它们。您可以在头文件中转发声明它们,然后在C文件中实现它们。您的用户将#包括您的头文件。他们看不到你的实施。完美的包装。您的任何用户都无法看到您的任何数据值。他们只能看到你的函数签名。他们可以看到数据

Oop 干净的体系结构:为什么不使用实体作为用例(interactor)的请求模型

我已经阅读了PPP书籍和干净的代码,编码器和架构书籍 我知道: 清洁体系结构是一种分层体系结构 开放式分层体系结构和封闭式分层体系结构是什么样的 清洁体系结构书籍建议,每一层都可以访问它的内层,而不仅仅是下一层 因此,我假设clean架构不强制进行紧密分层,它允许进行开放分层,这意味着,例如,框架层中的UI可以直接访问实体,中途跳过两层 我理解,如果干净的体系结构被强制进行紧密分层,我们不能直接从框架层实现存储库接口,我们应该在下一层实现它,而下一层应该在下一层实现它,等等 现在我的问题是,

Oop 封装仅仅是一种胶囊创造吗?

最近,我与一位经验丰富的程序员(8年以上的经验)交谈,他告诉我,“将数据与在胶囊中使用的函数相结合”是一个错误的封装术语。他告诉我这是封装允许我做的,但不是封装本身。他告诉我,如果没有封装就不可能继承,那么封装必须只是一个胶囊创建(类或类似的东西)。但今天我接受了一位经验不太丰富的程序员的采访,他非常肯定维基百科上所有的经典定义都是正确的,他告诉我不要想通过采访。所以我试着在谷歌上搜索所有关于封装的东西,以及没有封装就不可能实现继承的东西,但没有找到任何东西。但我不能相信有经验的程序员是错的,他

Oop 如何重构由一个公共方法和多个只进行检查的私有方法组成的类的代码

我正在编写一个代码,我觉得有点烦人。 实际上,该类由一个公共方法和许多私有方法组成,用于检查内容和/或输出一些日志 代码中有3种类型的私有方法。 第一个私有方法仅对输入数据进行一些检查,如果有不一致的地方,则引发。(3种方法) 秒只生成一些日志报告。(2种方法) 第三部分准备并保存数据(2个方法)(本课程的目的),它们由许多其他我必须模拟的外部库组成 然后在我们将调用execute()的类的公共方法中调用每个私有方法 每个测试都在execute方法上运行,execute方法包含私有函数背后代码的

Oop Lua程序中的文件无法相互引用';s变量

我希望有经验的人能指出我遗漏了哪些关键语法。 我的程序运行良好(因为95%的程序是由一位CS50教授创建的),但有一个例外——我似乎无法让播放器和标志文件/类相互引用,以表明我的马里奥角色已达到最终标志。 具体地说,函数“Flag:victory(player)”似乎没有从player文件/类中提取信息,而player有一个能够访问Flag的类似函数,尽管我看不出这两个文件之间有任何区别,即为什么Flag不能正常工作 Flag = Class{} function Flag:init(map

Oop 如何在kotlin中设置已创建对象的属性?

我在这个站点上看到了许多不同的类似问题,它们都引用了这个问题,但都是为了从类本身内部创建属性。我已经查阅了kotlin文档一段时间了,似乎找不到解决方案。我正在尝试接收一个随机对象并为其添加属性 //create this object class random(val name : String?){ } var obj = random("bob") obj.newattribute :Int = 2 //cant do this in this lang 看起来您

Oop 如何在OO中对此进行建模

我有一个类似这样的UI对话框:您必须从列表中选择一本书。(可选)您可以从列表中选择发布者(另一个类),也可以输入发布者名称作为字符串 我想这给了我3种类型作为对话框的输出 书 图书出版类 带出版商字符串的书 您将如何在对象中对此进行建模?在我看来,拥有一个book基类,然后为publisher和publisher name创建两个子类是正确的选择。有没有其他的选择,也许有利于组合,从而提供更好的模型 我会再解释一下。 一本书不需要有出版商。 发布者对象与作为字符串输入的发布者名称不同 你必须

Oop 检查和编辑对象的私有/受保护属性

在Matlab2011b中,我有一些类具有许多私有或受保护的类属性。这是经过设计的,因为我不希望这些文件被我的类自己的getter/setter之外的任何东西查看、可读、写等等 然而,在开发过程中,有时我想了解这些属性的状态。类对象可以在工作区中进行检查,但是当我通过双击工作区中的对象来访问变量编辑器工具时,私有/受保护属性都不可见 我可以理解这可能是出于设计,但我希望有一个我缺少的设置可以让我查看它们。如果您不想修改用于调试的属性,那么可以使用调试器检查私有/受保护的变量。为了方便起见,您甚至

Oop 什么时候应该使用嵌套类?

我有一个写iCal事件的类,它包含公共的嵌套类。该类对于iCal中的组件(如事件、报警等)来说是基本复杂的类型,将其公开为程序其余部分使用的嵌套类是有意义的 我曾读到,拥有公共嵌套类是糟糕编程的标志。为什么不好?什么时候适合嵌套类?这是我的全部想法,但来自于对他人创作的15年分析: 如果嵌套类是私有的,并且没有被包含类的公共接口公开,那么这是合适的 例如,一个链表类将在其内部嵌套一个链表节点类,该类特定于实现内部,但不会向链表类的使用者公开 否则,我就不会麻烦了,因为这只会增加不必要的复杂性 举

Oop nodejs的类图?

我正在研究node.js。我正在慢慢地“到达那里”。不过,我有一个问题。 是否有一个“图表”来说明类的层次结构 我意识到套接字是一个事件发射器,但也是一个流和。。。好吧,有没有一个简单易读的图表来说明什么是什么?好吧,这是我能找到的最好的答案: 不幸的是,节点对象关系图脚本似乎不想与最新的节点一起使用。因此,它显示的是一个旧(请参阅:过时)版本的节点 但是,也许这是一个好的开始?我制作了一个模块,为javascript/node/html/css生成一个类图。它基于UML的“WAE”扩展。它叫

Oop 多态对象创建-菱形继承层次结构

语言:C/C++ 问题:举一个常见的例子,在哪里 A是父类 B和C都是从A类继承的 D继承自B和C 我们希望通过D 注意:这是虚拟继承!所以我们知道只有一个A的对象 问题是:谁的对象将首先创建B,还是C 牢记等级制度 A / \ B C \ / D 简言之,OO本身对此没有任何保证 如果你谈论的是特定的实现或语言(但问题不是这样),那么这可能是有保证的。是的,这个问题有时也被省略为死亡钻石 不幸的是,您的问题无法得到回答:它基于您当前使用的编程语言。 例如,

Oop 我能';“我不知道我的”怎么了;副本;变量

我不知道我的“copies”变量有什么问题 这是我家庭作业的演示代码,向我们展示了基本语法以及如何使用不同类型的OOP构造函数和关键字。问题是什么时候运行这一切都正常,但问题在于copies变量。当复制构造函数时,它的值应该是1,但它似乎不起作用 #include <iostream> #include <string> using namespace std; const int JANE_HOURS = 30, JIM_HOURS = 20, SETTER_HOURS

上一页 1 2  3   4   5   6    7   8   9  ... 下一页 最后一页 共 124 页