在Java语言中一个方法可以是无参的,也可以是有参的,而参数又分为了形参和实参。那么什么是形参和实参?他们之间有什么区别,或是有什么不同?带着问题,我们一起阅读一下下面这篇文章,来学习一下Java中的形参和实参。

目录

    关于变量的赋值:

    如果变量是基本数据类型,此时赋值的是变量所保存的数据值。
    如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。

    public class ValueTransferTest {
    	
    	public static void main(String[] args) {
    		
    		System.out.println("***********基本数据类型:****************");
    		int m = 10;
    		int n = m;
    		
    		System.out.println("m = " + m + ", n = " + n);
    		
    		n = 20;
    		
    		System.out.println("m = " + m + ", n = " + n);
    		
    		System.out.println("***********引用数据类型:****************");
    		
    		Order o1 = new Order();
    		o1.orderId = 1001;
    		
    		Order o2 = o1;//赋值以后,o1和o2的地址值相同,都指向了堆空间中同一个对象实体。
    		
    		System.out.println("o1.orderId = " + o1.orderId + ",o2.orderId = " +o2.orderId);
    		
    		o2.orderId = 1002;
    		
    		System.out.println("o1.orderId = " + o1.orderId + ",o2.orderId = " +o2.orderId);
    		
    	}
    	
    }
    
    class Order{
    	
    	int orderId;
    	
    }
    

    方法的形参的传递机制:值传递

    1.形参:方法定义时,声明的小括号内的参数

    实参:方法调用时,实际传递给形参的数据

    2.值传递机制:

    如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。
    如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。

    public class ValueTransferTest1 {
    	public static void main(String[] args) {
    		
    		int m = 10;
    		int n = 20;
    		
    		System.out.println("m = " + m + ", n = " + n);
    		//交换两个变量的值的操作
    //		int temp = m ;
    //		m = n;
    //		n = temp;
    		
    		ValueTransferTest1 test = new ValueTransferTest1();
    		test.swap(m, n);
    		
    		System.out.println("m = " + m + ", n = " + n);
    		
    		
    	}
    	
    	
    	public void swap(int m,int n){
    		int temp = m ;
    		m = n;
    		n = temp;
    	}
    }
    

    解释:

    public class ValueTransferTest2 {
    	
    	public static void main(String[] args) {
    		
    		Data data = new Data();
    		
    		data.m = 10;
    		data.n = 20;
    		
    		System.out.println("m = " + data.m + ", n = " + data.n);
    		
    		//交换m和n的值
    //		int temp = data.m;
    //		data.m = data.n;
    //		data.n = temp;
    		
    		ValueTransferTest2 test = new ValueTransferTest2();
    		test.swap(data);
    		
    		
    		System.out.println("m = " + data.m + ", n = " + data.n);
    		
    	}
    	
    	public void swap(Data data){
    		int temp = data.m;
    		data.m = data.n;
    		data.n = temp;
    	}
    	
    }
    
    class Data{
    	
    	int m;
    	int n;
    
    }
    

    看到这里,本篇关于Java基础知识的形参和实参的内容就介绍到此结束了,如果你还要了解学习更多关于Java基础知识的内容,你可以多多关注W3Cschool相关内容的文章。如果觉得本篇文章还不错,还希望大家能够多多支持!

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。