Java学习笔记——方法

方法的概述

方法就是一个函数,是一个实现特定功能的代码段,不调用不执行,方法可以提升代码的复用性。

方法的定义和调用格式

方法的定义:
public static void 方法名{
方法体
}

方法的调用:
方法名();

方法的练习

需求:设计一个方法method,方法中定义一个变量(数值随意),判断这个变量是基数还是偶数,并在main方法中调用method。
思路:
1、定义方法,名称为method。
2、方法中定义一个变量num,并赋值 100。
3、if(num % 2 == 0){打印是偶数}else{打印是基数}
4、在main方法中调用method方法。

**示例:**

```bash
package top.djzxdx.method1;

public class Demo1Method {
    public static void main(String[] args) {
        eat();
    }
    public static void eat(){
        study();
        System.out.println("吃饭");
    }
    public static void study(){
        System.out.println("学习");
    }
}

带参数方法的定义和调用

在这里插入图片描述

形参和实参

在这里插入图片描述

案例:带参数方法的练习

需求:设计一个方法(print)用于打印n到m之间所有的奇数
思路 :
1、定义一个方法名为print。
2、方法内写一个for循环,遍历n到m之间的数字,在for循环内再写一个if语句,判断这个数字是否是奇数,如果是奇数的话,输出这个数字。
for(i = n; i <= m ; i++){
if(i % 2 != 0){
System.out.println(i);
}
}
3、main方法中调用这个print方法。

package top.djzxdx.method2;
import java.util.Scanner;

public class Demo2Method2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] arr = new int[2];
        for(int i = 0; i < 2; i++){
            System.out.println("请键盘输入第" + (i + 1) + "个数:");
            arr[i] = sc.nextInt();
        }
        System.out.print("您输入的"+arr[0]+"和"+arr[1]+"之间的奇数为");
        print(arr[0], arr[1]);
    }
    public static void print(int n, int m){
        for(int i = n; i <= m; i++){
            if(i % 2 != 0){
                System.out.print(i + " ");
            }
        }
    }
}

带返回值方法的定义和调用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

带返回值方法练习

需求:设计一个方法可以获取两个数的较大值,数据来自于参数。
思路:
1、定义一个方法getMax,声明2个形参接收待比较的数值,求出结果并返回。
2、使用if语句判断哪个值最大。
3、main方法中调用这个方法。

package top.djzxdx.method3;

public class Demo3Method3 {
    public static void main(String[] args) {
        int max = GetMax(10,20);
        System.out.println(max);
    }
    public static int GetMax(int a , int b){
        if(a > b){
            return a;
        }else{
            return b;
        }
    }
}

方法的通用格式

在这里插入图片描述
在这里插入图片描述

方法的注意事项

在这里插入图片描述

方法重载

在这里插入图片描述

方法重载练习

需求:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long)

package top.djzxdx.method4;

public class Demo4Method4 {
    public static void main(String[] args) {
        int a = 10;     //更换成short byte long均可以
        int b = 20;     //更换成short byte long均可以
        boolean result = compare(a, b);
        System.out.println(result);
    }
    public static boolean compare(int a, int b){
        return a == b;
    }
    public static boolean compare(byte a, byte b){
        return a == b;
    }
    public static boolean compare(short a, short b){
        return a == b;
    }
    public static boolean compare(long a, long b){
        return a == b;
    }

}

方法参数传递基本数据类型

如果方法参数传递的是基本数据类型,传进方法当中的是具体的数值。

方法参数传递引用数据类型

如果方法参数传递的是引用数据类型,传进方法当中的是内存地址。

数组遍历

需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的。例如:[11, 22, 33, 44, 55]

package top.djzxdx.method5;

public class Demo5Method5 {
    public static void main(String[] args) {
        int[] arr = new int[]{11, 22, 33, 44, 55};
        printArr(arr);
    }

    public static void printArr(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                System.out.println(arr[i] + "]");   //这里必须用println,否则在第6行代码之后再写print代码会和第6行内容打印在同一行。
            } else {
                System.out.print(arr[i] + " ,");
            }
        }
    }
}

案例:获取数组的最大值

需求:写一个方法,用于获取数组的最大值

package top.djzxdx.getmax;

public class GetMax {
    public static void main(String[] args) {
        int[] arr = {11,22,33,44,-55};
        int max = getMax(arr);
        System.out.println(max);
    }
    public static int getMax(int[] arr){
        int max = arr[0];
        for(int i = 0; i < arr.length; i ++){
            if(arr[i] > max){
                max = arr[i];
            }
        }
        return max;
    }
}

案例:获取数组的最大值和最小值

需求:设计一个方法,该方法能够同时获取数组的最大值和最小值。

package top.djzxdx.getmaxandmin;

public class GetMaxAndMin {
    public static void main(String[] args) {
        int[] arr = {11, -22, 33, 44, 55};
        int[] arr2 = getMaxAndMin(arr);
        System.out.println("最大值是:"+arr2[0]+",最小值是"+arr2[1]+"");
    }

    public static int[] getMaxAndMin(int[] arr) {
        int[] arr2 = {arr[0], arr[1]};
//        int max = arr[0], min = arr[arr.length - 1];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > arr2[0]) {
                arr2[0] = arr[i];
            }
            if (arr[i] < arr2[1]) {
                arr2[1] = arr[i];
            }
        }
        return arr2;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值