如果我正在写一个类,那么我什么时候可以私有化一个方法,而不是保护? 换句话说,我怎么可以事先知道客户端程序员永远不需要重写一个方法? 在一些有外部考虑的情况下,如数据库连接?
我目前正在用C ++编写一个小型的2D游戏引擎,但是现在我正在面对一个守护进程 – 我在devise一个实际上起作用的“类的系统”。 我脑海中有一个封锁,使我无法看到我应该在哪里上课,在哪里我不应该这样做。 我正在阅读一篇关于引擎devise的文章,并且打算使用“State”类来pipe理不同游戏条目的状态(我正在使用int)。 它还build议游戏的所有对象(不是io / video / sound等)都来自Renderable或NonRenderable类。 这很聪明。 我已经知道这是一个明智的做法 – 我的意思是,Java中的每个对象都是基类Object的权利? 聪明,我知道! 我怎么没有这样做呢? 我需要阅读什么才能真正进入这个思维模式? 另一个例子。 我正在参加这个夏季的Ruby课程(非常简单),我们应该devise一个露营地。 简单! 所以,露营是一个“地块”的集合,每个都有一个电量表来衡量客人消耗了多less电量。 我的devise是三个class级,一个是露营 – 反过来使用Guest和Plot类的数组。 我的老师build议我多用些class。 跆拳道(!)是我的第一个想法,在哪里,什么类? 在我看来,一切都是一stream的,直到我意识到,也许这个仪表应该是一个阶级呢? 现在这个规格在Plot类中是一个Integer。 我想学习如何为我的问题提出一个面向对象的解决scheme – 而不仅仅是如何使最明显的东西进入类! 提示/书籍/文章/博客? 我在CS的两年拼贴学位,已经作为一个爱好多年编程! 我只是被卡住了 – 而且阻止了我创build任何更大的软件!
我正在阅读这本书,里面写着“HAS-A”和“IS-A”。 任何人都知道他们是什么意思? 试图在书中search,但这本书是600页长。 谢谢!
我知道这个问题之前已经被问 过了 ,但是我仍然觉得对于我来说(以及一些/大部分的初学者)来说,答案太模糊了。 我一直在努力教自己更广泛的编程概念,而不是程序和基本的面向对象。 我理解OOP的具体概念(你创build一个具有数据(成员)和函数(方法)的类,然后在运行时实例化该类来实际执行某些事情)。 我想我可以处理一个类是什么types的( 在编译的时候,它就像一个实例被创build的样子的devise蓝图 )。 但是如果是这样的话,什么是对象? 我也知道,在基于原型的语言中,这可能会让事情变得更糟糕,但也许这就是为什么需要在脑海中清楚区分对象和实例的原因。 除此之外,我还与“对象”和“实例”的概念斗争。 我读过的很多资源(包括SO的答案)都说它们大体上是相同的,而且它们的区别在于语义。 其他人说,两者之间有一个真正的概念上的区别。 SO的专家能帮助初学者在OOP的世界里有那个“啊哈”的时刻吗? 再次感谢。 注意:这不是作业,我不上学 – 但是,我认为这会帮助那些正在寻找功课帮助的人。
提高面向对象编程技能是一个很好的挑战? 这次调查背后的想法是提供一个想法,哪些练习是有用的学习面向对象。 挑战应该尽可能地与语言无关,要么很less使用或不使用特定的图书馆,要么只使用最常见的图书馆。 尽量在每个答案中只包括一个挑战,这样一个投票就可以单独对应这个挑战的优点。 如果所需要的技能水平被指示,那么也是很好的,也是为什么这是一个有用的练习背后的理由。 挑战的解决scheme可以作为“如何…”问题的答案发布,并从这里链接到这个问题。 例如: 挑战 – 实施后进先出的堆栈 技能水平 – 初学者 理由 – 给出如何引用对象的经验
我已经用面向对象的语言进行了多年的编程,但是我暗中看到了一些我的同事用羡慕的方式来做的事情。 他们中的很多人似乎有一些内在的OO本能,我不知道 – 不pipe我多么努力。 我已经阅读了所有关于面向对象的好书,但仍然无法破解它。 我觉得那个让110%成为一名职业足球运动员的人只是没有天赋而已。 我不知所措,想换个职业 – 我该怎么办?
devise一个面向对象的停车场。 它有什么类和function。 应该说,满的,空的,也能find代客泊车的地方。 该地段有3种不同types的停车场:普通,残疾人和紧凑型。 谢谢!
为什么我们应该让构造函数在类中是私有的? 因为我们总是需要构造函数公开。