public class ArgsTest{
public static void mian(String[] args){
ArgsTest test=new ArgsTest();
test.print();
test.print(1);
test.print(1,2);
test.print(new int[]{1,2,3});//正确的数组形参调用
test.print(1,2,3);//新版本JDK可以直接把数放在形参内不需要new新数组
}
public void print(int...nums){
//此处形参前加...,表示要调用的形参不确定
//可以调一个、两个或多个
System.out.println("1111");
}
public void print(int i){
System.out.println("2222");
}
public void print(int i,int j){
System.out.println("3333");
}
public void print(int[] nums){
System.out.println("4444");
}
public void print(int i,int...nums){
System.out.println("5555");
//这里...nums可变形参可以出现在单个形参后面
//可变形参不能出现在单个形参前面
//因为会导致后面的单个形参无法被系统辨别
//如:print(int...nums,int i)
}
}
public class StirngConCatTest{
public static void main(Stirng[] args){
StringConCatTest test=new StringConCatTest();
String info=test.concat("-","hello","world");
System.out.println(info);
System.out.println(test.concat("-");
}
public String concat(String operator,String...strs){
String result ="";
for(int i=0;i<strs.length;i++){
if(i==0){
result+=strs[i];
}else{
result +=(operator+strs[i]);
}
return result;
}
}
public class ValueTransferTest{
public static void main(String[] args){
int m=10;
int n=m;
System.out.println("m="+m+",n+"+n);
m++;
System.out.println("m="+m+",n+"+n);
int[] arr1=new int[]{1,2,3,4,5};
int[] arr2=arr1;//传递的是地址值
arr2[0]=10;
System.out.prinln(arr1[0]);
//m=10 n=10
//m=11 n=10
//10
Order order1=new Order();
order1.orderID=1001;
Order order2=order1;
order2.orderId=1002;
System.out.println(order1.orderID);
}
}
class Order{
int orderId;
}
如果是基本数据类型的变量,则将此变量保存的数值传递出去。
如果是引用数据类型的变量,则将此变量保存的地址值传递出去。
文章通过几个Java代码示例展示了可变参数的使用,如何进行方法重载,以及基本类型和引用类型在赋值时的值传递与引用传递的区别。在示例中,包括了对数组和对象处理的场景,强调了在参数传递时,基本类型传递值,引用类型传递引用这一关键概念。

被折叠的 条评论
为什么被折叠?



