簡體   English   中英

以下代碼有什么區別

[英]What is the difference between the following code

我是Java新手。 我有一些基本的疑問。 請有人為我澄清一下,以便我提高我的Java技能,並能夠在此論壇中為他人提供幫助。

我有2行代碼。 我只想知道這兩行代碼之間的區別。

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

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

我的問題是:在第一行中,我們使用了new關鍵字,但是在第二行中,我們沒有使用任何關鍵字。 有什么區別,請有人向我解釋兩者的重要性。

您使用new來創建Date類的新實例(也稱為對象)。

而且cmSbmQuery.firstRow()將為您提供DateTime類(或其超類)的實例,因此您不想在那里使用new關鍵字。

有關更多詳細信息,您可以參考此內容

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

上面的代碼使用Date構造函數實例化一個新的Date對象。 該對象分配給Date變量sbmEndDate

鑒於,

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

在這里,我們正在調用變量cmSbmQuery的成員函數firstRow 該函數返回一個對象,該對象的類型不能僅從上述代碼中推斷出來。 然后將該對象類型轉換為DateTime ,然后將其分配給相同類型的變量cmSbmbillDttm

cmSbmQuery.firstRow() 

此行將返回您的DateTime對象,該對象在強制轉換后分配給cmSbmbillDttm。

第一行我們使用了“ new”關鍵字,但是第二行我們沒有使用任何關鍵字

1)在第一行中,通過調用Date構造函數創建新的Date對象

public Date(int year, int month, int date)  

new運算符通過為新對象分配內存並返回對該內存的引用來實例化一個類。 new運算符還調用對象構造函數。

2)第二行僅通過調用cmSbmQuery.firstRow()返回DateTime對象引用。
這里沒有創建新對象,而是返回了相同的對象引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM