我已经写了很多年的.NET软件,但我已经开始涉足Java语言了。虽然语法相似,但方法往往不同,所以我在这些概念翻译中寻求一些帮助。
属性
我知道属性被简单地抽象为get_/set_ methods在C#中也是如此。但是,通常接受的命名约定是什么?你是使用带有底层代码的'get_‘,还是只使用'get’本身。
构造器
在C#中,基本构造函数是自动调用的。在Java中也是这样吗?
事件
与属性类似,.NET中的事件被抽象为add_/remove_/fire_ methods,这些方法作用于一个委托对象。在Java中有没有等价物?如果我想使用某种订阅者模式,您是简单地定义一个带有调用/运行方法的接口并收集对象,还是对此模式有一些内置的支持?
更新:再多一张地图:
字符串格式化
有没有等同于String.Format的东西?
发布于 2009-06-04 20:51:50
Java from a C# developer's perspective
Dare用版本2更新了他最初的10年前的文章:C# from a Java Developer's Perspective v2.0
尽管对你来说是另一种方式:)
发布于 2009-06-04 19:28:49
要回答您的特定问题:
属性
按照惯例,Java使用"get
“或"set
”后跟驼峰大写的变量名。例如,"getUserIdentifier()
“。布尔型通常使用"is
“而不是"get
”
构造器
在Java中,超类构造函数首先被调用,在类型层次结构中向下递减。
事件
按照惯例(这是你得到的最小的共识,on...different库的做法略有不同),Java使用像"addEventTypeListener(EventTypeListener listener)
“和"removeEventTypeListener(EventTypeListener listener)
”这样的方法,其中EventType是事件类型的语义名称(像addMouseClickListener的MouseClick ),EventTypeListener
是定义接收器上可用的方法的接口(通常是顶级的)-显然,这些引用中的一个或多个本质上是一个"fire“方法。
此外,通常会定义一个事件类(例如,"MouseClickEvent
")。此事件类包含有关事件的数据(可能是x、y坐标等),通常是"fire“方法的参数。
发布于 2009-06-04 19:22:17
维基百科在这里有一个很好的深度比较:http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java
https://stackoverflow.com/questions/952527
复制相似问题