Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类变量还是对象?_Java_Oop_Object_Syntax - Fatal编程技术网

Java 类变量还是对象?

Java 类变量还是对象?,java,oop,object,syntax,Java,Oop,Object,Syntax,如果一个程序包括两个名为地形和模拟的类,则地形类中有一行: private static Simulation sim; 这类似于创建simulation类的新对象,可通过以下语法实现: Simulation sim = new Simulation(); 或者这是否意味着sim是类类型Simulation的变量 public class terrain { private static Simulation sim; public static void main(Str

如果一个程序包括两个名为
地形
模拟
的类,则
地形
类中有一行:

private static Simulation sim;
这类似于创建simulation类的新对象,可通过以下语法实现:

Simulation sim = new Simulation();
或者这是否意味着
sim
是类类型
Simulation
的变量

public class terrain {
    private static Simulation sim;

    public static void main(String[] args) {}
}

public class Simulation {}
类似于创建simulation类的新对象,可以通过以下语法实现:


否,使用此
专用静态模拟sim卡
您正在声明类仿真的一个对象,该对象位于下面的类
地形
中,而不是您实例化的该类对象。

私有静态仿真sim仅声明一个静态的未初始化变量

您仍然需要将其分配给实例,例如:


private static Simulation sim=new Simulation()

这是
地形
类中
模拟
类型的
静态
(类)变量的声明

这是否意味着
sim
是类类型
Simulation
的变量

public class terrain {
    private static Simulation sim;

    public static void main(String[] args) {}
}

public class Simulation {}
是的,的确如此

这是否类似于创建模拟类的新对象

不,您只是声明了它,没有初始化。我在声明之后直接初始化了它:

private static Simulation sim = new Simulation();

最好阅读入门教程,了解变量和对象的确切含义。这些都是您需要冷理解的关键概念。有大量关于静态变量的内容,以及许多此类声明的示例。但都是一样的——您在两种情况下都声明了静态变量,一种是基元,另一种是引用变量。唯一的区别在于初始值,对于未初始化的参考变量,初始值始终为
null
,您可以将对象视为可以保留的内存空间,以容纳其属性。在这种情况下,模拟是一个变量(因为您可以为其赋值),它是一个对象(因为可以实例化它并为其属性赋值)。我希望这有助于澄清:-)@Leo:不,对不起,我是个固执的人,但我们不能给新手错误的信息,理解这些概念是至关重要的<代码>模拟
不是一个变量。这是一种类型,也是一种类别。只有
sim
是模拟类型的变量
sim
可以分配一个
Simulation
对象或一个属于
Simulation
子对象的任何类型的对象。