在Java中,有没有关于何时使用每个访问修饰符,即默认明确的规则(包私有)public,protected并且private,同时使class与interface和处理继承?
何时以及为什么我应该在类中使用public,private和protected函数和变量?他们之间有什么区别?
例子:
// Public
public $variable;
public function doSomething() {
// ...
}
// Private
private $variable;
private function doSomething() {
// ...
}
// Protected
protected $variable;
protected function doSomething() {
// ...
}
Run Code Online (Sandbox Code Playgroud) 我来自Java世界并阅读Bruce Eckels的Python 3模式,食谱和成语.
在阅读类时,接着说在Python中没有必要声明实例变量.你只需在构造函数中使用它们,然后繁荣,它们就在那里.
例如:
class Simple:
def __init__(self, s):
print("inside the simple constructor")
self.s = s
def show(self):
print(self.s)
def showMsg(self, msg):
print(msg + ':', self.show())
Run Code Online (Sandbox Code Playgroud)
如果这是真的,那么类的任何对象都Simple可以只改变s类外的变量值.
例如:
if __name__ == "__main__":
x = Simple("constructor argument")
x.s = "test15" # this changes the value
x.show()
x.showMsg("A message")
Run Code Online (Sandbox Code Playgroud)
在Java中,我们学习了有关公共/私有/受保护变量的知识.这些关键字是有意义的,因为有时你想要类中的变量,类外没有人可以访问.
为什么Python中不需要这样做?
我正在构建一个具有一些公共和私有方法的类库.我希望能够对私有方法进行单元测试(主要是在开发时,但它也可能对将来的重构有用).
这样做的正确方法是什么?
我在第三方设计的设计很差JAR,我需要访问其中一个私有字段.例如,为什么我需要选择私人领域是否有必要?
class IWasDesignedPoorly {
private Hashtable stuffIWant;
}
IWasDesignedPoorly obj = ...;
Run Code Online (Sandbox Code Playgroud)
我如何使用反射来获得价值stuffIWant?
我有一个带有private static final字段的类,不幸的是,我需要在运行时更改.
使用反射我得到这个错误: java.lang.IllegalAccessException: Can not set static final boolean field
有没有办法改变价值?
Field hack = WarpTransform2D.class.getDeclaredField("USE_HACK");
hack.setAccessible(true);
hack.set(null, true);
Run Code Online (Sandbox Code Playgroud) C#中的访问修饰符internal和有效private访问修饰符有什么区别?
在Java中,有什么区别:
private final static int NUMBER = 10;
Run Code Online (Sandbox Code Playgroud)
和
private final int NUMBER = 10;
Run Code Online (Sandbox Code Playgroud)
两者都是private和final,不同之处在于static属性.
什么更好?为什么?
@private在Objective-C 中意味着什么?
有人让我访问他们在Github上的一个私人仓库.我想要做的是将该项目分成我自己的帐户,这样我就可以利用Github的拉取请求功能.
我只在Github上有一个基本帐户,所以我不能自己进行私人回购,但是如果我将其他人的私人回购分配到我的帐户中,它是否会公开显示在我的帐户中?
private ×10
java ×4
.net ×2
class ×2
final ×2
protected ×2
public ×2
reflection ×2
static ×2
attributes ×1
c# ×1
cocoa ×1
field ×1
git ×1
github ×1
internal ×1
ios ×1
objective-c ×1
oop ×1
php ×1
python ×1
repository ×1
tdd ×1
unit-testing ×1