黑马程序员技术交流社区

标题: 方法括号内的参数名字是可以随便定义的吗? [打印本页]

作者: 徐升2013    时间: 2013-2-26 13:09
标题: 方法括号内的参数名字是可以随便定义的吗?
本帖最后由 徐升2013 于 2013-3-11 13:49 编辑

RT:就是方法括号内是参数类型 空格 参数名称吧  这里举个例子代码如下:
public class Array
{
        public static void main(String args[])
        {
                int maxArray[] =new int[]{99,45,123,7894641,123,7486,14,9,2,3};
               
                printArray(maxArray);
                sort(maxArray);
                System.out.print("\n______________________________________\n");
                printArray(maxArray);
        }
        
        

        public static void sort(int arr[])
        {
                for(int x=0;x<arr.length-1;x++)
                        {
                        for(int y=x+1;y<arr.length;y++)
                        {
                                if(arr[x]<arr[y])
                                        {
                                        int random =arr[x];
                                        arr[x]=arr[y];
                                        arr[y]=random;
                                       
                                        }
                        }
                        }
        }

这里我的方法里面的参数类型是int arr是参数名么?还是应该怎么称呼?当我的主方法要调用该方法的时候,主方法定义的变量也必须起arr这个名字吗?事实上起别的名字也可以运行 已经测试了,如上面,这样操作会有什么影响吗?不明白里面的内部原理  括号内的。希望有时间的前辈给与解答。{:soso_e100:}


作者: 陈圳    时间: 2013-2-26 13:28
public static void sort(int arr[])
是可以随便取的.只要是数据类型:包括八个基本类型与三个引用类型//函数的返回值也是一样的.
这里的形参的名称也没有限定,因为形参也实参的作用域不同,即使定义了相同的标识符.也不会起冲突
你这里的int arr[] 是形式参数名称
也就是一个引用,实际计算的是你传入的参数的传,他只是为了让函数内方法体按照一个算法计算,
所以你调用: printArray(maxArray);
计算的是你实际定义的inr maxArray[]数组的值
作者: vaanmax    时间: 2013-2-26 13:36
在下是一个小菜哈,讲的不对的地方还望各位前辈勿喷。
首先 先看你的代码,你是写了一个选择排序,然后将其打印出来。

就像你说的,主方法再调用这个函数的时候,起别的名字,也可以执行出打印的结果来。由此可见,所起的名字,是由你来定的。
之所以起arr这个名字呢,是为了,便于别人阅读,而数组的名字呢就是array所以简写成arr方便别人阅读,继续开发或者修改。

其次呢就是你所说的影响了,基本上这要你的 int不丢,后面起的名字只要不是特殊字符的话都是没有问题的。

作者: 何伟    时间: 2013-2-26 13:36
方法()内的参数叫形参,是用来接接收你实际传给这个方法的参数,称为实参,名字可以自己起
作者: vaanmax    时间: 2013-2-26 13:39
说的简洁一点就是,你定义了一个 选择排序的方法,这个方法呢,只能接受int类型的数组 。这样写可以一目了然,让别人知道,你这个方法呢是做什么用的。
作者: 寇弘禄    时间: 2013-2-26 14:11
区分两个方法依靠的是方法名和参数类型,如果同一个类中的两个方法,方法名和参数类型都一样,那么将视为是同一个方法。
参数名可以随便定义,如 public void run(int a)和public void run(int b)将被视为是同一个方法。
作者: 徐升2013    时间: 2013-2-26 14:38
OK明白了 多谢大家 {:soso_e128:}




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