Java初接触 | 方法【常见问题、案例】

2,411 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12月更文挑战」的第14天

方法使用的常见问题

  • 方法的编写顺序无所谓。
  • 方法与方法之间是平级关系,不能嵌套定义。
  • 方法的返回值类型为void(无返回值),方法内则不能使用return返回数据,如果方法的返回值类型写了具体类型,方法内部则必须使用return返回对应类型的数据。
  • return语句下面,不能编写代码,因为永远执行不到,属于无效的代码。
  • 方法不调用就不执行, 调用时必须严格匹配方法的参数情况。
  • 有返回值的方法调用时可以选择定义变量接收结果,或者直接输出调用,甚至直接调用;无返回值方法的调用只能直接调用。

方法案例

image.png

  • 修饰符:public static (暂时固定的)
  • 方法名称:自己取名,有意义,英文小写,驼峰模式。(有意义的名字即可)
  • 方法体代码:完成自己需要写的功能代码即可。(具体需求具体实现)
  • 真正需要关注的就两点:1、分析方法是否需要申明返回值类型;2、分析方法是否需要接收参数。

案例1:计算1-n的和返回

需求:定义一个方法,方法中计算出 1-n的和并返回。
分析:
1.根据格式编写方法 ----> 因n不固定,故方法需要声明形参接收;要返回结果,还需申明返回值类型。
2.方法内部使用 for 循环计算出 1-n 的和并返回。

public static void main(String[] args) {
    // 需求:使用方法计算1-n的和并返回
    System.out.println("1-5的和是:" + sum(5));
    System.out.println("--------------------");
    System.out.println("1-100的和是:" + sum(100));
}

public static int sum(int n){
    int sum = 0;
    for (int i = 1; i <= n ; i++) {
        sum += i;
    }
    return sum;
}

案例2:判断整数是奇数还是偶数

需求:拿一个整数,然后调用方法,把整数交给方法,在方法中输出该数为奇数还是偶数
分析:
1.根据格式编写方法 ----> 因要传入数据给方法,方法需要声明形参接收。
2.方法内部使用if语句判断,并输出对应的结论。

public static void main(String[] args) {
    // 需求:判断一个整数是奇数还是偶数 并进行结果的输出 使用方法完成
    check(11);
    System.out.println("-------------");
    check(100);
}

public static void check(int number) {
    if(number % 2 == 0){
        System.out.println(number + "是偶数");
    }else {
        System.out.println(number + "是奇数");
    }
}

案例3:数组求最值改方法实现

image.png

需求:
把找出数组的最大值案例,改造成方法,可以支持返回任意整型数组的最大值数据。

分析:

  • 根据格式编写方法
    • 要返回最大值,需要申明返回值类型。
    • 需要接收数组, 需要申明形参列表。
  • 方法内部找出数组的最大值并返回。
public static void main(String[] args) {
    // 需求:使用方法,支持找出任意整型数组的最大值返回。
    int[] ages = {23, 19, 25, 78, 34};
    int max = getArrayMaxData(ages);
    System.out.println("最大值数据是:" + max);

    System.out.println("-------------------");
    int[] ages1 = {31, 21, 99, 78, 34};
    int max1 = getArrayMaxData(ages1);
    System.out.println("最大值数据是:" + max1);
}

public static int getArrayMaxData(int[] arr){
    // 找出数组的最大值返回
    int max = arr[0];
    // 遍历数组的每个元素与最大值的数据进行比较,若较大则替换
    for (int i = 1; i < arr.length; i++) {
        if(arr[i] > max){
            max = arr[i];
        }
    }
    return max;
}