问题标签 [private-methods]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
16257 浏览

c# - 在仅由构造函数调用的私有方法中分配只读变量的值

C# 编译器给了我以下错误

CS0191:无法分配只读字段(在构造函数或变量初始化程序中除外)

我是否必须将代码(在我的私有函数中)移动到构造函数中?这听起来很尴尬。

请注意,私有方法仅供构造函数调用。我希望有某种属性可以用来标记相应的方法。

0 投票
0 回答
840 浏览

xcode - Obj-C 私有方法编译器警告

私有方法是一种有用的构造,可以将代码组织在类边界内。一个例子是在自定义 UIView 子类中组织冗长的 Quartz 2d 指令。我可以在 '.m' 文件中包含这些方法,而在 '.h' 中没有声明。UIView 子类“.m”文件中的一个工作示例如下:

我的问题是编译器在调用私有函数的行上生成警告“找不到实例方法'-DoSomethingPrivate'(返回类型默认为'id')”。我从对这个问题的回答中了解到,我可以使用“无名”接口类别来“隐藏”私有方法声明。

但是,当我查看 Apple 示例代码SimpleStocks文件“ SimpleStockView.m ”时,它包含一个私有函数,该函数既未在无名类别接口中声明,也不会生成编译器警告:

如果有人能阐明 Apple 的示例代码私有方法如何逃避编译器检查,我将不胜感激,这样我就可以避免使用我的所有私有方法维护一个“无名”类别标头。

非常感谢。

0 投票
3 回答
1079 浏览

javascript - Javascript 私有方法

我正在阅读 Apres Javascript Pro 技术的第 2 章,特别是关于Provate Methods的部分。

以下代码片段作为示例显示:

除了第 4 行的错误,当我创建一个新的 Classroom 对象时,

抛出以下错误:

在 douglas.crockford.com/private.html 阅读,我发现了这个:

按照惯例,我们将那个变量设为私有。这用于使对象可用于私有方法。这是 ECMAScript 语言规范中错误的解决方法,该错误导致内部函数的设置不正确。

确实创建了一个指向this变量,前面的代码按预期工作。

所以我的问题是:

  • 总是需要创建一个那个变量?

如果是,这意味着该示例绝对是错误的。

0 投票
3 回答
630 浏览

objective-c - Mac App Store 是否允许子类化私有方法?

Mac App Store 指南规定:

使用非公开 API 的应用将被拒绝

这是否包括使用类参考中未提及的方法对公共对象进行子类化?

0 投票
3 回答
768 浏览

objective-c - 在 ObjC 中,如何在子类中隐藏实现超类的方法?

在 ObjC 中,如何在子类中隐藏实现超类的方法?

我不确定@private 是否可以解决问题,因为它似乎只适用于 ivars。

0 投票
6 回答
36345 浏览

java - 如何在 Java 中使用私有方法

我得到了一个具有私有方法的类,例如 setCoors(int x, int y)。该类的构造函数中也包含 setCoors。在另一个类中,我想要一个调用 setCoors 的方法 setLocation。这可能吗?

新问题:

如果我不允许将方法设置为公开,这可能吗?

0 投票
7 回答
75011 浏览

java - 私有方法优于公共方法

我正在检查StringTokenizer.java班级,有几个问题浮现在脑海中。

我注意到其他类要使用的公共方法调用了一些完成所有工作的私有方法。现在,我知道 OOD 的原则之一是尽可能多地私有化并隐藏所有实现细节。我不确定我是否完全理解这背后的逻辑。

我知道将字段设为私有以防止将无效值存储在其中很重要(这只是众多原因之一)。但是,当涉及到私有方法时,我不确定它们为什么如此重要。

例如,在StringTokenizer类的情况下,我们不能把所有的实现代码都放在公共方法中吗?由于这些方法的 API(即调用这些公共方法的规则)将保持不变,它对使用这些方法的类有何影响?我能想到为什么私有方法有用的唯一原因是因为它可以帮助您编写重复的代码。例如,如果所有公共方法都做同样的事情,那么您可以声明一个私有方法来执行此任务并且可以被公共方法使用。

另一个问题,与公共方法相比,在私有方法中编写实现有什么好处?

这是一个小例子:

比...

第一个样本如何更有益?

0 投票
3 回答
33969 浏览

java - 如何编写为某些参数返回 True 的私有方法?

因此,确切的措辞是,“编写一个私有方法 isValid(aRating),如果给定的评级有效,则返回 true,即 1-10 之间。”

如果给定评级有效,则上述方法中的内容是为了返回真值,有效性表示数字 1-10。

这是我尝试的,教练希望它以“正确的方式”这只是我尝试的一个例子,它完全是一个不同的程序。(如果混淆,请忽略)。

这是正确的吗

0 投票
2 回答
729 浏览

java - 如何在公共方法中使用私有方法来检查有效性?

我现在需要编写一个方法 setRating(aRating) 将评级设置为 aRating 如果它是有效的。所以我假设我需要在公共方法中使用上面的方法来检查它是否有效。如果它是有效的,那么我需要将 rating = 设置为 aRating。到目前为止,我的想法是这样的:

但我不能将 isValid 用作 == 到 true ,因为它是一种方法。我也尝试使用 isValid(); 为了尝试使用该方法,但由于顶部的 (int aRating) 而不允许。如果我没有标识符,那么它根本不允许我使用 aRating ...

现在是

我需要创建一个 setRating() 方法,允许用户从键盘输入某些内容,并且它必须再次有效,我不断收到错误消息,因为它说我不能重载 SetRating(int aRating) 两次,我理解。但是如果我尝试取出 int 部分,它是无效的,因为它需要一个参数。这就是我所拥有的

0 投票
4 回答
2264 浏览

c++ - 允许类访问单个私有成员

我有一个 A 类,它有一个名为 a() 的私有方法。我还有一个需要访问 a() 的 B 类(但只有 B 应该可以访问 a(),这就是为什么 a() 是私有的)。我现在可以使用朋友说明符,但这会使 A 的其他私有方法(我们称它们为 b() 和 c())也可用于 B,我不希望这种行为。

有没有办法让 B 可以访问 A 的 a()?