软件编程培训(安卓java),课程介绍 及 评论
本节课评论,如下:
形参长度可变的方法
public class LenChange {
public static void ergodic(String name, String[] arr){
int tag = 0;
for(int i = 0; i < arr.length; i++){
String arrTmp = arr[i];
if("邓超".equals(arrTmp)){
name = i + "";
tag = 1;
}
System.out.println(arrTmp);
}
if(tag == 0){
System.out.println("数组的元素没有等于 邓超");
}else if(tag ==1){
System.out.println("符合条件的索引值等于" + name);
}else{
System.out.println("else 前面的if 和所有的else if都不匹配,则会执行else模块");
}
}
}
public class LenChangeTest {
public static void main(String[] args) {
String a= "";
String[] b = {"邓超", "杨颖", "李晨", "陈赫", "郑凯", "王", "鹿晗" };
String[] c = {"邓超", "杨颖" };
// 类名.方法
LenChange.ergodic(a, b);
对象.方法
// LenChange lc = new LenChange();
// lc.ergodic(a, b);
LenChange02.ergodic("a的实参值", "邓超", "杨颖", "李晨", "陈赫", "郑凯", "王", "鹿晗");
LenChange02.ergodic("a的实参值", b);
}
}
从
JDK1.5
之后,
Java
允许定义形参长度可变的参数,从而允许为方法指定数量不确定的形参。如果在定义方法的时候,在最后一个形参的类型后增加三点(
...
),则表明该形参可以接受多个参数值,多个参数值被当成数组传入。
public class LenChange02 {
public static void ergodic(String name, String... arr){
int tag = 0;
for(int i = 0; i < arr.length; i++){
String arrTmp = arr[i];
if("邓超".equals(arrTmp)){
name = i + "";
tag = 1;
}
System.out.println(arrTmp);
}
if(tag == 0){
System.out.println("数组的元素没有等于 邓超");
}else if(tag ==1){
System.out.println("符合条件的索引值等于" + name);
}else{
System.out.println("else 前面的if 和所有的else if都不匹配,则会执行else模块");
}
}
}
在定义数组声明形参列表的时候,形参用数组的形式 还是 长度可变的形式,是有明显的差异的:
- 当传入的数值比较少的时候,用长度可变的形参的形式来定义方法,会让调用时更加简洁,即 直接传入 参数值就可以了;而用数组的形式定义方法的话,调用方法时必须传入一个数组。
- 当用长度可变的形参的形式来定义方法,调用方法的时候 即可以直接传入数个数值,也可以为这个长度可变的形参传入一个数组;而用数组的形式定义方法的话,只能传入数组。
- 长度可变的形参只能处于形参列表的最后,一个方法中最多只能包含一个长度可变的形参。
方法重载
public class OverloadTest {
int a = 2;
public void testOL(){
System.out.println("此方法没有形参");
}
public void testOL(String name){
System.out.println("此方法有一个形参" + name);
}
public void testOL(String name, int age){
System.out.println("此方法有两个形参,name =" + name + ",age = " + age);
}
public static void main(String[] args){
OverloadTest olt = new OverloadTest();
olt.testOL();
olt.testOL("邓超");
olt.testOL("杨颖", 25);
}
}
Java运行同一个类里定义多个同名方法,只要形参列表不同就可以。如果同一个类中包含了两个或者两个以上的方法的方法名相同,但形参列表不同,则被成为方法重载。
从上面的示例中,可以看出,在Java程序中需要确定一个方法需要三个要素:
- 调用者,也就是方法的所属者,既可以是类,也可以是对象。
- 方法名,方法的标识。
- 形参列表,当调用方法时,系统将会根据传入的实参类比匹配。
概括的说,方法重载的要求就是两同、一不同:同一个类中方法名相同,参数列表不同。至于方法的其他部分,如方法返回值类型、修饰符等,与方法重载没有任何关系。