关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭9年前。Improvethisquestion我正在创建一个Slick2D游戏。现在,我正在创建一个Video类,其中包含内部类(FrameSize、FPS、FullScreen..)。所以我有一个OOD想法以一种方式进行包装,就像我们调用System.out.println()一样。这意味着我将拥有他的内部类的公共(public)视频类和公共(public)静态实例,但是netbeansIDE向我提示“通过公共(public)API导出非公共(pu
Dosubclassesinheritprivatefields?这个问题解决了同样的问题,但我不太明白它如何满足下面(看似)矛盾的情况。http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html表示“子类不继承其父类的私有(private)成员。”这意味着它既不继承私有(private)实例变量也不继承私有(private)方法,对吧?但是,如果它从其父级继承公共(public)访问器方法,这将如何工作?它返回一个它不知道存在的实例变量?此外,我的计算机科学书籍(Baron的APComputerScienceA)
这个问题在这里已经有了答案:AbstractionVSInformationHidingVSEncapsulation(22个答案)Differencebetweenabstractionandencapsulation?(40个答案)关闭6小时前。Java中的封装和抽象到底有什么区别?任何简短的例子也将不胜感激。
我的应用程序中有一个数据类。我的应用程序永远不会被用作公共(public)API,我将是我项目中唯一开发代码的人。我正在尽我所能节省每一盎司的处理器和内存资源。让我的数据类中的数据成员具有公共(public)/protected/默认保护以便我不必使用getter是不是一个坏主意?使用setter/getter需要稍微多一点的内存和创建堆栈等等……我认为这是没有必要的。我认为使用getter的唯一原因是为了保护/隐私,但如果我是唯一的编码员并且没有其他人会使用我的API,那么不使用getter是个坏主意吗?请告诉我这是否愚蠢。 最佳答案
在Java和C#中有几个用于缓冲流的类:C#中的BufferedStream、Buffered(Input|Output)Stream和Buffered(Reader|Writer)。他们在构造函数中获取一些流并实现相同的接口(interface)。问题是-它是如何工作的?当我尝试读取一个字节时会发生什么?它把很多字节读入内部缓冲区,然后一个字节一个字节地返回给我?写一个字节?写入内部缓冲区并在flush()上将其写入内部流?关于读取/写入字节数组-在缓冲流上执行此操作是否效率低下,原因是将字节复制到内部数组和从内部数组复制字节? 最佳答案
有时我发现自己处于这样的情况下,如果我将某些方法的可见性从私有(private)更改为包私有(private),以便促进单元测试模拟、断言...,单元测试会更容易。一个例子就是这个假设我有一个包含4个属性X、Y、Z和R的对象A,其中X、Y和Z是集合,R是每个集合的不同元素之间的关系,例如关系将由元素组成X,Y的一个元素和Z的一个元素。对象A不允许直接访问X、Y、Z或R,相反它提供了丰富的API,允许您在X、Y和Z上创建新元素,也允许您将这些元素混合到新的R元素中。对于单元测试,拥有publicgetX()、publicgetY()、publicgetZ()和publicgetR()方法
我在胡思乱想如何设置封装。但是我的程序以意外的顺序执行。这是我相当简单的代码:“主要”:packageresearch.debug;publicclassMain{publicstaticvoidmain(String[]args){Booleanb=Boolean.TRUE;Debug.black.printVariable(b,"b");Debug.red.printVariable(b,"b");System.out.println("SUPPOSEDtobeinbetween...");Debug.black.println("Hello");Debug.red.println
我从Java开始学习setter、getter和封装。我有一个非常简单的程序,两个类:Container有一个私有(private)的int数组(numArray)和他的setter&getter。Main创建一个Container对象并在totalArray方法中使用它。publicclassContainer{privateintnumArray[]={0,0,0};publicint[]getNumArray(){returnnumArray;}publicvoidsetNumArray(intindex,intvalue){numArray[index]=value;}}pub
假设我的任务是编写某种角色扮演游戏。这意味着,例如,我想跟踪一个CharacterGameCharacter及其统计数据,例如智力、伤害加成或生命值。我非常害怕在项目结束时我可能会处理大量的字段-对于每个字段我都必须确保它们遵循一组非常相似的约束和行为(对于例如,我希望它们限制在最小值和最大值之间;我希望能够区分“基本值”和“临时奖金”;我希望能够在不通过setter的情况下增加和减少两者和setter/getter)。突然之间,对于每个字段,我都需要一个(两个?)getter和四个setter,也许还需要几个resetter!即使是10个字段,这也意味着很多方法都是一样的,哎呀。对于
来自纯“C”,我是一个C++新手,对OO开发或多或少是新手,因此我提前为我对以下主题的“幼稚”观点道歉。在下文中,我试图以抽象的方式描述我的问题(我的真实类是不同的)。代码部分可能无法编译,应仅被视为“想法”。我有几个类,继承自一个基类:classBase{};classDerived1:Base{};classDerived2:Base{};classDerived3:Base{};此外,vector包含指向派生类实例的指针:std::vectorcollection;现在我想提供这个类方案供其他用户使用。问题:当用户遍历集合时,他/她如何知Prop体的类类型?为派生类提供虚拟成员函