2011-02-24 108 views
-1

我在看一段我不完全理解的代码。这是它的样子:类名的静态方法?

public static ClassName MethodName(int parameter){ 
    //Method does its thing 
} 

这种类型的代码模式有没有名称?另外,它用于什么?

+1

编写该方法的人有幽默感怪异 – BrokenGlass 2011-02-24 23:39:30

+0

不是“Class Name Also”。它返回一些类型为ClassName的东西。可以是自己的课程或其他课程。它不是'static void ClassName MethodName()' – 2011-02-24 23:39:39

回答

2

它只是一个静态方法,它返回一个类型为ClassName的对象。你的意思是它是在ClassName课程中声明的吗?这很好,它只是意味着有问题的类有一个返回它自己的实例的静态方法。例如,这在工厂模式中通常使用。不是手动实例化类的实例,而是调用一个返回实例的静态方法。

+0

您是否从我的帖子中复制了第一行字? = P – 2011-02-24 23:43:07

+0

@Ed S .:恩,我甚至没有注意到这一点。我们相距不到一分钟,但:)我很少点击出现的“加载新答案”链接。我发现它分散注意力,而且很想复制。它在追求好答案方面做了一些破坏:) – David 2011-02-24 23:44:06

+0

哇,当然这就是答案。我不知道为什么我无法弄清这么简单的事情。我习惯看到public int doStuff(),所以变量类型通常是返回类型,而不是整个类。谢谢 – sooprise 2011-03-03 17:13:15

1

它只是一个返回类型为“ClassName”的对象的静态方法。看起来像它可能是一种工厂方法(?)

此外,它用于什么?

由于您的示例中没有定义,因此无法真正回答该问题。这只是一个具有通用名称的方法签名。

0

在你的例子中,该方法返回类ClassName的一个实例。

这实际上等价于任何其他方法,相当于public static String MethodName()。在一个类上创建一个静态方法是相当常见的,该方法返回一个相同类的实例,即一个工厂方法。

0

这只是一个类方法。你不必实例化任何东西来调用它。它只能访问其他静态方法和字段,因为如果没有实例,则不能调用任何非静态(非类)变量。