我正在引用Y. Daniel Liang的书" Java编程简介,综合版,第9版"当我问这个问题时每次我看到使用构造函数创建的对象时,都会出现这样的情况:
Car engine = new Car().
但是在Daniel Liang的书中,我发现了以下代码(这里只写了前9行):
public class SimpleGeometricObject {
private String color = "white";
private boolean filled;
private java.util.Date dateCreated;
/** Construct a default geometric object */
public SimpleGeometricObject() {
dateCreated = new java.util.Date();
}
我不明白的是对象" dateCreated"不是以正常方式创建的,即:
SimpleGeometricObject dateCreated = new SimpleGeometrciObject();
我很困惑。
答案 0 :(得分:2)
实际上,dateCreated是Class Date中的一个Object,它位于java.util包中 并且在您定义的对象内部是SimpleGeoMetricObject
换句话说,Java家伙写道:
package java.util;
public Class Date{
//with its own attributes
public Date(){
...
//and its own constructor
}
...//and it's own methods
}
并将它提供给开发人员,以便我们可以在我们自己的类/对象中使用它,顺便说一下,如果你在文件的开头导入像这个import java.util.Date;
这样的包,你只需要像下面那样构造Date :Date objectDate = new Date();
答案 1 :(得分:0)
dateCreated只是SimpleGeometricObject的一个属性/变量。所以dateCreated的类型是Date,你在技术上使用:
来调用它的构造函数dateCreated = new java.util.Date();
答案 2 :(得分:0)
你不需要这个:
java.util.Date dateCreated=new java.util.Date();
因为dateCreated字段数据类型已在以下位置定义:
private java.util.Date dateCreated;
所以,基本上:
private java.util.Date dateCreated
定义数据类型,但初始化为null和
dateCreated=new java.util.Date();
将默认值初始化为dateCreated对象
答案 3 :(得分:0)
他只使用了Date类的完整限定名,包括包名“java.util”。仅根据我们在此处看到的内容,他没有理由这样做。唯一真正的理由是,如果有另一个类,在另一个包中,也称为Date,他需要能够区分这两个。或者他可能只是出于某种原因指出,Date类在那个特定的包中。