我是java的新手,因此可能是一个非常noob的问题:
我上课了
public class Foo{
private static String foo;
private String bar;
public Foo(String bar){
this.bar = bar;
}
}
Run Code Online (Sandbox Code Playgroud)
在我为类Foo实例化任何对象之前,我想设置那个静态变量foo.将在课堂上使用..我该怎么做?
另外,请纠正我的理解.foo的值在所有对象中都是相同的,因此将它声明为静态是否有意义?对?
public class Foo{
private static String foo = "initial value";
private String bar;
public Foo(String bar){
this.bar = bar;
}
}
Run Code Online (Sandbox Code Playgroud)
由于所有对象的值都相同,static因此使用正确.如果价值不仅static但也永远不变,那么你应该这样做:
public class Foo{
private static final String FOO = "initial value";
private String bar;
public Foo(String bar){
this.bar = bar;
}
}
Run Code Online (Sandbox Code Playgroud)
注意资本化是如何改变的?这是java惯例."常数"是NAMED_LIKE_THIS.
foo 将在所有的实例之间共享 Foo选项A.
private static String foo = "static variable";
选项B.
private static String foo;
static {
foo = "static variable";
}
Run Code Online (Sandbox Code Playgroud)
很少使用选项B,主要是当静态变量或潜在异常之间存在某些相互依赖关系时.
在任何一种情况下,加载类时都会发生静态init.
| 归档时间: |
|
| 查看次数: |
35159 次 |
| 最近记录: |