值传递和引用传递的区别和理解demo

来源:互联网 发布:excel数据相关性分析 编辑:程序博客网 时间:2024/06/05 15:24
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();}}

原创粉丝点击