Java么有C++的參數默認值的機制,要用重載,請看下面的對比
//C++參數默認值機制 #include <iostream> using namespace std; class testDefaultParam { public: testDefaultParam (int a, int b = 2){ cout << a * b << endl; } void test(int a = 1234){ cout << a << endl; } virtual ~testDefaultParam (){} private: /* data */ }; int main(int argc, const char *argv[]) { testDefaultParam t1(3); testDefaultParam t2(3, 3); cout << "---------------\n"; t1.test(4321); t1.test(); return 0; } /* 輸出: 6 9 --------------- 4321 1234 */
Java版本:用重載實現類似參數默認的機制
public class Test { Test(String s1, String s2){ System.out.println(s1 + "\t" + s2); } public Test(String s) { this(s, "default string");//調用已經寫好的構造函數,與普通重載不同,要用this } public void print(int a) { System.out.println(a); } public void print() { print(1234); } //這兩個print方法等價於C++中的print(a = 1234); public static void main(String[] args) { Test t1 = new Test("test", "s2"); Test t2 = new Test("test"); System.out.println("--------------------"); t1.print(); t1.print(4321); } } /* 輸出: test s2 test default string -------------------- 1234 4321 */
ps:
eclipse確實很不錯,會自動提示錯誤,可以告訴你的嘗試是不是正確——這個this的用法就是試出來的(當然,書上肯定是有的,Java標准里肯定是有的)
而且,eclipse的自動提示功能絲毫不遜色於visual studio的visual assistant(應該說是更強大),只要配置自動提示(免去按Alt+/的煩惱),方法是:
從Window -> preferences ->
Java -> Editor -> Content assist -> Auto-Activation
在.后面添加abcdefghijklmnopqrstuvwxyz
再談談Vim,即使有了Vim的snipmate,也感覺寫代碼更累一點(當然,比沒有要好多了),也許我還是入門玩家,或者還有些沒發現的插件,如果你知道,趕緊告訴我吧^_^