[英]public static vs static public - is there a difference?
sealed class PI
{
public static float number;
static PI()
{ number = 3.141592653F; }
static public float val()
{ return number; }
}
public static和static public有什么区别? 可以按任何顺序使用它们吗?
我将如何使用static public float val()
?
类初始化后是否立即执行?
没有区别 您可以随意以任何顺序指定它们。 但是,我发现大多数开发人员倾向于使用静态公共而非静态公共。
好吧,这就像一个人的名字=)叫Tom Mike或Mike Tom,没什么区别。
关于修饰符的顺序
它们可以以任何顺序使用。 这只是您使用的一种风格选择。 我总是首先使用可见性,大多数其他代码也使用可见性。
关于第二个问题:
static public float val()
这只是一个静态函数。 您可以使用PI.val()
调用它。 您只是不需要类的实例来调用它,而是直接在类上调用它。 静态函数不会收到this
引用,也不能是虚拟的,就像非OOP语言中的函数一样,只是它使用类作为名称空间。
没有区别。 彼此之间的顺序并不重要
要回答您的第二个问题,可能应该写成
public static class Pi
{
private static float pi = 0;
public static float GetValue()
{
if (pi == 0)
pi = 3.141592653F; // Expensive pi calculation goes here.
return pi;
}
}
并这样称呼它:
float myPi = Pi.GetValue();
编写此类的原因是为了缓存该值,从而节省了后续调用该方法的时间。 如果获取pi的方法需要大量时间来执行计算,则只需要执行一次计算即可。
关于第二个问题:该方法在没有类实例的情况下可用,因此可以这样调用:
PI.val();
因为该类仅具有静态成员,所以该类可能应该是静态类,因此永远无法初始化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.