这是一个面试问题.
子类是否继承私有字段?
我回答"否",因为我们无法使用"正常的OOP方式"访问它们.但是访谈者认为它们是继承的,因为我们可以间接访问这些字段或使用反射,它们仍然存在于对象中.
我回来后,在javadoc中找到以下引用:
超级私人会员
子类不继承其父类的私有成员.
你知道面试官的意见吗?
根据http://www.faqs.org/docs/diveintopython/fileinfo_private.html:
像大多数语言一样,Python具有私有元素的概念:
- 私有函数,无法从模块外部调用
但是,如果我定义了两个文件:
#a.py
__num=1
Run Code Online (Sandbox Code Playgroud)
和:
#b.py
import a
print a.__num
Run Code Online (Sandbox Code Playgroud)
当我运行b.py它打印出来,1没有任何例外.diveintopython错了,还是我误解了什么?而且是有一些方法可以不定义模块的功能为私有?
我在Github上有一个私人存储库用于我正在进行的项目.到目前为止,我只在我的家用台式机上工作,但我刚买了一台笔记本电脑,并且我正在设置它,以便我可以从任何一台计算机上工作,并推/拉更改.
我为笔记本电脑的Github帐户添加了一个新的SSH密钥,并成功克隆并更改了我设置的公共测试仓库.但是,我无法克隆私人仓库.在命令行中我需要做些什么特别的事情才能克隆私人仓库?我是否需要为笔记本电脑设置一个新的GitHub帐户并将自己设置为合作者?
我用的命令是 git clone git://github.com/myusername/reponame.git
我想要一个具有私有静态数据成员的类(包含所有字符az的向量).在java或C#中,我可以创建一个"静态构造函数",它将在我创建类的任何实例之前运行,并设置类的静态数据成员.它只运行一次(因为变量是只读的,只需要设置一次),因为它是类的一个函数,它可以访问它的私有成员.我可以在构造函数中添加代码来检查向量是否已初始化,如果不是,则初始化它,但是这会引入许多必要的检查,并且似乎不是问题的最佳解决方案.
我想到,因为变量只是只读的,所以它们只能是公共的静态const,所以我可以在类外面设置它们,但是再一次,它看起来有点像丑陋的黑客.
如果我不想在实例构造函数中初始化它们,是否可以在类中拥有私有静态数据成员?
我观察到外类可以访问内部类私有实例变量.这怎么可能?以下是演示相同内容的示例代码:
class ABC{
class XYZ{
private int x=10;
}
public static void main(String... args){
ABC.XYZ xx = new ABC().new XYZ();
System.out.println("Hello :: "+xx.x); ///Why is this allowed??
}
}
Run Code Online (Sandbox Code Playgroud)
为什么允许这种行为?
如果变量声明为public static varName;,那么我可以从任何地方访问它ClassName.varName.我也知道静态成员由类的所有实例共享,并且不会在每个实例中重新分配.
声明变量与声明变量有private static varName;什么不同private varName;?
在这两种情况下,它都不能ClassName.varName作为ClassInstance.varName任何其他类访问.
将变量声明为静态会给它带来其他特殊属性吗?
我有一个使用XML和反射的Object类将s 返回到另一个类.
通常这些对象是外部对象的子字段,但偶尔它是我想要动态生成的东西.我尝试过类似的东西,但无济于事.我相信这是因为Java不允许您访问private反射方法.
Element node = outerNode.item(0);
String methodName = node.getAttribute("method");
String objectName = node.getAttribute("object");
if ("SomeObject".equals(objectName))
object = someObject;
else
object = this;
method = object.getClass().getMethod(methodName, (Class[]) null);
Run Code Online (Sandbox Code Playgroud)
如果提供的方法是private,它失败了NoSuchMethodException.我可以通过制作方法public或使另一个类从中派生它来解决它.
长话短说,我只是想知道是否有办法private通过反射访问方法.
该文章已在了解新的访问说明很有帮助Swift 3.它也给出了不同用途的一些例子fileprivate和private.
我的问题是 - 是不是fileprivate在一个仅在此文件中使用的函数上使用与使用相同private?
private ×10
java ×5
c++ ×2
static ×2
class ×1
constructor ×1
destructor ×1
function ×1
git ×1
github ×1
inheritance ×1
initializer ×1
module ×1
oop ×1
python ×1
reflection ×1
swift ×1
swift3 ×1
variables ×1