2009-06-04 117 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#一样。