目录
可变个数形参的方法
- 格式:对于方法的形参,数据类型 … 形参名。
- 可变个数的形参的方法与同名的方法之间构成重载。
- 可变个数的形参方法在调用时,可以有从0到多个参数。
- 使用可变个数形参的方法与方法的形参是数组的使用方法一致。
- 若一个方法中存在可变个数形参,则可变个数形参一定要声明在最后。
- 在一个方法中最多声明一个可变个数形参。
public class JavaMethodLen {
public static void main(String[] args){
test();
test("京东");
test("京东","淘宝");
}
public static void test(String book){
System.out.println("test02...");
}
public static void test(String ... books){
System.out.println("test...");
}
}
方法参数的值传递机制
-
方法,必须由其所在类或对象调用才有意义。若方法含有参数:
形参:方法声明时的参数;
实参:方法调用时实际传给形参的参数值。 -
实参值如何传入方法?
参数传递方式只有一种:值传递。 即将实际参数值的副本传入方法内,而参数本身不受影响。
形参是基本数据类型:将实参基本数据类型变量的“数据值”传递给形参;
形参是引用数据类型:将实参引用数据类型变量的“地址值”传递给形参。
【注意】String是个特例,当作基本数据类型处理。
例如:
public class StringTransferTest {
public static void main(String[] args){
String name = "张三";
change(name);
System.out.println(name);
}
private static void change(String name) {
name = "李四";
}
}
- 例题:
public class TempTransferLen {
public static void main(String args[]) {
TempTransferLen test = new TempTransferLen(); ---①
test.first();
}
public void first() {
int i = 5; ----------------------------------------②
Value v = new Value(); ----------------------------③
v.i = 25; ----------------------------------------④
second(v, i); ------------------------------------⑤
System.out.println(v.i);
}
public void second(Value v, int i) {
i = 0; ------------------------------------------⑥
v.i = 20; --------------------------------------⑦
Value val = new Value(); ----------------------⑧
v = val; --------------------------------------⑨
System.out.println(v.i + " " + i);
}
}
class Value {
int i = 15; -----------------------------------------⑩
}
方法的参数传递图示:
- 附加例题
public class TempTransferTest {
public static void main(String[] args){
int a = 10;
int b = 20;
//需要在method方法被调用之后,仅打印出a=100,b=200,请写出m