A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 马州州 于 2012-7-11 19:36 编辑

public static void main(String[] args)
        {
        int[] arr={5,1,6,4,2,8,9};
        int max=getmax(arr);就是这句话,能不能详解一下
        System.out.println("max="+max);
        }


public static int getmax(int[] arr)
        {        
                int max = arr[0];
                for (int x=1;x<arr.length ;x++ )
                {
                        if (arr[x]>max)
                                max = arr[x];
                }
                return max;
        }
        

这段代码上面那个int max=getmax(arr);的作用是什么,有些想不明白

15 个回复

倒序浏览
int max=getmax(arr);就是这句话,能不能详解一下
首先你调用了getmax(int[] arr)这个方法,
并把arr作为参数传入.这个方法的返回值是一个int型
然后你就用一个int型的max变量记录住了
getmax(arr)的返回结果
也可以这样说,将getmax(arr)的返回值赋值给int max;

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1

查看全部评分

回复 使用道具 举报
int max=getmax(arr);调用了下面的方法:
public static int getmax(int[] arr)
        {        
                int max = arr[0];
                for (int x=1;x<arr.length ;x++ )
                {
                        if (arr[x]>max)
                                max = arr[x];
                }
                return max;
        }
这个方法是静态的,可以直接调用,并且把返回值赋给了max。理解那一句话,主要就是理解getmax方法,这个方法里面,就是进行了一下遍历比较。
回复 使用道具 举报
int max=getmax(arr); 这是调用的getmax(int[] arr)方法,从而获取数组的最大值
回复 使用道具 举报
int max=getmax(arr)   
  public static int getmax(int[] arr)   
{return max;}
楼主不要被英文所迷惑,你就看这三句话就OK了。首先getMax()这个方法接受的是一个int 数组。所以你=右边是这么写getmax(arr)。而这个方法返回值的是max.他是一个int型局部变量。所以你=左边是这么写int max。而这个max是主函数的max.它和getmax方法中的max不是一个东西,你要不信你把他们改分别改成max1和max2,这个程序是一样的。
回复 使用道具 举报
public static int getmax(int[] arr)
        {        
                int max = arr[0];
                for (int x=1;x<arr.length ;x++ )
                {
                        if (arr[x]>max)
                                max = arr[x];
                }
                return max;
        }

int max=getmax(arr)
你调用了getmax(int[] arr)这个方法, 并把arr作为参数传入.这个方法的返回值类型为int类型;
在把max作为一个变量传入;只要获取这个max变量就可以获取这个最大值了
回复 使用道具 举报
高原 中级黑马 2012-7-11 12:55:13
7#
public static void main(String[] args)
        {
        int[] arr={5,1,6,4,2,8,9};
        int max=getmax(arr);        //将 int[] 类型数组 arr 的地址传给getmax()中的那个 int[] 类型的arr 数组,二者指向同一块内存,看我下面的图
        System.out.println("max="+max);    这个max也是局部变量,只是用来保存函数返回值的,和getmax函数中的max没有关系
        }


public static int getmax(int[] arr)      这个函数需要的参数是 int[] 类型的,作用是取得数组中的最大值,并返回
        {        
                int max = arr[0];         这里的max是局部变量,只是用来保存数组中元素的最大值的
                for (int x=1;x<arr.length ;x++ )
                {
                        if (arr[x]>max)
                                max = arr[x];
                }
                return max;
        }

内存图:



捕获.PNG (23.6 KB, 下载次数: 32)

捕获.PNG

评分

参与人数 1技术分 +1 收起 理由
职业规划-刘倩老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报
public static void main(String[] args)
        {
        int[] arr={5,1,6,4,2,8,9};
        int max=getmax(arr);就是这句话,能不能详解一下
        System.out.println("max="+max);
        }


public static int getmax(int[] arr)
        {        
                int max = arr[0];
                for (int x=1;x<arr.length ;x++ )
                {
                        if (arr[x]>max)
                                max = arr[x];
                }
                return max;
        }
getmax(arr)这里就是相当于把arr作为参数传入进来,参与比较运算
因为getmax方法返回的结果是int型常量。
那么就需要定义一个int型变量,并把getmax()方法中返回的结果赋值给int max量才能进行打印。

评分

参与人数 1技术分 +1 收起 理由
刘笑 + 1 赞一个!

查看全部评分

回复 使用道具 举报
刘笑 中级黑马 2012-7-11 15:08:08
9#
我就不说了
回复 使用道具 举报
int max=getmax(arr);
该语句是调用了方法getmax(),并传递了一个int型数组参数,
方法执行完之后返回一个int型的值,并且把这个返回的值负给了变量max。
回复 使用道具 举报
public static void main(String[] args)
        {
        int[] arr={5,1,6,4,2,8,9};
        int max=getmax(arr);就是这句话,能不能详解一下
        System.out.println("max="+max);
        }


public static int getmax(int[] arr)
        {        
                int max = arr[0];
                for (int x=1;x<arr.length ;x++ )
                {
                        if (arr[x]>max)
                                max = arr[x];
                }
                return max;
        }
        我的理解是第一是调用了下面的public函数,假如下面那句public static int getmax(int[] arr)
没有getmax的话,上面的那句就没用了,或者无法调用,因为找不到被调用的函数。第二是把public static int getmax(int[] arr)那一段给封装起来,
然后给getmax,这样就不用改下面的那段代码了,直接改getmax就行了。
回复 使用道具 举报
int max=getmax(arr);就是这句话,能不能详解一下
因为你调用的是getmax()方法,该方法的返回值类型是int型,所以你又定义了一个变量max 来记住该方法返回的值,仅此而已。
回复 使用道具 举报
调用方法,返回值给max。
回复 使用道具 举报
高原 发表于 2012-7-11 12:55
public static void main(String[] args)
        {
        int[] arr={5,1,6,4,2,8,9};

辛苦了,谢谢哈,看你的看明白了
回复 使用道具 举报
谢谢大家,问题明白了
回复 使用道具 举报
刘源 发表于 2012-7-11 12:17
int max=getmax(arr)   
  public static int getmax(int[] arr)   
{return max;}

你说的我也看明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马