使用私有静态方法OOP概念

时间:2012-05-18 00:47:59

标签: oop methods static private

我怀疑这里经过如此多的解释之后,我仍然没有真正明白这一点。为什么我们需要声明私有静态方法?由于该方法是私有的,因此只能由类本身访问,并且可以在不创建实例的情况下轻松调用内部函数,不是吗?或者我错了这个概念? 我的意思是我可以理解为什么我们有一个私有方法(因为我们只想将逻辑保留在类本身)而且我也理解为什么我们需要一个静态方法(因为我们不需要实例来访问该方法)。所以,我的问题是,为什么我们需要在私有时将其设为静态?好像我们不希望任何其他类访问它并且不能直接从代码中调用它(因为它是私有的)但我们仍然将它保持为静态?

对不起因为混乱但是我很困惑。任何人都可以帮我解释这个概念吗?

最诚挚的问候, 易莹

2 个答案:

答案 0 :(得分:2)

您可能需要从静态公众中调用静态私有。静态公共访问不能访问非静态私有!

答案 1 :(得分:0)

另一个原因可能是性能,具体取决于平台。对于.NET平台,在documentation of FxCop(Microsoft的静态代码分析工具)中,您可以找到以下语句:

  

不访问实例数据或调用实例方法的方法可以标记为static(在Visual Basic中为Shared)。将方法标记为静态后,编译器将向这些成员发出非虚拟调用站点。发出非虚拟调用站点将阻止在运行时检查每个调用,以确保当前对象指针为非null。这可以为性能敏感的代码带来可测量的性能提升。在某些情况下,无法访问当前对象实例表示正确性问题。