lqxv 2011-05-11 12:04
浏览 1407
已采纳

请问,用中文作为 方法和变量的名字 有什么利弊?

在写 java 代码时,是可以用 [color=red]中文[/color]作为[color=red]变量名[/color]和[color=red]方法名[/color]的。从可读性和可维护性来说,似乎用中文作为 变量名和方法名 对我们中国人来说具有更好的可读性和更好的可维护性。

请问,你会这样用吗?为什么?

  • 写回答

74条回答 默认 最新

  • niko7 2011-05-18 14:49
    关注

    为了说这个问题,先来看个活生生的例子:http://blog.csdn.net/niko7/archive/2004/12/22/225327.aspx

    比如类名是中文的,每次new 的时候就麻烦了。方法名是中文的,调用的时候就麻烦了。
    这种麻烦主要是来自代码辅助生成时,按了“.”以后必须往下翻,或者切换到中文输入法输入,很麻烦。并且完全享受不到IDE的驼峰提示的好处了。

    还有个头疼的问题是,中文没有大小写区别,导致bean的属性命名规范体现不出来,所以会导致一些框架出现问题。而JavaBean的规范之所以那么规定,显示是没有考虑到中文。

    所以,中文能作为类名,方法名,属性名,变量名是纯属偶然,仅仅是因为Java内核支持UTF-8,所以这些字符都没有问题;也不会出现上面说的,找不到变量的问题,在class文件内都是同一编码的,jvm内核就是支持UTF-8的。可以放心使用。

    结论是:Java支持中文类名、方法名、属性名,并且不会因为乱码问题导致运行期链接失败。这是Java内核支持UTF-8这一特性决定的。
    但是Java语言规范里并不支持这一用法,可以从JavaBean规范看出来。
    很多框架不支持,是因为中文属性名与JavaBean规范不友好造成的。

    为了带来有限的“容易理解”,却导致程序功能不正常了,是得不偿失的,所以:不推荐使用。

    那么在属性名之外的地方,还是可以尝试使用的,比如成员变量名、类名、方法名中。
    Java5开始有枚举了,枚举值的名称相当于类名,使用中文优势蛮大的。

    因为现代IDE的突飞猛进,我有时候是用英文取个名,把代码写好,在后期优化的时候会把变量名重构成中文的。这样易于输入,也易于理解。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(73条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!