什么时候应该在类中使用静态方法?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

我有静态变量的概念,但是静态方法在类中的好处是什么。我做过一些项目,但我没有使方法静态。每当需要调用类的方法时,我都会创建该类的对象并调用所需的方法。

问:方法中的静态变量即使在执行方法时也保持其值,但只有在其包含的方法中才能访问它,但是静态方法的最佳定义是什么?

问:调用静态方法而不创建该类的对象是静态方法的唯一好处吗?

问:静态方法的可访问范围是多少?

提问于
用户回答回答于

对静态变量的描述与C中的描述更贴切。在面向对象的术语中,静态变量的概念在概念上是不同的。我在这里借鉴了Java的经验。静态方法和字段在概念上不属于某事物的实例时非常有用。

考虑一个包含一些公共值(如PI或e)的数学类,以及一些有用的函数(如sin和cos)。创建单独的实例来使用这种功能是没有意义的,因此它们作为静力学更好:

// This makes little sense
Math m = new Math();
float answer = m.sin(45);

// This would make more sense
float answer = Math.sin(45);

在OO语言中(从Java的角度来看)函数,或者更被称为方法,不能有静态局部变量。只有类可以有静态成员,正如我已经说过的,与C中的静态概念相比,静态成员几乎没有什么相似之处。

用户回答回答于

静态方法不向对象传递“this”指针,因此它们不能引用非静态变量或方法,但是在运行时可能更高效(参数更少,创建和销毁对象的开销也更小)。

它们可以用于将衔接方法分组到单个类中,或者对类的对象(例如工厂模式中的对象)进行操作。

所属标签

可能回答问题的人

  • 找虫虫

    0 粉丝0 提问6 回答
  • 优惠活动秘书

    0 粉丝2 提问6 回答
  • 天使的炫翼

    17 粉丝531 提问5 回答
  • 爸爸

    腾讯 · 客户端安全 (已认证)

    4 粉丝4 提问5 回答

扫码关注云+社区

领取腾讯云代金券