数组中的java新运算符
我觉得新的接线员有点混乱。我现在的理解是
new ClassName(...)
创建一个实例并调用类的构造函数。但是,在启动阵列时,new会做什么?例如,我觉得下面的两个新操作符是不同的,但无法解释清楚
Employee[] staff = new Employee[3];
staff[0] = new Employee(...);
有什么区别吗
谢谢
你可以在下面搜索框中键入要查询的问题!
我觉得新的接线员有点混乱。我现在的理解是
new ClassName(...)
创建一个实例并调用类的构造函数。但是,在启动阵列时,new会做什么?例如,我觉得下面的两个新操作符是不同的,但无法解释清楚
Employee[] staff = new Employee[3];
staff[0] = new Employee(...);
有什么区别吗
谢谢
# 1 楼答案
正在用3个“位置”初始化
Employee
数组,这些位置可以保存对Employee
对象的引用这意味着它在RAM(>;30字节)中为
Employee
类的一个对象/实例(例如10字节)保留了3倍的空间但是你的数组是用“null”初始化的。 当
staff[0] = new Employee(...);
正在创建对新创建的Employee
类型对象的引用时。# 2 楼答案
new Employee[3]
创建一个数组,可以保存对3个Employee实例的引用。它们中的每一个都被初始化为nullstaff[0] = new Employee(...);
创建一个Employee
实例,并将其引用分配给数组的第一个索引# 3 楼答案
调用类的构造函数时,会创建该类的实例(对象)。“new”关键字告诉编译器创建一个对象。数组是一个类,你可以将对象设置为SomeClass的数组类型。您需要使用关键字“new”,因为您仍在创建对象