62,620
社区成员
发帖
与我相关
我的任务
分享package test;
/* 获取数组中最大值
思路
1,需要进行比较,并定义变量记录住每次比较后较大的值
2,对数组中的元素进行遍历取出,和变量中记录的元素进行比较,
如果遍历到的元素大于变量中记录的元素,就用变量记录住该大的值
3,遍历结果,该变量记录就是最大值
定义一个功能:选出数组中最大的那个元素
明确1 有没有返回值? 有,数组中的元素,int型
明确2 有没有未知内容参与?有,数组 */
public class test24 {
public static void main(String args[]){
int[] arr = {-23,-34,-65,-23,-78,-234,-6};
int maxElement = getMax_2(arr);//为什么int maxElement =arr.getMax();不对
System.out.println(maxElement);
}
public static int getMax(int [] arr ){
int maxElement = arr[0];//定义变量记录较大的值
for(int x=1;x<arr.length;x++){//注意不要x<arr.length-1那样最后一个元素取不到,
//x=1而不等于0是因为开始取得最大值就是arr[0],自己就不要和自己比了
if(arr[x]>maxElement)
maxElement = arr[x];
}
return maxElement;
}
//getMax_2() 是求最大值的另一种思想、方法
public static int getMax_2(int []arr){
int maxIndex = 0;//定义变量记录较大的值的角标
for(int x=1;x<arr.length ;x++){//注意不要x<arr.length-1那样最后一个元素取不到
if(arr[x]>arr[maxIndex])
maxIndex = x;
}
return arr[maxIndex];
}
//getMax()是通过控制元素来进行的比较,而getMax_2()是通过控制元素角标来进行元素的比较
}

int maxElement =arr.getMax();
有两个问题要明确:
1,你想这样写,但是这样的话表示的是用arr来调用getMax()方法,而且调用的也是没有参数的getMax方法,而你定义的getMax()方法需要有一个数组作为参数,这肯定就调不到了啊.
2,况且要想调用一个方法,要么用方法所属类的对象来调用,要么方法是静态的(就是方法语句上有static)可以用类名来调用,而数组arr不属于getMax方法所在的类,所以就不能调用了.如果是在方法所在类中调用方法,就可以省略类名,也就是直接写getMax(arr)就可以了.