3

我有一些我想在多个类中使用的功能,这样做的正确方法是什么?

我想创建一个类并将我的函数设置为静态......或者可能实现需要这些函数的这个类?

你怎么看 ?

谢谢

4

4 回答 4

4

如果此方法不使用任何对象的任何实例变量,它可以(并且可能应该)确实是静态的,这使得它在任何地方都可用(假设它也是公共的)。

这种无状态的、全局可用的方法的好例子是类中的方法java.lang.Math

于 2012-05-04T17:57:06.013 回答
3

通常在静态实用程序类中实现独立于类实例的共享功能,这与 Java 实现对java.utils.Collections.

如果功能取决于实例,则可以通过将实现放在基类(通常是抽象基类)中来共享功能,并在需要相关功能的两个类中继承它。

最后,可以在包私有实用程序类中实现共享功能,将公共方法添加到调用该包私有实用程序类的两个类以进行实现。

于 2012-05-04T17:57:13.170 回答
1

这取决于函数的行为。在某些情况下,将函数放入单独的类并使其成为静态就足够了。但是如果您需要修改它的行为,您应该考虑使其成为非静态的,以便允许在后代类中覆盖它。

于 2012-05-04T17:57:10.377 回答
0

这通常使用包含静态方法的实用程序类来实现:

class MyCompanyUtils
{
    public static encloseInQuotes(String s)
    {
      /* code to wrap s in quotes */
    }

    public static removeTrailingSlash(String s)
    {
      /* code to remove trailing slash from a string */
    }
}
于 2012-05-04T18:03:32.017 回答