黑马程序员技术交流社区

标题: 结果为什么是15? [打印本页]

作者: 意念痴心灬戒贪    时间: 2015-12-20 00:26
标题: 结果为什么是15?
public class T {

        public static void main(String[] args) {
                  int x = 10;
                method(x);
                System.out.print(x);
                int[] arr[] = {{1,2,3},{1,2,3}};
//                method(arr);
                System.out.print(x+arr[0] [0]);
            }
            public static void method(int y) {
                y=5;
            }
//            public static void method(int[][] arr) {
//                arr[0] = new int[]{5,10,15};
        }

作者: 王晓亮    时间: 2015-12-20 09:21
!!!!!!!!
作者: Mr.zhao    时间: 2015-12-20 09:50
你是不是搞错了,忘了把//去了?因为第一个method参数是基本类型,第二个是引用类型,
作者: 天若也易老    时间: 2015-12-20 11:08
刚试了试,没去// 结果是10和11
去掉之后结果是10和15
arr 经过method 内部arr[0] 被修改成{5,10,15} 所以 int[] arr[]={{5,10,15},{1,2,3}}
所以arr[0][0]=5,结果为15
作者: M075097    时间: 2015-12-20 14:10
import java.util.*;//导入工具类包,可以使用Arrays.toString() 方法查看数组内的值。
class Ceshi
{
        public static void main(String[] args)
                {
                        int x = 10;
                        method(x);// 此时调用Method(int Y)方法没有实际意义,该方法没有实际返回值,而x为基本数据类型,只是把x的值赋给其内部的y,而不是把其引用传递给y。
                        System.out.println(x);//该处x值依然是10
                        int[] arr[] = {{1,2,3},{1,2,3}};
                        method(arr);//而由于arr是一个对象类型引用,此时传递的是arr的对象引用,调用该方法赋值时修改的是即该引用指向的arr,其与主函数内的arr为同一个。
                        System.out.println(Arrays.toString(arr[0]));//此时打印结果即为arr[0]=[5,10,15]
                        System.out.println(x+arr[0] [0]);//此时x=10,arr[0][0]=5,结果为15。
                }
    public static void method(int y)
                {
                        System.out.println(y);//主函数调用该方法时实现int y = x;此时y值为10。
            y=5;
                        System.out.println(y);//此时y值为5。但该y值与主函数内x无关。
        }
    public static void method(int[][] arr)
                {
         arr[0] = new int[]{5,10,15};//因为此时arr引用与主函数内的arr引用为同一份,赋值时即把原有arr内的值给改变了。此时arr[][] ={{5,10,15},{1,2,3}};
                }
}






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