以代码形式解释介绍Java参数传递
package 参数传递;
/**Argtest.java
*关于成员方法的参数,参数传递是“传值”,如果参数是引用,传的就是引用的值,即数组或对象的地址
*在方法调用时,如果方法的参数是引用类型,传入的则是一个对象名字的引用,而不是这个对象的本身
*引用传递传递的只是指向对象的地址
*/
public class Argtest
{
int i = 20;
int y = i; //若在主函数中输出y,则y=20;
int z = y++ ; //若在主函数中输出y,z,此时z=20,y=20;
String str="good";
char[] ch={'a','b','c'};
public void change(String str1, char ch1[],People p,int s)
{
s = 30;
str1="test ok";
ch1[0]='g'; //替换ch1[0]为g
p.setAge(20);
}
public static void main(String args[])
{
Argtest a=new Argtest(); //实例化一个Argtest类对象
People p=new People(); //实例化一个people类对象
People p1=new People();
People p2=new People();
People p3=new People();
p1.setAge(40);
p2.setAge(45);
p3.setAge(50);
p1 = p2;
p2 = p3;
p3 = p1;
p.str = "asdsa"; //p.string为"good"
p.setAge(10); //设置对象p年龄为10;
a.change(a.str,a.ch,p,a.i); //a.str="good" ; a.ch='gbc' ;
//p的年龄为20 ; a.i=30;
System.out.println("str= "+a.str); //输出应为: str= good
System.out.print("ch= "); //ch是字符串数组,注意输出时的格式!
System.out.println(a.ch); //输出应为: ch= gbc
System.out.println("p.age="+p.getAge()); //输出应为: p.age=20
System.out.println("a.i="+a.i); //输出应为a.i=20
System.out.println("p1的年龄为:"+p1.getAge());
System.out.println("p2的年龄为:"+p2.getAge());
System.out.println("p3的年龄为:"+p3.getAge());
//输出结果应为:p1的年龄为:45 ; p2的年龄为:50 ; p3的年龄为:45
}
}
package 参数传递;
public class People
{
String str; /*声明一个字符串,String也是一个类,也可以定义如
String str = new String();
*/
private int age;
public int getAge()
{
return age; //返回对象年龄
}
public void setAge(int age)
{
this.age=age; //设置对象年龄
}
}
输出结果为: