黑马程序员技术交流社区

标题: java中的传递问题,现在还是白明白,需要从哪学起? [打印本页]

作者: 李明全    时间: 2015-4-1 00:25
标题: java中的传递问题,现在还是白明白,需要从哪学起?
/*
Java中的参数传递问题
*/
class ArrayTest6 {
public static void main(String[] args) {
  
  int a = 5;
  int b = 3;
  System.out.println("a="+a+",b="+b);
  change(a, b);
  System.out.println("a="+a+",b="+b);
  int[] arr = {1,2,3,4,5};
  change(arr);
  System.out.println(arr[0]);
}
public static void change(int x, int y){
  x=100;
  y=200;
}
public static int change(int[] arr){
  for (int i=0; i<arr.length; i++) {
   arr[i] *= 2;
  }  
}
}

作者: IcedCoffee    时间: 2015-4-1 07:13
参数传递学的不好要在函数开始看
基本数据类型 参数传递的是实际的值
引用数据类型 参数传递的是地址值 所以java中只有值传递
当你使用对象调用函数的时候 起到定义,限制传入参数类型的那个参数是形参,实际参与运算的参数是实参
基本数据类型 形参的改变不会影响到实际参数的改变
引用数据类型 因为传递是地址值 所以形式参数的改变会引起实际参数的改变
需要注意的是 String类型的参数 因为String是引用类型(类类型引用) 因为String类型是存在于字符串常量池中的(String在常量池中的特性是:一旦被初始化,数据值就不会被更改) 所以形式参数的改变不会引起实际参数的改变 它比较特别
作者: 花独恋水    时间: 2015-4-1 07:24
楼上正解
作者: mrleeapple    时间: 2015-4-26 21:57
参数传递其实不难,分清形参实参就好了。形参就是定义方法里的几个参数,实参就是调用方法是用的参数。名字起得很形象啊,形式参数,方法里定义的东西不是一种形式的东西吗?还没有用着。等用到方法的时候,传进去的参数就是实际参数了。传进去实参,这个方法就被具体化,具有了实际意义。
作者: Mr.南郭    时间: 2015-4-26 22:13
java中的传递都是值传递,基本数据类型只传递数值本身,引用数据类型传递的是引用地址值。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2