java - 关于中文写类名及方法名的疑问?
天蓬老师
天蓬老师 2017-04-17 16:32:42
0
12
1074

众所周知,java是支持中文的方法名和类名的,如下面代码

public class 谁的年龄大{
    //------------这就叫代码的可读性---------
    public static void main(String[] args) {
        int 张三的年龄 = 20;
        int 李四的年龄 = 21;
        boolean 张三的年龄是不是比李四的年龄要大 = 判断甲的年龄大还是乙大(张三的年龄, 李四的年龄);
        if (张三的年龄是不是比李四的年龄要大 == 对) {
            在控制台输出这么一句话并换行("张三的年龄大");
        } else if (张三的年龄是不是比李四的年龄要大 == 大错特错) {
            在控制台输出这么一句话并换行("李四的年龄大");
        }
    }
    
    //--------------定义自然语言(把你的注释删掉,改成方法名)--------------
    static boolean 对 = true;
    static boolean 大错特错 = false;
    
    /**
     * 你确定我应该写注释?
     */
    public static boolean 判断甲的年龄大还是乙大(int 甲的年龄,int 乙的年龄){
        return 甲的年龄 > 乙的年龄;
    }
    
    public static void 在控制台输出这么一句话并换行(String 要在控制台输出的话){
        System.out.println(要在控制台输出的话);
    }
}

输出 -> 李四的年龄大

中文化的好处在于,代码的可读性非常之强

上面这段代码,我拿给一个不懂编程的高中生看,也能非常清晰的看懂代码及里面的逻辑

而在团队开发中,成员素质良莠不齐,我个人觉得如果统一使用这一的命名规范的话,开发效率至少能提升50%以上!

中文化的缺点

  1. 不够国际化

  2. 在某些系统中,会出现乱码情况

能否用中英文混杂命名的方式起方法名

所以我最后的思考是,能否用中英文混杂的命名方法命名和编写查看代码,在编译运行的时候,统一自动把方法名类名中的中文去掉只留下英文,这样的方式是否可行呢?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(12)
黄舟
System.out.println("这就是为什么很多招聘的时候要求英语过四级");

雖然中華文字是非常棒的存在,但,中文的字庫容量是程式設計界的毒瘤。 。

update - 2016/1/4 14:18:10update - 2016/1/4 14:18:10

若如楼主所言,那么为啥全英文写的java源码里有比源码还要长

若如樓主所言,那麼為啥全英文寫的java源碼裡有比源碼還要長的註釋呢,托肘深思ing....

Eg.

/**
     * Prints a string followed by a newline. The string is converted to an array of bytes using
     * the encoding chosen during the construction of this stream. The bytes are
     * then written to the target stream with {@code write(int)}.
     *
     * <p>If an I/O error occurs, this stream's error state is set to {@code true}.
     *
     * @param str
     *            the string to print to the target stream.
     * @see #write(int)
     */
    public synchronized void println(String str) {
        print(str);
        newline();
    }

註解的重點在於把你程式碼段的內容,進出口表述詳盡,清晰即可。 至於用何種語言來實現,這不是重點。 🎜
洪涛

個人覺得看不懂方法名對效率的影響實在是很小,首先代碼是有註釋滴,雖然某些有潔癖的人會說最好的代碼是自註釋滴,但對領域性的業務邏輯還是有註解比較好,註解可以是可以寫中文滴。其次,邏輯性差的程式碼就算寫成中文,大學生也未必看得懂,所以演算法、思考以及對常用程式碼邏輯的熟悉程度才對效率影響較大。本人看segmentfault還常常百思不得其解呢。

所以成員素質良莠不齊是兄弟你團隊效率不高的根因,多做培訓,多寫練習,多結對程式設計才是正道哇。

黄舟

你不覺得一個方法名,和變數名實在太長嗎?這名字我讀到一半就不太想讀了,還有就是需要用到輸入法,輸入真心不如abc來的方便。 。 。

左手右手慢动作

我先說一點:

中文沒有大小寫,沒辦法享受駝峰式命名法的好處。中文是由組成的,需要閱讀者自己根據語義去區分哪些字組成了一個詞,很耗時間,而且說不定存在歧義導致斷錯。而英文,可以透過將一個單字的首字母大寫來區分。

另外,我覺得,一個人只要學完國中英語,就基本上可以應付程式設計中需要的英文了。所以,搞中文程式設計是為小學沒畢業的人服務的嗎?

迷茫

你知道在程式設計中切換輸入法多噁心嗎

左手右手慢动作

很久以前,據說有人想用阿拉伯文編碼,最後發現不如用英文…

語言文字只是工具,不合適就是不合適。

PHPzhong

第一:會增加程式碼的大小,這是必然
第二:判斷甲的年齡大還是乙大(張三的年齡, 李四的年齡),這句話我半天才反應過來這是個方法調用
第三:英文閱讀能力不應該是程式設計的絆腳石,如果常年接觸這種程式碼,你確定你還能看得懂類庫?還能保證技術與國際接軌?

其他的也就是個人喜好了,說實話真這樣寫也無可厚非

Ty80

也算是長見識了,真是奇葩無處不有,題主哪家公司的敢否報上大名?我們躲!

黄舟

只是翻譯了下名字,這些名字就算寫英文也應該可以看懂的。

Ty80

就我個人而言 最起碼一點打英文代碼比中文快
一點點代碼看不出什麼 如果一個項目中全是中文 可想而知浪費多少時間

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!