package test1;
public class Father {
protected final int adds(int a,int b) {
return a+b;
}
private static int day;
private static int month;
private static int year;
/**
* 值传递,参数为基本类型
*/
public static void display(int year,int month,int day) {
day=11;month=11;
year=2015;
System.out.println("传递方法中:"+year+"-"+month+"-"+day);
}
/**
* 引用传递,传递的是引用类型
* @param father
*/
public void display(Father father) {
father.day=11;
father.month=12;
father.year=2014;
System.out.println("传递方法中:"+father.year+"-"+father.month+"-"+father.day);
}
/**
*
* 值传递测试
*/
public static void testValue1() {
Father father = new Father();
int day =12,month=12,year=2016;
System.out.println("传递之前:"+year+"-"+month+"-"+day);
father.display(year,month,day);
System.out.println("传递之后:"+year+"-"+month+"-"+day);
}
/**
* 引用传递测试
*/
public static void testValue2() {
Father father = new Father();
father.day = 3;
father.month= 3;
father.year =2016;
System.out.println("传递之前:"+father.year+"-"+father.month+"-"+father.day);
father.display(father);
//传递之后,再打印father对象的值
System.out.println("传递之后"+father.year+"-"+father.month+"-"+father.day);
}
public static void main(String[] args) {
testValue1();
testValue2();
}
}
值传递和引用传递的区别和理解demo
最新推荐文章于 2022-09-08 11:32:40 发布