伊莉討論區

標題: 程式碼方法串接的定義 [打印本頁]

作者: 1006910211    時間: 2016-9-7 03:19 PM     標題: 程式碼方法串接的定義

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

語法中"java"是String、toUpperCase()回傳型別為String、subString()回傳型別為String
所以才可以串接再一起嗎??還是有其他規則,如果是的話底下這兩個方法為何可以串接在一起
getResource().gerString()
greResource回傳Resource型別,gerString回傳String型別。為何可以串一起
麻煩各位大大釐清我的觀念與疑惑 謝謝

作者: kwj    時間: 2016-9-7 05:33 PM

本帖最後由 kwj 於 2016-9-7 05:36 PM 編輯
  1. public class ClassA {
  2.     public ClassA add () {
  3.         return this;
  4.     }

  5.     public ClassB getB () {
  6.         return new B();
  7.     }
  8. }

  9. public class ClassB {
  10. }
複製代碼
上面這個例子,就可以寫出 String str = new ClassA().add().getB().toString(); 這樣的串接了。
而實際上,上面這行串接出來的方法,跟下面這段完全是等義的呼叫。
  1. ClassA a1 = new ClassA();
  2. ClassA a2 = a1.add();
  3. ClassB b = a2.getB();
  4. String str = b.toString();
複製代碼

作者: 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();







歡迎光臨 伊莉討論區 (http://www08.eyny.com/) Powered by Discuz!