Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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 - Fatal编程技术网

Java构造函数是否返回对象或对象';什么时候打电话来的?

Java构造函数是否返回对象或对象';什么时候打电话来的?,java,Java,我想知道Java中的构造函数是否返回一些东西。我知道没有像“5”或“Hello World”这样的返回值。但是如果我们给它分配一个变量: People person = new People(); 那么,返回对象或ID在逻辑上是否有意义?存储对象的内存中的引用是否分配给人 我现在正在考虑这个问题,因为我正在学习python,希望将\uuuu new\uuuu方法连接到构造函数,然后将\uuuu init\uuu连接到构造函数的主体(即初始值)。我的教授一直告诉我新的不存在,所以我希望能得到一个

我想知道Java中的构造函数是否返回一些东西。我知道没有像“5”或“Hello World”这样的返回值。但是如果我们给它分配一个变量:

People person = new People();
那么,返回对象或ID在逻辑上是否有意义?存储对象的内存中的引用是否分配给人


我现在正在考虑这个问题,因为我正在学习python,希望将
\uuuu new\uuuu
方法连接到构造函数,然后将
\uuuu init\uuu
连接到构造函数的主体(即初始值)。我的教授一直告诉我新的不存在,所以我希望能得到一个更清楚的答案

在Java中,只有原语和对象引用作为字段、参数和局部变量的类型。引用有点像ID,只是它可以随时更改,而无需知道何时发生

引用更接近于指针或对象索引的概念。它指的是一个内存位置

new
在Java中肯定是一个关键词,所以说它不存在并没有什么意义。您可以说它没有字节码中的一对一映射,除了字节码本身在虚拟机上运行,而且实际运行的机器可能会有很大的不同。i、 将字节码视为事情“真正”发生的方式没有多大意义。

构造函数不是“正常”方法。您必须将运算符
new
与构造函数一起使用,然后才能引用对象,因此这是指向内存中位置的指针(id)

构造函数声明看起来像方法声明,除了 它们使用类的名称,并且没有返回类型

简短回答:没有

更多答案:“返回”某物的是
new
操作符

创建类的新实例时(通过
new
操作符),必须向JVM提供两条信息:要实例化的类的名称和构造新对象所需的任何参数(构造函数参数)

为此,java需要以下语法:

Type1 variableName = new Type2(parameter list);

在您的示例中:
People-person=new-People()
People是名为person的引用的类型,是被实例化的对象的类型(即新人员)。构造函数不需要参数(无参数构造函数或默认构造函数),因此参数列表是“()”

构造函数的返回类型是类本身。

您不能认为它们是空的,但它保证在堆上分配内存并初始化成员字段,并最终返回新分配对象的地址,我们使用这些变量作为引用变量。根据我,当使用“新”关键字的构造函数时,它分配该对象的内存空间。 例如:在您的代码中
People person=new People()


它会自动分配内存中新创建的对象“person”所需的空间。

抱歉,格式设置搞砸了。我是说python中的“新”。他完全忽略了它,说它创建了对象,但是如果它没有返回对象,并且被传递了一个对象,它怎么能创建它呢?这就是为什么我想将u u; new u_;与创建对象相关联
之前讨论过的_; init uu u;表示它创建了对象,但如果它不返回对象
。从技术上讲,这是不对的。类的
\uuuu init\uuuu
方法返回
None
。在python中,一切都是一类对象。我的建议是不要像这样比较每种语言的细节。Python的
\uuuuu new\uuuu
\uuuu init\uuuu
方法与大多数其他语言的构造函数截然不同。尤其是像python这样的语言,这里没有返回类型。