Java

Variable-Length Arguments in Java

Xin chào, trong bài viết này chúng ta sẽ tìm hiểu về Variable-Length Arguments trong ngôn ngữ Java.


VARARGS = VARIABLE-LENGTH ARGUMENTS

Varargs cho phép một method có thể nhận một số lượng arguments tùy ý. Cú pháp khai báo varargs như sau:

returnType methodName(datatype variableName)

Trong đó:

  • returnType – kiểu dữ liệu trả về từ method;
  • methodName – tên của method;
  • datatype – kiểu dữ liệu của variable-length argument;
  • dấu 3 chấm (…) được dùng để chỉ ra rằng variableName là một variable-length argument. Chú ý: variableName sẽ hoạt động như một array.

Chú ý: 

  1. Một method có chứa variable-length argument cũng sẽ có thể được overloading như các method bình thường khác;
  2. Một method có thể nhận cả “normal” argument và variable-length argument. Tuy nhiên, variable-length argument bắt buộc phải là đối số cuối cùng và duy nhất được khai báo. Nói cách khác, một method có thể nhận nhiều “normal” argument, nhưng chỉ có thể nhận duy nhất một variable-length argument và nó phải là argument cuối cùng.

Example:

public class test {

    public static void main(String[] args) {
        test.sum(10, 20, 30);
        test.sum(5, true, 1, 2, 3);
    }

    static void sum(int ... v) {
        int sum = 0;
        for (int i : v)
            sum += i;
        System.out.println("sum = "+sum);
    }

    static void sum(int k, boolean c, int ... v) {
        int sum = 0;
        for (int i : v)
            sum += i;
        if (c)
            sum *= k;
        System.out.println("sum = "+sum);
    }
}

Giải thích:
– Dòng 8: khai báo method sum() với một variable-length argument duy nhất;
– Dòng 15: thực hiện overloading method sum() với 3 tham số, gồm: hệ số k, boolean c và variable-length argument;

Kết quả:
$ javac test.java
$ java test
sum = 60
sum = 30


SUMMARY

Variable-length argument trong Java khá đơn giản đúng không nào! Cảm ơn các bạn đã theo dõi bài viết.

Thân ái và quyết thắng.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s