【发布时间】:2011-12-05 04:19:06
【问题描述】:
可能重复:
Why are private fields private to the type, not the instance?
考虑以下类:
public class Test
{
protected string name;
private DateTime dateTime;
public Test(string name)
{
this.name = name;
this.dateTime = DateTime.Now;
}
public Test(Test otherObject)
{
this.name = otherObject.name;
this.dateTime = otherObject.GetDateTime();
}
private DateTime GetDateTime()
{
return dateTime;
}
public override string ToString()
{
return name + ":" + dateTime.Ticks.ToString();
}
}
在我的构造函数中,我调用了otherObject 的private 或protected 东西。 为什么会这样?我一直认为 private 是真正的私有(意味着只有对象可以调用该方法/变量)或受保护(只能通过重载访问)。
为什么以及何时必须使用这样的功能?
我是否缺少一些 OO 逻辑/原则?
【问题讨论】:
-
为什么会遭到反对?似乎是一个很好的问题,有一个很好的代码示例(我承认我没有测试过,但我假设它符合要求的内容?
-
私人实体将始终依赖(间接)某些外部活动,否则它的意义会降低,不是吗?任何物体如果不被外界使用,则使用较少。