查看完整版本: 程式碼方法串接的定義
頁: [1]

1006910211 發表於 2016-9-7 03:19 PM

程式碼方法串接的定義

各位大大
我想問一下程式碼方法串接的定義是甚麼
例如
String str = "java".toUpperCase().subString();

語法中"java"是String、toUpperCase()回傳型別為String、subString()回傳型別為String
所以才可以串接再一起嗎??還是有其他規則,如果是的話底下這兩個方法為何可以串接在一起
getResource().gerString()
greResource回傳Resource型別,gerString回傳String型別。為何可以串一起
麻煩各位大大釐清我的觀念與疑惑 謝謝
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

kwj 發表於 2016-9-7 05:33 PM

本帖最後由 kwj 於 2016-9-7 05:36 PM 編輯

public class ClassA {
    public ClassA add () {
        return this;
    }

    public ClassB getB () {
        return new B();
    }
}

public class ClassB {
}
上面這個例子,就可以寫出 String str = new ClassA().add().getB().toString(); 這樣的串接了。
而實際上,上面這行串接出來的方法,跟下面這段完全是等義的呼叫。
ClassA a1 = new ClassA();
ClassA a2 = a1.add();
ClassB b = a2.getB();
String str = b.toString();
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

chevylin0802 發表於 2016-9-7 06:00 PM

本帖最後由 chevylin0802 於 2016-9-7 06:05 PM 編輯

簡單的說
JAVA是一種完全物件化的程式語言
這意味的是包括所有的變數都是物件
像是字元, 字串, 整數, 浮點數, 高精度浮點數都一樣是物件
也因此
任何一個物件內除了void之外
其它帶有回傳值的函式
都可以視為回傳的都是物件
也因此JAVA的函數串接
就變得非常容易發生以及了解

toUpperCase() 回傳的是一個字串物件
因此這個字串物件
就可以再繼續使用subString()這個函數
而這也就是假設原本很繁覆的寫法如下所示:
String a="java";
String b=a.toUpperCase();
String c=b.subString();
就可以直接簡化成:
String str="java".toUpperCase().subString();


...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]