在Objective-C实例数据可以是public
,protected
或private
。例如:
@interface Foo : NSObject
{
@public
int x;
@protected:
int y;
@private:
int z;
}
-(int) apple;
-(int) pear;
-(int) banana;
@end
在Swift参考中,我还没有提到访问修饰符。是否有可能限制Swift中数据的可见性?
从 Swift 3.0.1开始 ,共有
4级访问权限
,从最高(最低限制)到最低(最高限制)进行描述。
open
和public
允许在定义模块(目标)之外使用实体。指定框架的公共html" target="_blank">接口时,通常使用open
或public
访问。
但是, open
访问权限仅适用于类和类成员,它与public
访问不同之处如下:
public
类和类成员只能在定义模块(目标)内进行子类化和重写。open
可以在定义模块(目标)之内和之外对类和类成员进行子类化和重写。
// First.framework – A.swift
open class A {}
// First.framework – B.swift
public class B: A {} // ok
// Second.framework – C.swift
import First
internal class C: A {} // ok
// Second.framework – D.swift
import First
internal class D: B {} // error: B cannot be subclassed
internal
使实体可以在定义模块(目标)中使用。internal
在定义应用程序或框架的内部结构时,通常使用访问权限。
// First.framework – A.swift
internal struct A {}
// First.framework – B.swift
A() // ok
// Second.framework – C.swift
import First
A() // error: A is unavailable
fileprivate
将实体的使用限制在其定义的源文件中。fileprivate
当在整个文件中使用特定功能的实现细节时,通常使用访问权限来隐藏这些细节。
// First.framework – A.swift
internal struct A {
fileprivate static let x: Int
}
A.x // ok
// First.framework – B.swift
A.x // error: x is not available
private
将实体的使用限制在其随附的声明中。private
当仅在单个声明中使用特定功能的实现细节时,通常使用访问权限来隐藏这些细节。
// First.framework – A.swift
internal struct A {
private static let x: Int
internal static func doSomethingWithX() {
x // ok
}
}
A.x // error: x is unavailable
问题内容: 我已经看到一些参考引用了Java中称为(两个词在一起)的访问修饰符: 我发现与此有关的页面之一在这里。我的学校课上也提到了这个访问修饰符(并说它存在)。但是,使用它会导致Java语言错误。 我尝试了变量和方法,我很确定它不存在,但是我想解释一下发生了什么。是否考虑过然后拒绝了?还是在新版本的Java中将其删除? 编辑:我不是在寻找有关关键字的信息。 问题答案: 删除访问修饰符 Java
问题内容: 我刚刚升级到Xcode 6 beta 4,其中Swift编译器现在支持access修饰符。 这给我带来了一个问题,因为我的单元测试现在无法编译(由于类未公开)。 简单的解决方案当然是将所有经过测试的类公开,但这听起来像是骇客(我个人的喜好是即使在非公共类上也编写单元测试)。 在.NET和Java中,通常可以允许单元测试程序集级别(或Java / OSGi中的捆绑包级别)从单元测试程序集
问题内容: 我阅读了Apple关于Swift 3中访问修饰符的参考。我也阅读了关于stackoverflow的内容,但是我没有得到询问者的答案。据我正确理解,有四个级别: 公开,公开 内部 文件私有 私人的 我创建了自己的方案,以了解所有这些修饰符之间的区别,并将其上传到此处。如您所见,“公共”和“内部”修饰符之间没有区别。但是,它们处于不同的级别。任何想法将不胜感激! 问题答案: 您的图表不正确
主要内容:私有(Private)成员,实例,保护(Protected)成员,实例,公共(Public)成员,实例,作用域保护,实例Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。 如果没有指定访问修饰符,默认情况下,Scala 对象的访问级别都是 public。 Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员。 私有(Private)成员 用 private 关键字修饰,带
根据留档(http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)的第二个表,没有标识符的成员对子类不可见。 但是,当我运行下面的示例代码时,“1”(b的内容)被打印出来! 如果没有访问修饰符的成员不能从子类访问,那么为什么在本例中打印它 它应该抛出一个错误,就像在私有访问修饰符中一样,不是吗?
本文向大家介绍VBA 访问修饰符,包括了VBA 访问修饰符的使用技巧和注意事项,需要的朋友参考一下 示例 该Dim语句应保留用于局部变量。在模块级别,首选显式访问修饰符: Private 对于私有字段,只能在声明它们的模块中访问。 Public 用于公共字段和全局变量,可以通过任何调用代码进行访问。 Friend 用于项目内公共变量,但其他引用VBA项目无法访问(与加载项相关) Global也可以