问题标签 [access-modifiers]
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.
c++ - C++:有没有办法在不暴露其他私有成员的情况下限制对某些类的某些方法的访问?
我有一个带有受保护方法 Zig::punt() 的类,我只希望“鳄梨”类可以访问它。在 C++ 中,您通常会使用“friend Avocado”说明符来执行此操作,但这会导致“Avocado”类可以访问所有其他变量;我不想要这个,因为这会破坏封装。
我想要什么是不可能的,还是已经存在一个晦涩难懂的技巧可以用来实现我想要的?或者可能实现相同目的的替代类设计模式?
提前感谢您的任何想法!
entity-framework - 实体框架:[使用内部访问说明符设置所有实体]
凭借我的应用程序,我需要将我的业务实体与 EF4 创建的实体分开。我需要将实体限制为仅访问从它们被翻译(使用翻译器)到在业务和服务层共享的业务实体的存储库。我想通过将它们指定为内部来限制它们。现在我的应用程序中有 40 多个实体,因此手动将它们设置为内部是一项艰巨的工作。在其中一个论坛中,建议使用 T4 模板的答案。但即使是那些从实体框架访问说明符中读取的模板。当我尝试手动尝试将所有属性和类访问说明符指定为内部时,它给我一个错误,说实体集也应该设置为内部,但没有相同的选项。我正在使用 VS 2010 和实体框架 4。
php - PHP5:限制对某些类的函数访问
PHP5 中有没有办法只允许某个类或一组类调用特定的函数?例如,假设我有三个类(“Foo”、“Bar”和“Baz”),它们都具有类似名称的方法,并且我希望 Bar 能够调用Foo::foo()
但拒绝 Baz 进行调用:
Foo、Bar 和 Baz 之间不一定有继承关系,因此使用protected
或类似的修饰符无济于事;但是,这些方法不一定是静态的(为了示例的简单性,我在这里制作它们)。
java - 为什么我的子类不能访问其超类的受保护变量,当它位于不同的包中时?
我有一个抽象类,relation
在 packagedatabase.relation
和它的子类Join
,在 package database.operations
。relation
有一个名为 的受保护成员mStructure
。
在Join
:
在线
和
我收到以下错误:
字段 Relation.mStructure 不可见
如果我将两个类放在同一个包中,这将非常有效。谁能解释这个问题?
vb.net - VB.NET 视觉继承:Friend VS Protected
如果使用访问修饰符 Friend 声明某些组件/控件与使用 Protected 声明时,为什么某些组件/控件不会在子窗体中以可视方式继承。
例如,我的父窗体中有一个最初是“朋友”的 DataSet 对象(我将它拖放到窗体中,因此它在设计器视图中显示为控件),但我注意到我的子窗体没有按预期继承控件。一旦我将其更改为“受保护”,它就会按预期显示在我的子表单中。
我知道受保护的允许子窗体修改继承的控件,但这与我上面描述的问题有什么关系呢?
java - 访问其他包中的受保护方法?
如果我说
然后它隐式继承 Object 类。所以我的类如下:
现在为什么我不能访问 Class B 中的 clone() 方法,该方法在 Class A 的同一个包中。
//** 说克隆在对象类中受到保护。但是我没有访问 Object 的 clone 方法。无论如何,我在这里调用 A 类的 clone 方法,但我还没有重载。
c++ - 访问修饰符是否适用于静态类函数?
我刚刚遇到了具有protected
静态类函数的代码,例如:
我很好奇静态类函数是否可以具有访问修饰符,这意味着什么?因为它们是类全局变量而不是实例前。
谢谢,博达赛多。
.net - 什么时候应该使用 [assembly: InternalsVisibleTo()]?
我了解InternalVisibleTo属性用于将具有内部访问修饰符的类型和方法公开给指定的程序集。我只使用它来将内部方法暴露给包含一套单元测试的单独程序集。
我正在努力考虑应该使用它的另一种情况。这个属性是专门为了帮助单元测试而引入的,还是有其他原因?
c# - 什么样的访问修饰符可以应用于一个类?
经过一番研究,我确定您可以应用于类的唯一访问修饰符是:
- public - 在任何程序集中可用
- internal - 仅在当前程序集中可用
但下面的错误消息似乎暗示,如果一个类未在命名空间中定义,则它可以定义为private、protected或protected internal。
public 和 internal 是您可以在类上使用的唯一类修饰符还是更多?
c# - 修饰符系统 C#
我试图找出一个可以轻松地动态修改对象的系统。
这是一个例子,假设我有一个继承自 Entity 的 Entity2D。Entity2D 有一个 Position 属性。
现在我有一个继承自 Modifier 的类 ModifyPosition。
这是一些代码
但是,如果您每秒多次调用它,我认为投射会减慢它的速度。
有没有另一种方法可以解决这个问题而不必投射?