2

构造函数就像一个类同名的方法,用于初始化对象;也可以通过方法来完成。在内部解释调用对象时发生了什么?

4

7 回答 7

0

构造函数用于在创建期间进行初始化。其他方法将进行初始化后构造。如果在构造函数中发生异常,则不会创建对象,但在另一种情况下则不会创建。

于 2013-07-29T04:55:47.663 回答
0

初始化对象时会自动调用构造函数 - 当您使用 new 创建对象时。因此,您在 1 步中分配和初始化对象。这不能用普通函数完成——你需要在没有构造函数的情况下分两步完成

于 2013-07-29T04:57:31.420 回答
0

构造函数就像一个方法(没有返回类型)具有相同的类名,用于在创建对象之前初始化变量。

如果您不编写构造函数,编译器会在内部创建一个默认构造函数。

于 2013-07-29T04:58:45.723 回答
0

您可以在创建构造函数对象后立即执行构造函数的一些基本代码,但其基本目的是在创建对象期间进行初始化。

于 2013-07-29T05:01:17.333 回答
0

方法只能通过实例调用,除非它是static. static构造函数比在 OO 世界中调用方法要好得多。

于 2013-07-29T05:01:31.173 回答
0

很多时候你的类会有一些内部状态。并且您希望确保在使用该类的实例之前初始化内部状态。

您可以在类中拥有一个方法来完成相同的工作这一事实是正确的,但是在大多数情况下这将是一个糟糕的设计,而面向对象编程只不过是一种设计范式。

在其他情况下,您可能希望确保在创建实例之前满足某些先决条件,这也可以由构造函数捕获。

于 2013-07-29T05:02:38.977 回答
0

default valid state在大多数情况下,对象在创建时必须有一些。例如,包装 Integer 类,任何 Integer 对象在创建时都必须具有有效的 int 值。构造函数是一种方式injecting that valid state inside a newly created object。它就像一个JVM兑现的合同。每当创建一个新对象时:

  • 然后分配内存

  • 调用该类的正确构造函数。

于 2013-07-29T05:38:07.070 回答