1.方法概述和格式说明

  • A:为什么要有方法:提高代码的复用性
  • B:什么是方法:完成特定功能的代码块。
  • C:方法的格式

       修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
       方法体语句;
       return 返回值; 
       } 
  • D:方法的格式说明

    • 修饰符:目前就用 public(权限修饰符) static(状态修饰符)。后面我们再详细的讲解其他的修饰符。
    • 返回值类型:就是功能(方法)结果的数据类型。void(没有返回值类型),返回值决定返回值类型;
    • 方法名:符合命名规则即可。方便我们的调用。main(主要的)
    • 参数:

      * 形式参数;就是方法定义的,用于接收实际参数的。 (a,b)
      * 实际参数:就是实际参与运算的。(10,20)
      
    • 参数类型:就是参数的数据类型(基本数据类型:四类八种)
    • 参数名:就是变量名(合法的标识符)
    • 方法体语句:就是完成功能的代码。(System.out.println("Method");)
    • return:结束方法的。
    • 返回值:就是功能的结果,由return带给调用者:返回值是什么类型,返回值类型就是该类型。 void可省略。
public class JavaMethod {
        public static void main(String args []){
                System.out.println("Method");
        }
}

2.方法之求和案例及其调用(方法的注意事项)

  • A:写一个方法:1,明确返回值类型2,明确参数列表
  • B:案例:求两个数据之和的案例
  • C:方法调用图解
  • 一个类如果有主方法,我们称之为测试类
  • D:方法调用(有具体返回值)

    • a:单独调用,一般来说没有意义,所以不推荐。
    • b:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
    • c:赋值调用,推荐方案。
  • E:案例演示

    • a:方法不调用不执行
    • b:方法与方法是平级关系,不能嵌套定义
    • c:方法定义的时候参数之间用逗号隔开
    • d:方法调用的时候不用在传递数据类型
    • e:如果方法有明确的返回值,一定要由return带回一个值
public class JavaMethod {
    public static void main(String args []){
        int sum = add(10,20); //第一步:赋值调用,调用了add方法,并传入了实际参数10,20分别传给形式参数,将sum赋值给s
        System.out.println("sum = " + sum); //第五步:上下两个方法中的sum非同一个sum,不能互相访问     
        //add(30,40);        //单独调用,一般来说没有意义,所以不推荐。
        //System.out.println(add(30,40));   //输出调用,一般不推荐
        int sum2 = add(30,40);
        System.out.println("sum2 = " + sum2);
    }
    //返回值类型int;明确参数列表int a,int b
    public static int add(int a,int b) {    //第二步:将10和20,分别传给a,b
        //int sum = a + b;           //第三步:执行语句:将a和b相加后的结果,赋值给sum
        //return sum;            //第四步:由return将sum返回给调用者
        return a + b;
    }
}

3.方法的练习

  • A:案例演示

    • 需求:键盘录入两个数据,返回两个数中的较大值
import java.util.Scanner;    
public class JavaMethod {
    public static void main(String args []){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个整数");
        int x = sc.nextInt();
        System.out.println("请输入第二个整数");
        int y = sc.nextInt();

        int max = getMax(x,y);
        System.out.println("max = " + max);
    }
    //返回值类型int;参数列表int a,int b
    public static int getMax(int a,int b) {
            int max = (a > b)? a : b;
            return max;
            //return a > b ? a : b;
    }
}
  • B:案例演示

    • 需求:键盘录入两个数据,比较两个数是否相等
      import java.util.Scanner;
      public class JavaMethod {

      public static void main(String args []){
          Scanner sc = new Scanner(System.in);
          System.out.println("请输入第一个整数");
          int x = sc.nextInt();
          System.out.println("请输入第二个整数");
          int y = sc.nextInt();
          boolean b = isEquals(x,y);
          System.out.println(b);
      }
      //返回值类型boolean;参数列表int a,int b
      public static boolean isEquals(int a,int b) {   //isEquals是否相等
          return a == b;
      }

      }

4.方法之输出矩形星形及其调用

  • A:案例演示

    • 需求:根据键盘录入的行数和列数,在控制台输出矩形星形
  • B:方法调用:(无具体返回值类型的,用void来接收)

    • 单独调用
    • 输出调用(错误)
    • 赋值调用(错误)
    • ~注意:如果返回值类型是void,return可以省略,即使省略,系统也会默认给加上,形式是: return;
import java.util.Scanner;
class MethodDemo3 {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入行数:");
                int row = sc.nextInt();
                System.out.println("请输入列数:");
                int column = sc.nextInt();
 
                printStar(row,column);    //返回值类型是void的方法,要单独调用
                //void v = printStar(row,column);   //赋值调用不可以
                //System.out.println(printStar(row,column));  //输出调用也是不可以的void
        }
        /*
        在控制台输出打印矩形星型
        1.明确返回值类型(因为是在控制台打印输出,经分析没有具体的返回值类型) void
        2.明确参数列表 int a,int b
        */
        public static void printStar(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;
        }
}

5.方法的练习

  • A:案例演示

    • 需求:根据键盘录入的数据输出对应的乘法表
import java.util.Scanner;
class MethodDemo4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数,范围在1-9");
        int num = sc.nextInt();
        /*
        1.明确返回值类型 void
        2.参数列表 int a 
        */
        print99(num);
        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 + "=" + j * i + "\t");
                }
                System.out.println();
            }
        }
}

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

A:方法重载概述

* 求和案例
    * 2个整数
    * 3个整数
    * 4个整数

B:方法重载:

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

* 参数列表不同:
    * A:参数个数不同
    * B:参数类型不同
    * C:参数的顺序不同(算重载,但是在开发中不用)
    
class OverLoad{
    public static void main(String[] args) {
        int sum1 = add(10,20);
        System.out.println(sum1);
        int sum2 = add(10,20,30);
        System.out.println(sum2);
        
        double sum3 = add(11.2,15.2,18.5);
        System.out.println(sum3);
    }
    /*
    求两个整数的和
    1.返回值类型  int
    2.参数列表 int a,int b
    */
    public static int add(int a,int 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,double c
    */
    public static double add(double a,double b,double c) {
    return a + b + c;
    }
}

7.方法重载练习比较数据是否相等

A:案例演示

* 需求:比较两个数据是否相等。
* 参数类型分别为两个int类型,两个double类型,并在main方法中进行测试

class OverLoad4{
    public static void main(String[] args) {
        boolean b1 = isEquals(10,10);
        System.out.println(b1);
    }
    /*
    求两个整数的和
    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;
    }
}

扎瓦
36 声望33 粉丝

笑吾庐,门掩草,径封苔。