使用带有 void 的方法和构造函数有什么区别?例如:
public class Time {
public void getMethod() {
}
public Time() {
}
}
我在哪里使用什么?谢谢
使用带有 void 的方法和构造函数有什么区别?例如:
public class Time {
public void getMethod() {
}
public Time() {
}
}
我在哪里使用什么?谢谢
new Object()
。通常会做一些初始化,准备对象。方法——你可以在你喜欢的时候调用它们。static
,因为它不合逻辑,static
说“属于类,而不是对象”。方法可以static
。构造函数是属于与其创建相关联的类的方法。当您使用 Object a = new Object()声明对象时;这是调用构造函数的地方。
您应该使用构造函数来组织课程其余部分所需的任何数据。例如,如果您正在创建一个 Time 类,则 Time 构造函数可能会获取当前时间并将其设置在一个变量中以供以后使用。
其他方法就是这样。它们是为类进行一些计算或工作的方法。例如,您可能有一个接受日期并返回输入日期与当前日期之间的天数的方法。
'void' 只是方法的返回类型。
构造函数没有返回类型。
构造函数用于创建新对象。它的使用导致返回对新对象的引用(尽管从技术上讲,构造函数并不返回引用本身)。因此 void 对于构造函数来说将是一个毫无意义的关键字。它被用作Object o=new Object(parametersIfApplicable)
另一方面,带有 void 返回参数的方法不返回任何内容(但通常会更改对象内的内部数据(或不太频繁地更改传递给它的对象之一);否则调用它将毫无意义)。
void 方法特别不返回任何数据或对象。务实地说,构造函数不返回任何内容。
从硬件的角度来看,它初始化了调用者在对象声明中分配的构造时给出的信息;Doughty 在“引用和创建对象”下提供了广泛的概述。
为了使用该方法,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();
只需调用该方法,以便它执行其任务。它不返回数据或对象,而是将控制权返回到调用它的位置。
一个对象的大多数方法在被正在构造的对象调用时的调用方式与从其他任何地方调用时的调用方式相同。构造函数不同。构造函数是一种特殊的void
方法,不能直接从“正常”代码中调用。相反,所有构造函数调用必须采用以下两种形式之一:
在一个构造函数的最开始调用当前类或超类中的另一个构造函数。
系统生成的调用,作为以下序列的一部分(为 给出的伪代码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
而不运行构造函数,然后在新创建的类型上调用一个构造函数,即使没有另一个操作都不合法。