我试图找到为什么不能将类创建为静态?喜欢:
public static class Qwert{
public static void main(String args[]){
int x = 12;
while(x<12){
x--;
}
System.out.println(" the X value is : "+ x);
}
}
Run Code Online (Sandbox Code Playgroud)
Kev*_*ner 58
在Java中,static
关键字通常将方法或字段标记为每个类的实例不存在一次,但是曾经一次.一个类无论如何都存在,所以实际上,所有类都是以这种方式"静态"的,所有对象都是类的实例.
static
确实对内部类有意义,这是完全不同的:通常内部类实例可以访问它所绑定的外部类实例的成员,但是如果内部类是static
,则它没有这样的引用并且可以实例化没有外部类的实例.也许你在某个地方看到了它,然后尝试在顶级类中使用它,它没有意义.
或许你在其他语言中看到它,比如C#,它的语法非常像Java.
(有一次我无法弄清楚为什么外部类实例没有被垃圾收集 - 这是因为我在其他地方保留了对其内部类实例之一的引用,而内部类不是static
,所以有一个引用外部类实例.所以默认情况下,我static
现在创建内部类.)
要防止特定类被实例化,您应该添加一个私有的构造函数.这会阻止"任何其他"类创建类型的对象Qwert
.
例如:
public static class Qwert{
private Qwert() {}
public static void main(String args[]){
int x = 12;
while(x<12){
x--;
}
System.out.println(" the X value is : "+ x);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
41238 次 |
最近记录: |