什么是方法?

方法解释

方法(method)是程序中最小的执行单元。

方法里面代码不可再拆,而单独执行。还可以再定义一个方法。

方法用来调用,就是这样。

1,什么是方法?

方法是程序中最小的执行单元。

2,实际开发中,什么时候用到方法?

重复的代码,具有独立功能的代码可以抽取到方法中。

3,实际开发中,方法有什么好处?

  • 可以提高代码的复用性。

  • 可以提高代码的可维护性。

方法的格式

把一些代码打包在一起(如何) 方法定义

用到的时候就调用(如何) 方法调用

  • 方法的定义格式

1,最简单的方法定义

2,带参数的方法定义

3,带返回值方法的定义

eg:

方法名:如果是一个单词,全部小写。

如果是多个字母,第一个单词全小写,从第二个单词开始,首字母大写。

看代码说结果

  • 人肉计算器

需求:定义一个方法,在方法内部定义两个变量,求出他们的和并进行打印。

答案:

import java.util.Scanner;

public class Method111 {
    public static void main(String[] args) {
        getsum();
    }
    public static void getsum(){
        Scanner sc = new Scanner(System.in);
        System.out.println("请依次输入两个要求和的数:");
        int number1 = sc.nextInt();
        int number2 = sc.nextInt();
        System.out.println("和为:" + (number1+number2));
    }
}

  • 带参数的方法定义和调用

主方法和其他方法肯定要有联系!

定义:

单个参数:

public static void 方法名(参数){...........}

多个参数:

public static void 方法名(参数1,参数2,参数3,...){..............}

调用:

单个参数:

方法名(参数);

多个参数:

方法名(参数1,参数2,参数3,...)

  • 形参和实参

形参:全程形式参数,是指方法定义中的参数

实参: 全程实际参数,是指方法调用中的参数

注意:方法调用时,形参和实参必须一 一对应,负责程序将报错。

eg:定义一个方法,求长方形的周长,将结果在方法中进行打印。

答案:

import java.util.Scanner;

public class Method111 {
    public static void main(String[] args) {
        double chang = 19.2;
        double kuan = 16.3;
        Chzc(chang,kuan);
    }
    public static void Chzc(double number1,double number2){
        System.out.println((number1+number2)*2);
    }
}
  • 带返回值方法的定义和调用

为什么要有带返回值的方法呢?

调用者----->方法

方发------>调用者

定义:

public static 返回值类型 方法名 (参数) {

方法体;

return 返回值;

}

eg:

public static int getSum(int a, int b){

int c = a+b;

return c;

}

直接调用:

方法名(实参);

赋值调用:

整数类型 变量名 = 方法名(实参);

输出调用:

System.out.println(方法名(实参));

  • 比较两个长方形的面积,题目给出两个长方形的长和宽。

import java.util.Scanner;
public class Method111 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("第一个长和宽:");
        double number1 = sc.nextDouble();
        double number2 = sc.nextDouble();
        double area1 = getArea(number1,number2);
        System.out.println("第二个长和宽:");
        double number3 = sc.nextDouble();
        double number4 = sc.nextDouble();
        double area2 = getArea(number3,number4);
        if(area1 >area2){
            System.out.println("第一个大");
        }else if(area2 > area1){
            System.out.println("第二个大");
        }else{
            System.out.println("一样大");
        }
    }
    public static double getArea(double num1,double num2){
        double area = num1*num2;
        return area;
    }
}

在实际开发当中,我们一般是把重复的代码或者具有独立功能的代码抽取到方法当中。

方法的注意事项

  1. 方法不调用就不执行。

  1. 方法和方法之间是平级关系,不能互相嵌套定义。

  1. 方法的编写顺序和执行顺序无关。

  1. 方法的返回值类型为void,表示该方法没有返回值。

没有返回值的方法可以省略return语句不写。

如果要编写return,后面不能跟具体的数据。

  1. return语句下面,不能编写代码,因为永远执行不到,属于无效的代码。

  • return关键字

方法没有返回值:可以省略不写。如果书写,表示结束方法。

方法有返回值:必须要写,表示结束方法和返回结果。

方法的重载
  • 在同一个类中,定义了多个同名的方法,这些同名的方法具有同种的功能。

  • 每个方法具有不同的参数类型参数个数,这些同名的方法,就构成了重载关系。

  • 与返回值也无关。

学会:

1,会判断方法之间是否构成重载关系

2, 会定义重载的方法

eg:

需求:使用方法重载的思想,设计比较两个整数是否相同的方法。

要求:兼容全整数类型(byte,short,int,long)

import java.util.Scanner;

public class Method111 {
    public static void main(String[] args) {
        compare((byte)10,(byte)20);
    }
    public static void compare(byte b1,byte b2){
        System.out.println("byte");
        System.out.println(b1 == b2);
    }
    public static void compare(short s1,short s2){
        System.out.println("short");
        System.out.println(s1 == s2);
    }
    public static void compare(int i1,int i2){
        System.out.println("int");
        System.out.println(i1 == i2);
    }
    public static void compare(long n1,long n2){
        System.out.println("long");
        System.out.println(n1 == n2);
    }
}
方法的三个练习
  • 数组遍历

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

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        //动态定义一个数组
        System.out.println("数组的长度和数组元素:");
        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();
        int[] arr = new int[number];
        for (int i = 0; i < number; i++) {
            arr[i] = sc.nextInt();
        }
        printArr(arr);

    }
    public static void printArr(int[] arr){
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
            if(i<arr.length-1){
                System.out.print(",");
            }
        }
        System.out.println("]");
    }
}

解释:

System.out.println("abc");//先打印abc,再进行换行

System.out.print("abc");//只打印abc,不换行

System.out.println();//不打印任何数据只做换行处理

第二个练习

  • 数组的最大值

需求:设计一个方法求数组的最大值,并将最大值返回。

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        System.out.println("老套路,请输入数组的长度和所有的数组元素:");
        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();
        int arr[] = new int[number];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt();
        }
        System.out.println("其最大值为:"+getMax(arr));

    }
    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;
    }
}

王通哥教你学习!

  • 判断是否存在

定义一个方法判断数组中的某一个数是否存在,将结果返回给调用处。

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        int[] arr = {1,5,8,12,56,89,34,67};
        System.out.println("已定义好数组,请输入您要判断是否存在的数:");
        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();
        System.out.println(contains(number,arr));
    }
    public static boolean contains(int num,int[] arr){
        for (int i = 0; i < arr.length; i++) {
            if(num == arr[i]){
                return true;
            }
        }
        return false;
    }
}

return,break关键字的区别

return:其实跟循环没有什么关系,跟方法有关的,表示1结束方法 ;2返回结果

如果方法执行到了return,那么整个方法全部结束,里面的循环也会随之结束了。

break关键字

其实跟方法没有什么关系,结束循环或switch的。

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值