www.3112.net > JAvA方法的参数传递

JAvA方法的参数传递

在 Java 应用程序中永远不会传递对象,而只传递对象引用.因此是按引用传递对象.Java应用程序按引用传递对象这一事实并不意味着 Java 应用程序按引用传递参数.参数可以是对象引用,而 Java 应用程序是按值传递对象引用的.1. 对象是

我帮你解下迷惑吧.java中传递对象参数,只是传递对象的在内存中的地址.像你这个方法public static void swap(DataWrap dw)其中DataWrap dw是本方法内的变量dw会指向传入对象的内存地址,现在假设这个Object的内存地址x0fe19,只是假设.那么传过来的只是x0fe19,dw指向这个地方.当你给dw重新赋值的时候,改变的是在这个地方的Object对应的属性,也就是传入的对象的属性了.当你为dw赋null值的时候,其实只是让这个方法内的局部变量指向空而已,并不能改变传入对象的内容.

a: number is 0, and numbers[0] is 3b:5 4 3 2 1解释下:a中,基本类型都是值传递,数组是引用传递(也就是地址传递);b:数组元素反序输出

传入的数据类型:基本类型是值拷贝,复杂类型(对象)则是引用传递.传入的参数个数:固定参数列表,可变参数列表(类似public static int add(int i)这样)另外,传递参数时还可以定义泛型,类似这样public E get(Class clazz, Long id).目前只想到这些..

当一个方法的参数是基本类型的时候,要把对应变量的实际值,传给参数,比如:有一个方法getPoint(int x,int y),那么在调用该方法的时候,就需要将x,y 的值,传递过去.当一个方法的参数是引用类型的时候,要把参数的地址传递过去,而引用类型变量的地址,就是其真实值,比如:有一个方法changePoint(Point p),在调用方法的时候,需要传递一个引用了Point 类型的引用变量,引用其地址(也就是真实值).所以,综上所述,方法参数传递,就是值传递.

比如你写一个这样的类:public class Test{ int a; int b;public void set(int x,int y) { a=x; b=y; }public static void main(String[] args){ Test test=new Test(); test.set(3,4); System.out.println("a="+a); System.out.println("b="+b);}}其中,set(3,4)就是一个参数传递,把3传给a,4传给b.其他的一些类似.不过基于WEB上的相对难一些

网站地图

All rights reserved Powered by www.3112.net

copyright ©right 2010-2021。
www.3112.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com