问题标签 [access-specifier]

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 投票
1 回答
1138 浏览

ruby - 单例模式、私有方法和单例模块

我正在与 Ruby 中的单例模式作斗争。

我知道单例实现了一个对象的单个实例,但我不太明白我们是否可以在没有单例模块的​​情况下复制它。

然后是私有方法的问题;现在我必须做这样的事情:

所以我的问题是:

  1. 以上是一个好的单例模式吗?
  2. 这会确保只有一个实例吗?
  3. 有没有办法使用单例模块拥有私有方法?
0 投票
2 回答
1533 浏览

ruby-on-rails - 如何在 Ruby/Rails 中指定私有或受保护的属性?

如何在 Ruby/Rails 中指定私有或受保护的属性?

是不是所有的 DB 字段都是自动属性的,不需要在 Model 中定义?

有什么推荐的教程吗?

在 Rails 3.0.7 中工作。

0 投票
1 回答
72 浏览

java - 难以保留需要由不同包访问的方法的默认可见性

我正在开发MineSweeper。在那我有3个包裹。1.frontEnd 2.backEnd 3.mineSweeperControl。

mineSweeperControl包含一个实现 ActionListener的类 ActionSplicer 。在前端我有一个 JBUTTONS 数组和一个ActionSplicer对象数组,这样splicerobj[i][j] 监听按钮 [i][j]。(一对一对应)

backEnd包含一个对象数组,这样object[i][j] 具有 button[i][j] 的背景细节,例如 MineValue、isCellEmpty、isCellFlagged 等...

方法doBackgroundAction(i,j){..}类 BackEndManager中定义。在ActionSplicer的actionPerformed中,我调用doBackgroundAction(i,j)以便前景的任何变化也会影响背景。

我的问题在哪里?

doBackGroundAction (i,j)需要公开,因为它在不同的包中调用。

但我不希望任何方法公开,因为它可能会降低灵活性,然后任何人都可以更改属性的值。

我无法扩展 BackEndManager 类,因为我在前端创建了一组 ActionSplicer 对象。

因此,我需要一些关于声明 doBackGroundAction(i,j) 的指导。在某些不可避免的情况下将方法声明为公共是否是正确的方法?或者如何更改我的设计以保留具有默认可见性的方法。

0 投票
10 回答
37497 浏览

java - 如何从其他包中的类访问包私有类?

我有以下课程

你好.java

你好.java

CustomMap.java

这工作正常,直到我public从中删除访问说明符CustomMap

编译器大喊

speak.hi.CustomMap 类型不可见

现在,如果我没有修改选项speak.hi.CustomMap(第三方 jar 等)。有什么方法我仍然可以使用CustomMapfromspeak.hello.Hello吗?


我知道的一种选择是移动speak.hello.Hellospeak.hi.HelloNow Hello 在包中speak.hi它可以访问包私有类Hi


有没有其他方法可以做到这一点?也许使用反射?


编辑:根据@StephenC 的要求更新了其他详细信息

0 投票
2 回答
460 浏览

ruby - Ruby 中的私有方法和受保护方法

以下代码有效:

然而,将对 method_b 的调用更改为self.method_b不起作用:

我得到一个NoMethodError. 我的印象是self在实例方法中只解析为类的实例。为什么会self.method_b导致问题?

注意:更改为self.method_b时有效。privateprotected

注意:如果将上述方法更改为类方法self.method_b,则从 method_a 调用不会抛出NoMethodError.

0 投票
1 回答
111 浏览

ruby - 顶级方法:为什么它们成为 Object 中的私有实例方法?为什么不公开?

在 Object 的 Ruby 私有实例方法中创建顶级方法的原因是什么?如果他们以某种方式被公开,这将如何改变事情?

0 投票
1 回答
1951 浏览

ruby - Ruby - 私有方法的内联声明

目前正在编写一个类,其中我正在考虑将其设为私有的方法分布在整个代码中。我不想在其下方添加private一行并复制粘贴所有内容,而是想在类的顶部进行内联声明,例如private :foo, :bar.

但是,每当我尝试将带有参数的方法声明为私有内联时,都会收到一条错误消息。例如,如果我有一个方法foo(bar, baz),并尝试将其声明为私有,private :foo(bar, baz)我会在两个括号中收到错误消息,期望kEND=代替。

如果我尝试用 声明它private :foo,我会被告知我的代码中没有这样的方法foo

如何在不出现这些错误的情况下做我想做的事情?

0 投票
3 回答
459 浏览

c++ - C++ 多重继承、基类可见性和可怕的钻石。将祖先基类重新公开为公共?

我需要通过保护基类从基类中抽象出许多接口,但我还需要对一个简单的祖先类进行公共访问Object。我是否可以在没有对这些祖先的写入/编辑访问权限的情况下协商可怕的钻石Object,并且仍然只提供一个基本 API,但再次公开 's API?

0 投票
3 回答
4282 浏览

ruby-on-rails - 我们什么时候应该考虑使用私有或受保护?

只是想知道,我们什么时候应该真正使用privateprotected用于模型中的某些方法?

有时我会不厌其烦地将我的方法分组到privatenor中protected。我只是保持原样。但我知道这一定是一个不好的做法,否则这两个分组将不会在编程中创建。

谢谢。

0 投票
2 回答
4174 浏览

ruby - Ruby 类初始化(构造函数)是私有方法还是公共方法?

ruby 中的初始化方法(构造函数)是私有的还是公共的?