2011-09-10 75 views
2

我无法理解这意味着什么,以及它是如何编码类概念

Foo number = Foo.NUMBER; 

一样,是富与一成不变的东西的一类?

(这被张贴在分配中它说:“你可能想构建你的解决方案类似这样的”)

+3

一样,也许。它看起来更像是一个枚举的代码给我。 –

+1

@Hovercraft Full Of Eels,+1默认情况下,枚举是静态的。 :D – mre

+0

@mre:的确是他们!一个毫无价值的+1回复atcha! :D –

回答

2

NUMBERstatic(和finalFoo类的部件,其返回Foo对象。看看java.awt.Color课程。

+0

为什么没有Foo number = new Foo()或类似的东西? – bb2

+0

@ bb2,'Number'可能是一个静态实例。 – mre

+0

@ bb2使用java.awt.Color,您可以使用** new **关键字来创建对象,或者您可以直接从定义的静态FIELDS中获取实例。 – adatapost

0

是的,正如你所说。 Foo必须是一个类或一个原始类型,而Foo类必须有一个名为NUMBER的静态变量,该变量可以公开访问。

2
class Foo { 
    public static final Foo NUMBER = new Foo(); 
} 
//later... 
Foo number = Foo.NUMBER; 
0
class Foo { 
    public static Foo NUMBER = new Foo(); //might be final too... 
    public Foo { 
    // init Foo instance 
    } 
} 

这里是一个类的定义,这将允许你的代码发布到编译线的一个实例。 Foo是一个静态成员,类型为Foo,名称为NUMBER。

1

由于@Hovercraft在评论中指出,这是值得注意的是,这个语法可能(可能?)可以参照枚举:

public enum Foo { NUMBER } 

Foo number = Foo.NUMBER;