有人让我访问他们在Github上的一个私人回购。 我想要做的就是把这个项目分成我自己的账户,所以我可以利用Github的pull requestfunction。 我在Github上只有一个基本账户,所以我不能自己做私人回购,但是如果我把别人的私人回购交给我的账户,是否会在我的账户中公开显示?
Objective-C中@private是什么意思?
我曾经认为, private val和private final val是相同的,直到我看到在斯卡拉参考4.1节: 恒定值的定义是这种forms final val x = e 其中e是一个常数expression式(§6.24)。 最终修饰符必须存在,并且不能给出types注释。 常量值x的引用本身被视为常量expression式; 在生成的代码中,它们被定义的右边replacee。 我写了一个testing: class PrivateVal { private val privateVal = 0 def testPrivateVal = privateVal private final val privateFinalVal = 1 def testPrivateFinalVal = privateFinalVal } javap -c输出: Compiled from "PrivateVal.scala" public class PrivateVal { public int testPrivateVal(); Code: 0: aload_0 1: […]
我知道我们可以通过reflection访问私人构造函数@Sanjay T. Sharma在他的回答中提到我的问题: “instanceof Void”是否总是返回false? 不过, @duffymo 说 : 你可以用reflection访问私有的东西 – 方法,构造函数,数据成员,一切。 我如何访问私有方法和私有数据成员? 是否有可能通过reflection访问本地variables? 有没有办法阻止任何人访问私人构造函数,方法和数据成员?
基于JavaScript原型的面向对象编程风格很有趣,但是在很多情况下,你需要能够从一个类创build对象。 例如在一个vector绘图应用程序中,工作区通常在绘图的开始处是空的:我不能从现有的一个创build一个新的“线”。 更一般地说,每个dynamic创build对象的情况都需要使用类。 我已经阅读了很多教程和书“Javascript:好的部分”,但是在我看来,没有办法定义尊重1)封装和2)有效的成员方法声明的类(我的意思是:成员方法被定义一次,并在每个类实例之间共享)。 要定义私有variables,正在使用闭包: function ClassA() { var value = 1; this.getValue = function() { return value; } } 这里的问题是,“ClassA”的每个实例都有自己的成员函数“getValue”副本,效率不高。 为了有效地定义成员函数,正在使用原型: function ClassB() { this.value = 1; } ClassB.prototype.getValue = function() { return this.value; } 这里的问题是成员variables“value”是公开的。 我不认为这个问题可以很容易地解决,因为在创build对象的时候需要定义“私有”variables(这样对象可以访问创build的上下文,而不会泄露值),而基于原型的成员函数定义必须在创build对象之后完成,所以原型才有意义(“this.prototype”不存在,我已经检查过)。 还是我错过了什么? 编辑: 首先,感谢你的有趣答案。 我只是想为我的最初信息添加一点精确度: 我真正想要做的是有1)私有variables(封装是好的,因为人们只能访问他们所需要的)和2)有效的成员方法声明(避免副本)。 看来简单的私有variables声明实际上只能通过javascript中的闭包实现,这就是为什么我关注基于类的方法。 如果有一种方法可以通过基于原型的方法实现简单的私有variables声明,那对我来说就没有问题了,我不是一个激烈的基于类的方法proponnent。 阅读答案后,似乎简单的解决办法是忘记私有,并使用特殊的编码惯例,诋毁其他程序员直接访问“私人”variables… 我同意,我的标题/第一句对我想在这里讨论的问题有误导性。
一个构造函数可以是私有的吗? 私人构造函数如何有用?
我有一个类使用XML和reflection来返回Object到另一个类。 通常情况下,这些对象是外部对象的子字段,但偶尔也是我想要生成的东西。 我已经尝试过这样的事情,但无济于事。 我相信那是因为Java不允许你访问private方法进行reflection。 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); 如果提供的方法是private ,则会失败,并显示NoSuchMethodException 。 我可以通过public这个方法来解决这个问题,或者让另一个类从中派生出来。 长话短说,我只是想知道是否有办法通过reflection访问private方法。
我观察到,外部类可以访问内部类的私有实例variables。 这怎么可能? 下面是一个演示相同的示例代码: 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?? } } 为什么这种行为是允许的?
我来自Java世界,阅读Bruce Eckels的Python 3 Patterns,Recipes和Idioms 。 在阅读类时,它继续说在Python中不需要声明实例variables。 你只是在构造函数中使用它们,繁荣,它们在那里。 举个例子: class Simple: def __init__(self1, str): print("inside the simple constructor") self1.s = str def show(self1): print(self1.s) def showMsg (self, msg): print (msg + ':', self.show()) 如果这是真的,那么Simple类的任何对象都可以在类之外改变variabless值。 例如: if __name__ == "__main__": x = Simple("constructor argument") xs = "test15" # this changes the value x.show() x.showMsg("A message") 在Java中,我们被教授关于公共/私有/受保护的variables。 这些关键字是有意义的,因为有时候你想要一个class级以外的class级无法访问的variables。 […]
何时以及为什么要在课堂中使用public , private和protected函数和variables? 他们有什么区别? 例子: // Public public $variable; public function doSomething() { // … } // Private private $variable; private function doSomething() { // … } // Protected protected $variable; protected function doSomething() { // … }