void与构造函数的方法之间的区别

时间:2013-10-31 19:07:50

标签: java methods constructor

使用带有void的方法和构造函数有什么区别?例如:

public class Time {
    public void getMethod() {

    }

    public Time() {

    }

}

我在哪里使用什么? 谢谢

6 个答案:

答案 0 :(得分:2)

  1. 在创建new Object()后调用构造函数。通常要做一些初始化,准备对象。方法 - 你喜欢的时候打电话给他们。
  2. 构造函数只能在某个对象上调用一次。方法可以多次调用。
  3. 构造函数不能是static,因为它不符合逻辑,static表示“属于类,不属于对象”。方法可以是static

答案 1 :(得分:1)

构造函数是属于与其创建关联的类的方法。使用Object a = new Object()声明对象时;这是调用构造函数的地方。

您应该使用构造函数来组织您为类的其余部分所需的任何数据。例如,如果要创建Time类,Time构造函数可能会获取当前时间并将其设置在变量中以便稍后使用。

其他方法就是这样。它们是为类进行一些计算或工作的方法。例如,您可能有一个接受日期的方法,并返回输入日期和当前日期之间的天数。

答案 2 :(得分:0)

'void'只是方法的返回类型。

构造函数没有返回类型。

答案 3 :(得分:0)

构造函数用于创建新对象。它的使用导致返回对新对象的引用(虽然从技术上讲,构造函数本身不返回引用)。因为这样的void对于构造函数来说是无意义的关键字。它用作Object o=new Object(parametersIfApplicable)

另一方面,带有void返回参数的方法什么都不返回(但通常会更改对象内部的数据(或者不经常更改传递给它的对象之一);否则调用它将毫无意义。 / p>

摘要

  • 调用构造函数会导致新对象并返回对它的引用
  • 在现有对象上调用(非静态)方法来做一些工作;它什么都不返回

答案 4 :(得分:0)

void方法特别不返回任何数据或对象。实际上,构造函数不会返回任何内容。

从硬件角度来看,它初始化调用者在对象声明分配的构造中给出的信息; Doughty在“References to and Creating Objects”下提供了广泛的概述。

为了使用方法getMethod(),您必须创建类Time的实例,这是通过构造其构造函数定义的对象来完成的。

Time currentTime; //Declaration of object only allocates space in memory for it currentTime = new Time() //Constructs an instance of Time
//and assigns the object reference to variable currentTime

然后使用返回void的方法:

currentTime.getMethod();

只需调用方法即可执行其任务。它不返回任何数据或对象,而是返回到调用它的位置。

答案 5 :(得分:0)

当构造中的对象从其他任何地方调用时,大多数对象的方法将以相同的方式被调用。构造者是不同的。构造函数是一种特殊的void方法,不能直接从" normal"码。相反,所有构造函数调用必须采用以下两种形式之一:

  • 在一个构造函数的开头上调用当前类或超类中的另一个构造函数。

  • 系统生成的调用,作为以下序列的一部分(x = new Foo(123);给出的伪代码):

    // "Magical" system routine to create an object without running constructors
    Foo temp = InternalSystemMagic.CreateNewObject([foo's type]); 
    temp.Foo_constructor(p1); // Now invoke the constructor
    x = temp; // Note that if the constructor throws, x will not get set.
    

请注意,编译器可以生成代码,首先创建类型为Foo的对象而不运行构造函数,然后在新创建的类型上调用构造函数,即使没有其他操作也不合法