【JAVA基础】04 Java语言基础:方法

1. 方法概述和格式说明

  • 为什么要有方法

    • 提高代码的复用性

  • 什么是方法

    • 完成特定功能的代码块。

  • 方法的格式

    • 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
           方法体语句;
           return 返回值;
      }

       

  • 方法的格式说明

    • 修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。

    • 返回值类型:就是功能结果的数据类型。

    • 方法名:符合命名规则即可。方便我们的调用。

    • 参数:

      • 实际参数:就是实际参与运算的。

      • 形式参数;就是方法定义上的,用于接收实际参数的。

    • 参数类型:就是参数的数据类型

    • 参数名:就是变量名

    • 方法体语句:就是完成功能的代码。

    • return:结束方法的。

    • 返回值:就是功能的结果,由return带给调用者。

 

2. 方法之求和案例及其调用

  • 如何写一个方法

    • 明确返回值类型

    • 明确参数列表

  • 案例演示

    • 需求:求两个数据之和的案例

    • class Test {
          public static void main(String[] args) {
              int sum = add(10, 20);
      
              System.out.println(sum);
              }
      
              public static int add(int a, int b) {
                  int sum = a + b;
                  return sum;
              }
      }
  • 方法调用图解

3. 方法的注意事项

  • 方法调用(有具体返回值)

    • 单独调用,一般来说没有意义,所以不推荐。

    • 输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。

    • 赋值调用,推荐方案。

  • 案例演示

    • 方法不调用不执行

    • 方法与方法是平级关系,不能嵌套定义

    • 方法定义的时候参数之间用逗号隔开

    • 方法调用的时候不用在传递数据类型

    • 如果方法有明确的返回值,一定要有return带回一个值

 

4. 方法的练习

  • 案例演示

    • 需求:键盘录入两个数据,返回两个数中的较大值

 

    • 需求:键盘录入两个数据,比较两个数是否相等
      • /*
        * A:案例演示
            * 需求:键盘录入两个数据,返回两个数中的较大值
        * B:案例演示
            * 需求:键盘录入两个数据,比较两个数是否相等     
        */
        import java.util.Scanner;
        class Test1_Method {
            public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);                //创建键盘录入对象
                System.out.println("请输入第一个整数:");
                int x = sc.nextInt();                                //将键盘录入的整数存储在x中
                System.out.println("请输入第二个整数:");
                int y = sc.nextInt();                                //将键盘录入的整数存储在y中
        
                //int max = getMax(x,y);
                //System.out.println(max);
        
                boolean b = isEquals(x,y);
                System.out.println(b);
            }
        
            /*
            返回连个整数的较大值
            1,明确返回值类型 int
            2,明确参数列表 int a,int b
            */
            public static int getMax(int a,int b) {
                return a > b ? a : b;
            }
        
            /*
            判断两个整数是否相等
            1,明确返回值类型 boolean
            2,明确参数列表 int a,int b
            */
            public static boolean isEquals(int a,int b) {        //isEquals 是否相等
                return a == b;
            }
        }
        View Code
    • 需求:根据键盘录入的行数和列数,在控制台输出星形
      • /*
        * A:案例演示
            * 需求:根据键盘录入的行数和列数,在控制台输出星形
        * B:方法调用:
            * 单独调用
            * 输出调用(错误)
            * 赋值调用(错误)
        */
        import java.util.Scanner;
        class Demo3_Method {
            public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);            //创建键盘录入对象
                System.out.println("请输入行数:");
                int row = sc.nextInt();                            //将键盘录入的行数存储在row中
                System.out.println("请输入列数:");
                int column = sc.nextInt();                        //将键盘录入的列数存储在column中
                
                //System.out.println(print(row,column));        //错误: 此处不允许使用 '空' 类型,返回值是void的方法不能输出调用
                //返回值是void的方法只能单独调用
                print(row,column);
            }
        
            /*
            在控制台输出矩形星形
            1,明确返回值类型,经分析没有具体的返回值类型,void
            2,明确参数列表int a,int b
            */
        
            public static void print(int a,int b) {
                for (int i = 1;i <= a ;i++ ) {                    //行数
                    for (int j = 1;j <= b ;j++ ) {                //列数
                        System.out.print("*");
                    }
                    System.out.println();
                }
        
                //return ;                                        //如果返回值类型是void,return可以省略,即使省略系统也会默认给加上,形式是return;
            }
        }
        View Code
    • 需求:根据键盘录入的数据输出对应的乘法表
      • /*
        * A:案例演示
            * 需求:根据键盘录入的数据输出对应的乘法表
        */
        import java.util.Scanner;
        class Test2_Method {
            public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);        //创建键盘录入对象
                System.out.println("请录入一个整数,范围在1-9之间");
                int num = sc.nextInt();                        //将键盘录入的整数存储在num中
                print99(num);
            }
        
            /*
            打印99乘法表
            1,返回值类型void
            2,参数列表,int a
            */
        
            public static void print99(int a) {
                for (int i = 1;i <= a ;i++ ) {                    //行数
                    for (int j = 1;j <= i ;j++ ) {                //列数
                        System.out.print(j + "*" + i + "=" + (i * j) + "	" );
                    }
                    System.out.println();
                }
            }
        }
        View Code

 

5. 方法重载概述和基本使用

  • 方法重载概述

    • 求和案例

      • 2个整数

      • 3个整数

      • 4个整数

      • /*
        重载:方法名相同,参数列表不同,与返回值类型无关
        重载的分类
        1,参数个数不同
        2,参数类型不同
            顺序不同
        */
        class Demo4_Overload {                        //overload重载
            public static void main(String[] args) {
                double sum1 = add(10,20.1);
                System.out.println(sum1);
        
                int sum2 = add(10,20,30);
                System.out.println(sum2);
        
                double sum3 = add(12.3,13);
                System.out.println(sum3);
            }
        
            /*
            求两个整数的和
            1,返回值类型int
            2,参数列表 int a,int b
            */
        
            public static double add(int a,double b) {
                return a + b;
            }
        
            /*
            求三个整数的和
            1,返回值类型int
            2,参数列表 int a,int b,int c
            */
        
            public static int add(int a,int b,int c) {
                return a + b + c;
            }
        
            /*
            求两个小数的和
            1,返回值类型double
            2,参数列表 double a,double b
            */
        
            public static double add(double a,int b) {
                return a + b;
            }
        }
        View Code
  • 方法重载:

    • 在同一个类中,方法名相同,参数列表不同。与返回值类型无关。

    • 参数列表不同:

      • 参数个数不同

      • 参数类型不同

      • 参数的顺序不同(算重载,但是在开发中不用)

  • 案例演示

    • 需求:比较两个数据是否相等。

    • 参数类型分别为两个int类型,两个double类型,并在main方法中进行测试

      • /*
        * A:案例演示
            * 需求:比较两个数据是否相等。
            * 参数类型分别为两个int类型,两个double类型,并在main方法中进行测试
        
        */
        class Test3_Overload {
            public static void main(String[] args) {
                boolean b1 = isEquals(10,10);
                System.out.println(b1);
        
                boolean b2 = isEquals(10.5,10.5);
                System.out.println(b2);
            }
        
            /*
            比较两个数据是否相等
            1,返回值类型boolean
            2,参数列表int a,int b
            */
        
            public static boolean isEquals(int a,int b) {
                return a == b;
            }
        
            /*
            比较两个数据是否相等
            1,返回值类型boolean
            2,参数列表double a,double b
            */
        
            public static boolean isEquals(double a,double b) {
                return a == b;
            }
        }
        View Code

 

原文地址:https://www.cnblogs.com/zoe233/p/12743338.html