【发布时间】:2012-10-24 11:42:52
【问题描述】:
【问题讨论】:
标签: java
【问题讨论】:
标签: java
static与类定义的意义不在于该类是否可以实例化,而是该类是否必须从外部类的非静态方法中实例化。
非静态内部类实例与创建它们的实例相关联——内部类实例中有一个指向创建实例的指针(这在许多方面都很有用)。静态内部类实例与创建实例无关。
(我在 JVM 内部工作了大约 10 年,但我仍然觉得这很混乱。)
【讨论】:
类可以用java中的static关键字实例化吗?例如:静态类 c1(){ }
您的术语不正确。 “实例化一个类”是指创建一个类的实例;即创建一个对象。这是使用new 操作完成的。您的示例实际上是关于声明一个类。
话虽如此,是的,您可以将一个类声明为static,但这只能用于嵌套类;即一个类声明在另一个类中。
我对此感到困惑,内存映射与非静态的东西的请帮忙
我不知道你在说什么。如果您在这一点上需要更多帮助,则需要更清楚地解释自己。
【讨论】:
static 与内存映射没有任何关系。这意味着没有与之关联的实例。
对于static class,这意味着类的实例不与外部类实例关联。
【讨论】:
它打破了范式。考虑一下:静态成员是每个实例都具有的共同成员,但是不清楚如何将共享的这种想法扩展到一个类?
您希望静态关键字做什么?
【讨论】:
你可以有如下所示的静态类
class A
{
static class B //static inner class
{
static void dis()
{
System.out.println("this is me");
}
}
}
class four extends A.B
{
public static void main(String args[])
{
dis();
}
}
【讨论】: