我发现有两种方法称为静态方法和实例方法,并且它们之间存在差异。但是我仍然无法理解一种方法比另一种更具优势。
有时我觉得静态方法不是100%面向对象的。
这两种方法之间是否存在性能差异。
有人可以帮忙吗?
我发现有两种方法称为静态方法和实例方法,并且它们之间存在差异。但是我仍然无法理解一种方法比另一种更具优势。
有时我觉得静态方法不是100%面向对象的。
这两种方法之间是否存在性能差异。
有人可以帮忙吗?
如果你的方法使用了非静态数据成员,不要将其设为静态(你“无法”这样做)。
如果你的方法没有使用任何非静态数据成员,你可以将其设为静态,但这主要取决于你的设计而不是它是否使用非静态成员(无论如何,性能上没有太大差别,正如Mehrdad所说)。
如果你的类中没有非静态数据成员,有时最好将所有方法都设为静态(例如,在为了良好的组织而将辅助函数分组到一个类中的情况下)。
我只是根据C#的继承猜测,但我认为它与其他面向对象的语言相同。
静态方法不需要对象来操作。一个很好的例子就是:
Double pi = Math.PI.
实例方法需要一个对象。一个例子是这样的:
Integer x = 9;
Integer y = x.sqrt();
Math.PI
,Window.OVERLAPPED
等)就是这种情况的典型示例。