
- Groovy 教程
- Groovy - 首頁
- Groovy - 概述
- Groovy - 環境
- Groovy - 基本語法
- Groovy - 資料型別
- Groovy - 變數
- Groovy - 運算子
- Groovy - 迴圈
- Groovy - 決策制定
- Groovy - 方法
- Groovy - 檔案I/O
- Groovy - 可選值
- Groovy - 數字
- Groovy - 字串
- Groovy - 範圍
- Groovy - 列表
- Groovy - 對映
- Groovy - 日期和時間
- Groovy - 正則表示式
- Groovy - 異常處理
- Groovy - 面向物件
- Groovy - 泛型
- Groovy - 特性
- Groovy - 閉包
- Groovy - 註解
- Groovy - XML
- Groovy - JMX
- Groovy - JSON
- Groovy - DSL
- Groovy - 資料庫
- Groovy - 構造器
- Groovy - 命令列
- Groovy - 單元測試
- Groovy - 模板引擎
- Groovy - 元物件程式設計
- Groovy 有用資源
- Groovy - 快速指南
- Groovy - 有用資源
- Groovy - 討論
Groovy - 方法
Groovy 中的方法可以使用返回型別定義,也可以使用def關鍵字定義。方法可以接收任意數量的引數。定義引數時,不必顯式定義型別。可以新增諸如 public、private 和 protected 之類的修飾符。預設情況下,如果沒有提供可見性修飾符,則該方法為 public。
最簡單的方法型別是沒有引數的方法,如下所示:
def methodName() { //Method code }
以下是簡單方法的示例
class Example { static def DisplayName() { println("This is how methods work in groovy"); println("This is an example of a simple method"); } static void main(String[] args) { DisplayName(); } }
在上面的示例中,DisplayName 是一個簡單的方法,它包含兩個 println 語句,用於將一些文字輸出到控制檯。在我們的靜態 main 方法中,我們只是呼叫 DisplayName 方法。上述方法的輸出將是:
This is how methods work in groovy This is an example of a simple method
方法引數
如果方法的行為由一個或多個引數的值決定,則該方法通常更有用。我們可以使用方法引數將值傳遞給被呼叫的方法。請注意,引數名稱必須彼此不同。
最簡單的方法型別是有引數的方法,如下所示:
def methodName(parameter1, parameter2, parameter3) { // Method code goes here }
以下是帶引數的簡單方法示例
class Example { static void sum(int a,int b) { int c = a+b; println(c); } static void main(String[] args) { sum(10,5); } }
在這個例子中,我們建立了一個帶有 2 個引數 a 和 b 的 sum 方法。兩個引數都是 int 型別。然後,我們從 main 方法呼叫 sum 方法並將值傳遞給變數 a 和 b。
上述方法的輸出將是值 15。
預設引數
Groovy 還提供了一種在方法中為引數指定預設值的方法。如果未向方法的引數傳遞值,則使用預設值。如果同時使用非預設引數和預設引數,則應注意預設引數應定義在引數列表的末尾。
以下是帶引數的簡單方法示例:
def someMethod(parameter1, parameter2 = 0, parameter3 = 0) { // Method code goes here }
讓我們看一下之前看到的兩個數字相加的示例,並建立一個具有一個預設引數和另一個非預設引數的方法:
class Example { static void sum(int a,int b = 5) { int c = a+b; println(c); } static void main(String[] args) { sum(6); } }
在這個例子中,我們建立了一個帶有兩個引數 a 和 b 的 sum 方法。兩個引數都是 int 型別。本例與前例的區別在於,在本例中,我們為 b 指定了預設值 5。因此,當我們從 main 方法呼叫 sum 方法時,可以選擇只傳遞一個值 6,該值將分配給 sum 方法中的引數 a。
上述方法的輸出將是值 11。
class Example { static void sum(int a,int b = 5) { int c = a+b; println(c); } static void main(String[] args) { sum(6,6); } }
我們也可以透過傳遞 2 個值來呼叫 sum 方法,在我們上面的例子中,我們傳遞了 2 個值為 6 的值。第二個值為 6 的值實際上將替換分配給引數 b 的預設值。
上述方法的輸出將是值 12。
方法返回值
方法也可以將值返回給呼叫程式。這在現代程式語言中是必需的,在現代程式語言中,方法執行某種計算,然後將所需的值返回給呼叫方法。
以下是帶返回值的簡單方法示例。
class Example { static int sum(int a,int b = 5) { int c = a+b; return c; } static void main(String[] args) { println(sum(6)); } }
在我們上面的示例中,請注意,這次我們為 sum 方法指定了一個返回型別 int。在方法中,我們使用 return 語句將 sum 值傳送到呼叫 main 程式。由於方法的值現在可用於 main 方法,因此我們使用 println 函式在控制檯中顯示該值。
上述方法的輸出將是值 11。
例項方法
與 Java 語言一樣,方法通常在 Groovy 中的類內部實現。類只不過是建立不同物件的藍圖或模板,它定義了物件的屬性和行為。類物件表現出其類定義的屬性和行為。因此,行為是透過在類內部建立方法來定義的。
我們將在後面的章節中更詳細地介紹類,但以下是類中方法實現的示例。在我們之前的示例中,我們將方法定義為靜態方法,這意味著我們可以直接從類訪問這些方法。下一個方法示例是例項方法,其中方法是透過建立類的物件來訪問的。我們將在後面的章節中介紹類,現在我們將演示如何使用方法。
以下是方法實現示例。
class Example { int x; public int getX() { return x; } public void setX(int pX) { x = pX; } static void main(String[] args) { Example ex = new Example(); ex.setX(100); println(ex.getX()); } }
在我們上面的示例中,請注意,這次我們沒有為類方法指定靜態屬性。在我們的 main 函式中,我們實際上是建立了 Example 類的例項,然後呼叫了 'ex' 物件的方法。
上述方法的輸出將是值 100。
區域性引數和外部引數名稱
與 Java 一樣,Groovy 也提供了局部引數和全域性引數的功能。在下面的示例中,lx 是一個區域性引數,其作用域僅限於 getX() 函式內部,而 x 是一個全域性屬性,可以在整個 Example 類內部訪問。如果我們嘗試在 getX() 函式外部訪問變數 lx,我們將收到錯誤。
class Example { static int x = 100; public static int getX() { int lx = 200; println(lx); return x; } static void main(String[] args) { println(getX()); } }
執行上述程式時,我們將得到以下結果。
200 100
此方法適用於屬性
與 Java 一樣,groovy 可以使用 this 關鍵字訪問其例項成員。下面的示例顯示了當我們使用語句 this.x 時,它如何引用其例項並相應地設定 x 的值。
class Example { int x = 100; public int getX() { this.x = 200; return x; } static void main(String[] args) { Example ex = new Example(); println(ex.getX()); } }
執行上述程式時,我們將得到在控制檯中列印的結果 200。