2009-06-04 111 views
1

我一直在編寫.NET軟件多年,但已經開始涉足Java領域了。雖然語法相似,但方法往往不同,所以我在這些概念翻譯中尋求一些幫助。等效於.NET的構造函數

屬性

我知道屬性是隻是抽象的get_/set_方法 - 在C#中的相同。但是,通用的命名約定是什麼?你是否使用'get_'加上underscode或只是'get'。

構造

在C#基構造被自動調用。這在Java中也是如此嗎?

活動

樣特性,在.NET事件被抽象的是一個委託對象上工作add_/remove_/fire_方法。在Java中是否有相當於?如果我想使用某種用戶模式,是否簡單地使用Invoke/Run方法定義接口並收集對象,或者是否存在對此模式的內置支持?

更新:一個多圖:

字符串格式化

是否有一個相當於的String.format?

回答

3

Java from a C# developer's perspective

雖然你其反過來:)

+0

雖然給出了一個體面的差異概述,但該文章包含一些錯誤,特別是與值類型有關的錯誤。 – CodesInChaos 2012-02-14 09:43:36

+0

我想這是一篇有趣的文章,但鏈接腐爛似乎已經使它現在無用。可惜你沒有複製/粘貼最相關的點。 :( – GrandOpener 2014-07-24 00:48:23

+0

已更新到另一網站上同一文章的網址。正如您所看到的,複製粘貼相關點將是非常不經濟的。 – Richard 2014-07-24 10:20:52

1

在Java bean屬性由得到其次是bean的名稱開頭的大寫字母preceeded。例如,屬性'color'將與方法'getColor()'和'setColor(int color)'(假定該屬性的類型爲int)相關聯。布爾屬性有一個特殊情況,getter將被稱爲'is'...,例如'isWhite()','isBlack()'。二傳手保持不變。

當在java中創建一個類時,它的所有父類構造函數都是按順序調用的,父類在子類之前。

Java中的事件特定於給定的事件模型,而不是該語言的核心部分。檢查Swing或SWT的文檔以獲取有關這些GUI工具包事件模型的信息。

3

爲了回答您的具體問題:

屬性

按照慣例,Java使用 「get」 或 「set」,隨後在上駝峯變量名。例如,「getUserIdentifier()」。布爾值經常會用「is」,而不是「get

構造

在Java中,超構造函數首先調用,降下來的類型層次。

活動

按照慣例(這是一個你會得到不同的...圖書館做略有不同的至少協議),Java使用名稱類似於「addEventTypeListener(EventTypeListener listener)」和「removeEventTypeListener(EventTypeListener listener)」的方法,其中EventType是事件類型的語義名稱(如MouseClick for addMouseClickListener),EventTypeListener是定義接收器上可用方法的接口(通常是頂級) - 顯然,其中一個或多個引用本質上是「火災」方法。

此外,通常還會定義一個Event類(例如,「MouseClickEvent」)。這個事件類包含有關事件的數據(可能是x,y座標等),通常是「火」方法的參數。

0

屬性getter和setter可以通過你想要哪個命名約定去,或者你的組織已經標準化。一個好的命名約定就是那些使用/看到它的人很常見的命名約定。也就是說,大多數Java社區使用getSomething/setSomething作爲getter和setter的命名約定。

基本構造函數會自動調用,就像C#一樣。