Method trong Groovy được xác định bằng kiểu trả về hoặc bằng từ khóa def. Các method có thể nhận bất kỳ số lượng đối số nào. Không cần thiết phải xác định rõ ràng các loại khi xác định arguments. Có thể thêm các modifier như public, private và protected. Theo mặc định, nếu không cung cấp define, method sẽ ở dạng public giống như hầu hết các ngôn ngữ lập trình khác.

Hướng dẫn sử dụng method trong groovy
Phụ lục:
Giới thiệu Method parameters Return values Instance Local and external Parameter
1. Giới thiệu
Giống như hầu hết các ngôn ngữ lập trình hiện nay, và gần nhất với java, groovy có thể khai báo method đơn giản bằng cú pháp:
def methodName() {
//Method code
}
Ta hãy nhìn qua một ví dụ đơn giản sau:
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();
}
}
Trong ví dụ trên, DisplayName là một method đơn giản bao gồm hai câu lệnh println được sử dụng để xuất một số văn bản ra bàn điều khiển. Trong phương thức static main , tôi chỉ gọi phương thức DisplayName. Đầu ra của phương thức trên sẽ là:
This is how methods work in groovy
This is an example of a simple method
2. Method Parameters
Cũng giống như hầu hết các ngôn ngữ lập trình khác, 1 method sẽ không thể trở nên hữu ích nếu thiếu đi parametes.
def methodName(parameter1, parameter2, parameter3) {
// Method code goes here
}
Một ví dụ ngắn gọn:
class Example {
static void sum(int a,int b) {
int c = a+b;
println(c);
}
static void main(String[] args) {
sum(10,5);
}
}
Trong ví dụ này, chúng ta đang tạo một method tính tổng với 2 tham số a và b. Cả hai tham số đều có kiểu int. Sau đó, chúng ta gọi phương thức sum từ method chính của mình và chuyển các giá trị cho các biến a và b.
Đầu ra của method trên sẽ có giá trị là 15.
Default Parameters
Ngoài ra còn có một thiết lập trong Groovy để chỉ định các giá trị mặc định cho các tham số trong các method. Nếu không có giá trị nào được truyền vào method cho các tham số thì các giá trị mặc định sẽ được sử dụng. Nếu sử dụng cả tham số mặc định và tham số không mặc định thì cần lưu ý rằng các tham số mặc định phải được xác định ở cuối danh sách tham số.
def someMethod(parameter1, parameter2 = 0, parameter3 = 0) {
// Method code goes here
}
Hãy xem lại ví dụ tương tự mà chúng ta đã xem xét trước đây về phép cộng hai số và tạo một phương thức có một tham số mặc định và một tham số không mặc định khác:
class Example {
static void sum(int a,int b = 5) {
int c = a+b;
println(c);
}
static void main(String[] args) {
sum(6);
}
}
Trong ví dụ này, chúng ta đang tạo một method tính tổng với hai tham số a và b. Cả hai tham số đều có kiểu int. Sự khác biệt giữa ví dụ này và ví dụ trước là trong trường hợp này chúng ta chỉ định giá trị mặc định cho b là 5. Vì vậy, khi gọi phương thức sum từ method main, chúng ta có tùy chọn chỉ truyền một giá trị là 6 và cái này sẽ được gán cho tham số a trong method sum.
Đầu ra của phương thức trên sẽ là giá trị 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);
}
}
Chúng ta cũng có thể gọi method sum bằng cách truyền 2 values. Trong ví dụ trên, chúng ta truyền 2 vs 6. Giá trị thứ hai là 6 sẽ thực sự thay thế giá trị mặc định được gán cho tham số b.
Đầu ra của phương thức trên sẽ là giá trị 12.
3. Method Return Values
Các method cũng có thể trả về giá trị cho khi được gọi. Điều này là bắt buộc trong ngôn ngữ lập trình hiện đại, trong đó một method thực hiện một số loại tính toán và sau đó trả về giá trị mong muốn.
Một ví dụ về method đơn giản ta có:
class Example {
static int sum(int a,int b = 5) {
int c = a+b;
return c;
}
static void main(String[] args) {
println(sum(6));
}
}
Trong ví dụ trên, hãy lưu ý rằng lần này tôi đang chỉ định kiểu trả về cho method sum là kiểu int. Trong method này, chúng ta sử dụng câu lệnh return để gửi giá trị tổng đến chương trình chính đang gọi. Vì giá trị của method hiện có sẵn cho method main nên tôi đang sử dụng hàm println để hiển thị giá trị trong bảng điều khiển.
Đầu ra của phương thức trên sẽ là giá trị 11.
4. Instance
Trong Groovy, các method thường được triển khai bên trong các class giống như ngôn ngữ Java. Một class không là gì ngoài một bản thiết kế hoặc một template để tạo các object khác nhau nhằm xác định các properties và behavior của nó. Các object của class thể hiện các thuộc tính và hành vi được xác định bởi class của nó. Vì vậy, các hành vi được xác định bằng cách tạo các method bên trong class.
Chúng ta sẽ biết được các class chi tiết hơn ở bài tiếp sau nhưng sau đây là một ví dụ về cách triển khai method trong một class. Trong các ví dụ trước, chúng ta đã định nghĩa method của mình là các static method, điều đó có nghĩa là chúng ta có thể truy cập các methodđó trực tiếp từ lớp. Ví dụ tiếp theo về các method là các method cá thể trong đó các method được truy cập bằng cách tạo các object của class.
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());
}
}
Trong ví dụ trên, lưu ý rằng lần này tôi không chỉ định thuộc tính static nào cho các class's method của mình. Trong method main, tôi thực sự đang tạo một instance của class Example. Sau đó gọi phương thức của đối tượng 'ex'.
Đầu ra của phương thức trên sẽ là giá trị 100.
5. Local vs External Parameter
Groovy giống như java, nó có các tham số cục bộ (local) và toàn cục (external). Trong ví dụ sau, lx là local parameter chỉ có phạm vi trong hàm getX() và x là global property có thể được truy cập bên trong toàn bộ class Example. Nếu chúng ta cố gắng truy cập vào biến lx bên ngoài hàm getX(), chúng ta sẽ gặp lỗi.
class Example {
static int x = 100;
public static int getX() {
int lx = 200;
println(lx);
return x;
}
static void main(String[] args) {
println(getX());
}
}
Khi chạy chương trình trên chúng ta sẽ nhận được kết quả như sau.
200
100
Giống như trong Java, Groovy cũng có thể truy cập các instance member của nó bằng từ khóa this. Ví dụ sau đây cho thấy khi chúng ta sử dụng câu lệnh this.x, nó sẽ tham chiếu đến instace của nó và đặt giá trị của x tương ứng như thế nào.
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());
}
}
Khi chạy chương trình trên chúng ta sẽ nhận được kết quả là 200 in ra bảng điều khiển.
Theo dõi bài tiếp theo: Bài 7 - Hướng dẫn lập trình groovy: Groovy File I/0
Không có nhận xét nào: