java:How to use variable parameter? (easy to understand)

简介: It's the first time to write a blog in English for me. (About variable parameter)

Catalogue:

I.Preface :

II.Syntax :

III.NOTICE(significant) :

IV.Code Demonstrate :

       1.Show notice one, notice two and notice three :

       2.Show notice four :

       3.Show notice five :

       4.Exercise:


I.Preface :

       java allows us to encapsulate many methodswhich have the same name and function but have different number of parametersinto one method  at one class.

       We achieve it by using variable parameter in the list of formal parameters.

       By the way, we will use variable parameter in the module java reflect, etc.

II.Syntax :

       access_modifierreturn_typemethod_name (data_structures... parameters) {

   

       }

       ΔIn the list of formal parameters, the format of three points "..." is fix.

III.NOTICE(significant) :

       1. The number of actual parameter can range from 0 to n.(n = 1, 2, 3, 4, 5......)

       2. The actual parameter can be an array directly.

       3. The variable parameter is actually an array, so you can use it as an array.

       4. When variable parameter is used with ordinary parameter, make sure that the             variable parameter is at last of the list of formal parameter.

       5. There could be only one variable parameter at one parameter list.

IV.Code Demonstrate :

       Hey, guys, I am about to demonstrate all the notices mentioned above in code.

       1.Show notice one, notice two and notice three :

packagecsdn.varparameter;
publicclassVariableParameter {
publicstaticvoidmain(String[] args) {
Test1t1=newTest1();
int[] array1= {2, 11, 211, 985, 141};
//1. The number of actual parameter can range from 0 to n.(n = 1, 2, 3, 4, 5......)System.out.println(t1.getSum(0, 1, 2, 3, 4, 5));
System.out.println(t1.getSum(array1));
//2. The actual parameter can be an array directly.System.out.println("------------------------");
    }
}
classTest1 {
publicintgetSum(int... parameters) {
System.out.println(parameters.length+" parameters were received.");
//3. The variable parameter is actually an array, so you can use it as an array.intnum=0;
for (inti=0; i<parameters.length; ++i) {
num+=parameters[i];
        }
System.out.print("The Sum of parameters passed is : ");
returnnum;
    }
}

image.gif

       Output result :

image.png

       2.Show notice four :

packagecsdn.varparameter;
publicclassVariableParameter {
publicstaticvoidmain(String[] args) {
Test2t2=newTest2();
int[] array1= {2, 11, 211, 985, 141};
int[] array2= {1, 2, 7};
System.out.println(t2.getSum2(array1, 1, 3, 1));
System.out.println(t2.getSum2(array1, array2));
System.out.println("------------------------");
    }
}
/*4. When variable parameter is used with ordinary parameter, make sure that the variable parameter is at last of the list of formal parameter.*/classTest2 {
publicintgetSum2(int[] arr, int... parameters) {
System.out.println(parameters.length+" parameters were received.");
intsum1=0;
intsum2=0;
for (inti=0; i<arr.length; ++i) {
sum1+=arr[i];
        }   //Use sum1 variable to store the sum of "arr" array.for (inti=0; i<parameters.length; ++i) {
sum2+=parameters[i];
        }   //Use sum2 variable to store the sum of "variable parameter".System.out.print("The total sum of parameters passed is : ");
returnsum1+sum2;
    }
}

image.gif

       Output result :

image.png

       3.Show notice five :

        Actually it's easy to understand the notice five, because we have got the notice four :  When variable parameter is used with ordinary parameter, make sure that the variable parameter is at last of the list of formal parameter. So, if you have variable parameters, more than one, you can't promise that every variable parameters is at the end of the the list of formal parameters. Absolutely you can't achieve it!

       Let's have a look at the demonstration,a GIF picture, as follow:

image.png

       Apparently, we can see the IDEA report a error, and the reason is actually what we're talking about above.        

       4.Exercise:

      requirement : Encapsulate one static method in a arbitrary class, whatever, and the formal parameters you need to pass in are Student's name, Student's grade and the scores of his or her every subjects.We supposed that the Student totally examines five subject. When this method is invoked, the student's name, grade and five subjects' sum scores will be printed on the console.

       Code Demonstration :

packagecsdn.varparameter;
publicclassVariableParameter {
publicstaticvoidmain(String[] args) {
System.out.println(Test3.studentScore("Cyan", 14, 141,135,80,75));
    }
}
classTest3 {
publicstaticStringstudentScore(Stringname, intgrade, int... scores) {
intscoreNum=0;
for (inti=0; i<scores.length; ++i) {
scoreNum+=scores[i];
        }
returnname+", who is in "+grade+" class, got totally "+scoreNum+" points";
    }
}

image.gif

       Output result :

image.png    

System.out.println("END---------------------------------------------------------------------");

目录
相关文章
java.lang.Error: Unresolved compilation problem: The type List is not generic; it cannot be parame
java.lang.Error: Unresolved compilation problem: The type List is not generic; it cannot be parame
|
4月前
|
Java Maven
The JAVA_HOME environment variable is not defined correctly,this environment variable is needed to
The JAVA_HOME environment variable is not defined correctly,this environment variable is needed to
|
Java Maven
The JAVA_HOME environment variable is not defined correctly 解决方法
解决措施:去设置里把JAVA8卸载掉,注意右击卸载,不要直接删根目录,然后把环境变量JAVA8_HOME也删掉,JAVA8 再见
775 0
The JAVA_HOME environment variable is not defined correctly 解决方法
|
6月前
|
Oracle 安全 Java
[Java] `JDK17` 模式变量 `Pattern variable` Variable ‘request‘ can be replaced with pattern variable
[Java] `JDK17` 模式变量 `Pattern variable` Variable ‘request‘ can be replaced with pattern variable
|
Java Android开发
Failed to load JavaHL Library.These are the errors that were encountered:no msvcp100 in java.library
Failed to load JavaHL Library.These are the errors that were encountered:no msvcp100 in java.library
|
缓存 Java Maven
Information:java: Errors occurred while compiling module ‘shirodemo‘
Information:java: Errors occurred while compiling module ‘shirodemo‘
186 0
java202304java学习笔记第五十一天Your local changes to the following files would be overwritten by merge
java202304java学习笔记第五十一天Your local changes to the following files would be overwritten by merge
72 0
java中出现Syntax error, annotations are only available if source level is 1.5 or greater
java中出现Syntax error, annotations are only available if source level is 1.5 or greater
java中出现Syntax error, annotations are only available if source level is 1.5 or greater
|
算法
On the Correct and Complete Enumeration of the Core Search Space
在之前的文章中我们讨论了基于graph的DP-based算法,来解决join ordering的枚举问题。 这些DP算法通过join predicate描述的连通性,解决了枚举可能的表组合问题,但join graph本身(即使hypergraph)是无法完整的描述join语义的,因为连通边本身无法描述不同类型的join语义,例如left outer join/semi join/anti join...,因此即使找到了所谓的csg-cmp-pair,也不一定是有效的plan。 这篇paper讨论的就是这个问题,当枚举出一个csg-cmp-pair (S1 o S2),如何判断这是有效的join
446 0
On the Correct and Complete Enumeration of the Core Search Space
下一篇
无影云桌面