70得票3回答
如何从IntelliSense中隐藏公共方法

我想要隐藏 IntelliSense 成员列表中的公共方法。我创建了一个属性,应用于方法时,构造对象时将调用该方法。我这样做是为了更好地支持部分类。问题在于,在某些环境中(如 Silverlight),反射不能访问私有成员,甚至那些子类的私有成员也无法访问。这是一个问题,因为所有工作都在基类中...

68得票7回答
私有扩展方法是否存在?

假设我需要一个简单的私有辅助方法,并且在代码中直觉上使用扩展方法是很有意义的。有没有一种方式可以将该辅助方法封装到只有实际需要使用它的类中? 例如,我尝试这样做:class Program { static void Main(string[] args) { ...

61得票20回答
封装 vs 数据隐藏 - Java

面试官: 什么是封装,如何在Java中实现封装? 我: 封装是一种机制,用于隐藏信息不让客户端直接访问。该信息可以是数据、实现或算法。我们使用访问修饰符来实现这个目的。 面试官: 这是数据隐藏。除了使用访问修饰符,还有哪些方法可用于在Java中实现封装? 我...

60得票5回答
如何在不破坏封装的情况下返回 RefCell 中某个东西的引用?

我有一个具有内部可变性的结构体。 use std::cell::RefCell; struct MutableInterior { hide_me: i32, vec: Vec<i32>, } struct Foo { //although not us...

57得票25回答
抽象和封装有什么区别?

在面试中,我被问及如何解释抽象和封装的区别。我的回答大致是: 抽象允许我们用最简单的方式表示复杂的现实世界。它是识别对象应该具备的相关特征和行为的过程;换句话说,只代表必要的特征而不代表背景细节。 封装是将对象的所有内部细节隐藏起来,不让外部的真实世界看到。封装这个词就像是“封装”在一个“...

57得票10回答
为什么面向对象编程中需要“私有”方法?

我知道这是面向对象编程中的一个非常基本的概念。但是我仍然不能理解它。我明白为什么成员变量应该是私有的,这样类用户就不能通过设置无效值来滥用它。 但是这如何适用于方法呢?

54得票8回答
没有访问修饰符的方法

好的,这个问题困扰着我...我知道我在某个地方读到过它,但Google没有帮助。 如果一个方法没有指定访问修饰符,它的可访问级别是什么?void Foo() { //code } 我想说 internal,但我不确定。

52得票7回答
为什么std::pair会暴露成员变量?

根据http://www.cplusplus.com/reference/utility/pair/,我们知道std::pair有两个成员变量:first和second。为什么STL的设计者决定暴露这两个成员变量,而不是提供getFirst()和getSecond()方法呢?

49得票16回答
Java中的Set和Get方法是什么?

我该如何使用set和get方法,为什么应该使用它们?它们真的有帮助吗?你能给我一些set和get方法的例子吗?

48得票5回答
如何在Swift中声明一个“protected”变量

我想创建一个继承自另一个类的类,而该类在不同的文件中。 例如: Class1.swiftclass Class1 { protected var //Do Stuff } Class2.swiftclass Class2:Class1 { //Do stuff }...