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

来源:互联网 发布:市场营销教学软件 编辑:程序博客网 时间:2024/05/22 04:40
//这里注释的部分都不见了,所以我把这篇文章同时发表到了CSDN上,有不懂得朋友,可以到
//CSDN源码及注释链接查看,只是自己的一点总结,如果大家发现不对的地方,欢迎给小弟提出建议和意见。
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,ArgumentPassingarg2){
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,intpos2)方法之前:array[pos1]="+array[pos1]+";array[pos2]="+array[pos2]);
argPassing.swap(array, pos1, pos2);
System.out.println("调用数组传参情况下的swap(int[],int pos1,intpos2)方法之后:array[pos1]="+array[pos1]+";array[pos2]="+array[pos2]);
}
}
原创粉丝点击