以下代码有什么区别

时间:2013-12-26 08:19:48

标签: java

我是一名Java新手。我有一些基本的疑虑。请有人为我澄清一下,以便我可以提高我的java技能,并能够在这个论坛中帮助其他人。

我有2行代码。我只是想知道这两行代码之间的区别。

1)Date sbmEndDate = new Date(getSystemDateTime().getYear(), mnth, 1);

2)DateTime cmSbmbillDttm = (DateTime)cmSbmQuery.firstRow();

我的问题是:在第一行中我们使用了new关键字,但在第二行中我们没有使用任何关键字。有什么区别,请有人向我解释两者的重要性。

4 个答案:

答案 0 :(得分:0)

您使用new创建Date类的新实例(也称为对象)。

cmSbmQuery.firstRow()将为您提供DateTime类(或其超类)的实例,因此您不希望在那里使用new关键字。

有关详细信息,请参阅this

答案 1 :(得分:0)

Date sbmEndDate = new Date(getSystemDateTime().getYear(), mnth, 1);

上面的代码使用Date构造函数来实例化一个新的Date对象。此对象已分配给Date变量sbmEndDate

然而,

DateTime cmSbmbillDttm = (DateTime)cmSbmQuery.firstRow();

在这里,我们调用变量firstRow的成员函数cmSbmQuery。此函数返回一个对象,其类型不能仅从上面的代码中推断出来。然后将此对象类型转换为DateTime,然后将其分配给相同类型的变量cmSbmbillDttm

答案 2 :(得分:0)

cmSbmQuery.firstRow() 

此行返回DateTime对象,该对象在转换后分配给cmSbmbillDttm。

答案 3 :(得分:0)

  

第一行我们使用了“new”关键字,但在第二行中我们没有使用任何关键字

1)在第一行中,通过调用Date constructor

创建新的日期对象
public Date(int year, int month, int date)  
  

new运算符通过为新对象分配内存并返回对该内存的引用来实例化一个类。 new运算符还调用对象构造函数。

2)第二行只需通过调用DateTime返回cmSbmQuery.firstRow()对象引用 这里没有创建新对象,而是返回相同的对象引用。