Java相当于.NET构造

时间:2009-06-04 19:13:29

标签: java .net

我多年来一直在编写.NET软件,但已经开始涉足Java了。虽然语法类似,但方法通常不同,所以我要求在这些概念翻译中提供一些帮助。

属性

我知道属性只是抽象的get_ / set_方法 - 在C#中是相同的。但是,通常接受的命名约定是什么?你是使用带有底码的'get_'还是只是'获得'。

构造

在C#中,自动调用基础构造函数。这在Java中也是如此吗?

事件

与属性类似,.NET中的事件是抽象的add_ / remove_ / fire_方法,它们对Delegate对象起作用。 Java中是否存在等价物?如果我想使用某种订阅者模式,您只需使用Invoke / Run方法定义一个接口并收集对象,或者是否对此模式有一些内置支持?

更新:还有一张地图:

字符串格式

是否有与String.Format等效的对象?

6 个答案:

答案 0 :(得分:3)

回答您的具体问题:

<强>属性

按照惯例,Java使用“get”或“set”,后面跟上驼峰情况下的变量名。例如,“getUserIdentifier()”。布尔经常使用“is”代替“get

<强>构造

在Java中,首先调用超类构造函数,然后在类型层次结构中向下移动。

<强>事件

按照惯例(这是你最不同意的......不同的库会略有不同),Java使用名为“addEventTypeListener(EventTypeListener listener)”和“removeEventTypeListener(EventTypeListener listener)”的方法,其中EventType是事件类型的语义名称(如MouseClick for addMouseClickListener),EventTypeListener是定义接收器上可用方法的接口(通常是顶级) - 显然这些引用中的一个或多个基本上是一种“火”的方法。

此外,通常会定义一个Event类(例如,“MouseClickEvent”)。此事件类包含有关事件的数据(可能是x,y坐标等),通常是“fire”方法的参数。

答案 1 :(得分:3)

Java from a C# developer's perspective

Dare Obasanjo用版本2更新了他原来10岁的文章: C# from a Java Developer's Perspective v2.0

虽然对你而言却相反:)

答案 2 :(得分:1)

维基百科在这里有一个很好的深度比较:http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java

答案 3 :(得分:1)

java中的bean属性之前是get后跟以大写字母开头的bean名称。例如,属性'color'将与方法'getColor()'和'setColor(int color)'相关联(假设属性为int类型)。布尔属性有一个特殊情况,getter将被称为'is'......如'isWhite()','isBlack()'。二传手保持不变。

在java中创建类时,将按顺序调用其所有父类构造函数,在子元素之前调用父类。

Java中的事件特定于给定的事件模型,而不是该语言的核心部分。检查Swing或SWT的文档,以获取有关这些GUI工具包的事件模型的信息。

答案 4 :(得分:0)

Sun's Code Conventions是Java做事和命名的好方法。

答案 5 :(得分:0)

财产获取者和制定者可以按照您希望的任何命名惯例,或者您的组织已经标准化。一个好的命名约定只是那些使用/看到它的人之间的共同点。也就是说,Java社区中的大多数人都使用'getSomething / setSomething'作为getter和setter的命名约定。

自动调用基础构造函数,就像C#。