Tag: 私人访问

Swift中'fileprivate'关键字的含义是什么?

我开始迅速,并打开使用从Xcode 8testing版swift2创build的项目, private修改器改为fileprivate 。 这个关键词是什么意思? 和private什么不一样?

为什么我可以在复制构造函数中访问私有variables?

我已经了解到,我永远不能访问一个私有variables,只能在类中使用get函数。 但是为什么我可以在复制构造函数中访问它? 例: Field::Field(const Field& f) { pFirst = new T[f.capacity()]; pLast = pFirst + (f.pLast – f.pFirst); pEnd = pFirst + (f.pEnd – f.pFirst); std::copy(f.pFirst, f.pLast, pFirst); } 我的声明: private: T *pFirst,*pLast,*pEnd;

私人方法真的很安全吗?

在Java中, private访问修饰符被认为是安全的,因为它在类之外是不可见的。 那么外界也不知道这个方法。 但是我认为Javareflection可以用来打破这个规则。 考虑以下情况: public class ProtectedPrivacy{ private String getInfo(){ return "confidential"; } } 现在从另外一个class级我将获得信息: public class BreakPrivacy{ public static void main(String[] args) throws Exception { ProtectedPrivacy protectedPrivacy = new ProtectedPrivacy(); Method method = protectedPrivacy.getClass().getDeclaredMethod("getInfo", null); method.setAccessible(true); Object result = method.invoke(protectedPrivacy); System.out.println(result.toString()); } } 此时我只想到还有一些私人的方法,因为做了一些像上面这样的事情我们必须知道方法的名字。 但是如果包含其他人编写的私有方法的类我们没有这些可见性。 但是由于下面的代码,我的观点变得无效了。 Method method[] = new ProtectedPrivacy().getClass().getDeclaredMethods(); 现在这个method[]包含了所有需要做的事情。 我的问题是,有没有办法避免使用Javareflection这种事情? […]

内部与私人访问修饰符

C#中的internal和private修饰符有什么区别?

在Swift3中区分fileprivate和private是一个很好的例子

本文有助于理解Swift 3的新访问说明符。 它也给出了一些不同用法的fileprivate和private例子。 我的问题是 – 是不是使用fileprivate函数将被使用只在这个文件中使用相同的private ?