java中关于参数传递问题的解释(传…

本文探讨了Java中的参数传递问题,通过示例解析了基本类型、引用类型以及数组在方法调用中的值传递和引用传递区别。分别展示了如何交换局部变量、字符串、自定义对象和数组元素的值,并分析了不同情况下参数的变化情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//这里注释的部分都不见了,所以我把这篇文章同时发表到了优快云上,有不懂得朋友,可以到
// 优快云源码及注释链接查看,只是自己的一点总结,如果大家发现不对的地方,欢迎给小弟提出建议和意见。
package cn.edu.nwsuaf.cie.qhs;


public class ArgumentPassing {

private int num1 = 1;
private int num2 = 2;
public int getNum1() {
return num1;
}
public void setNum1(int num1) {
this.num1 = num1;
}
public int getNum2() {
return num2;
}
public void setNum2(int num2) {
this.num2 = num2;
}
public void swap(){
int temp = this.getNum1();
this.setNum1(this.getNum2());
this.setNum2(temp);
}
public void swap(int num1, int num2){
int temp = num1;
num1 = num2;
num2 = temp;
}
public void swap(String str1,String str2){
String tempStr = str1;
str1 = str2;
str2 = tempStr;
}
public void swap(ArgumentPassing arg1,ArgumentPassing arg2){
int num1 = arg1.getNum1();
arg1.setNum1(arg2.getNum2());
arg2.setNum2(num1);
}
public void swap(int[] array,int pos1,int pos2){
int temp = array[pos1];
array[pos1] = array[pos2];
array[pos2] = temp;
}
public String toString(){
return "This object contains paramaters such as below: num1 = "+ this.getNum1()+";num2="+this.getNum2();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ArgumentPassing argPassing = new ArgumentPassing();
int num1 = 1;
int num2 = 2;
System.out.println("调用全局变量情况下的swap()方法之前:num1="+argPassing.getNum1()+";num2="+argPassing.getNum2());
argPassing.swap();
System.out.println("调用全局变量情况下的swap()方法之后:num1="+argPassing.getNum1()+";num2="+argPassing.getNum2());
System.out.println("******************************************************************************************");
System.out.println("调用传值传参情况下的swap(int,int)方法之前:num1="+num1+";num2="+num2);
argPassing.swap(num1, num2);
System.out.println("调用传值传参情况下的swap(int,int)方法之后:num1="+num1+";num2="+num2);
System.out.println("******************************************************************************************");
String str1 = "This is str1";
String str2 = "This is Str2";
System.out.println("调用传递引用传参情况下的swap(String,String)方法之前:str1="+str1+";str2="+str2);
argPassing.swap(str1, str2);
System.out.println("调用传递引用传参情况下的swap(String,String)方法之后:str1="+str1+";str2="+str2);
System.out.println("******************************************************************************************");
ArgumentPassing arg1 = new ArgumentPassing();
ArgumentPassing arg2 = new ArgumentPassing();
System.out.println("调用传递引用传参情况下的swap(ArgumentPassing,ArgumentPassing)方法之前:arg1="+arg1.toString()+";arg2="+arg2.toString());
argPassing.swap(arg1, arg2);
System.out.println("调用传递引用传参情况下的swap(ArgumentPassing,ArgumentPassing)方法之后:arg1="+arg1.toString()+";arg2="+arg2.toString());
System.out.println("******************************************************************************************");
int [] array = {1,2,3,4};
int pos1 = 0;
int pos2 = 1;
System.out.println("调用数组传参情况下的swap(int[],int pos1,int pos2)方法之前:array[pos1]="+array[pos1]+";array[pos2]="+array[pos2]);
argPassing.swap(array, pos1, pos2);
System.out.println("调用数组传参情况下的swap(int[],int pos1,int pos2)方法之后:array[pos1]="+array[pos1]+";array[pos2]="+array[pos2]);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值