6.方法

方法

1.方法

知识小店:

方法的原子性: 一个方法只完成一个功能,这样利于后期的扩展

package com.lin.study.method;

public class Demo01 {
   public static void main(String[] args) {
       int sum = add(1,2);//此处为实际参数: 实际调用传递的参数
       System.out.println(sum);
  }

   //定义一个加法
   public static int add(int a,int b){  //此处为形式参数: 用来定义作用的
       return a + b;
  }
}

2.方法的定义和调用

知识小店: return有终止方法的作用

package com.lin.study.method;

public class Demo02 {
   public static void main(String[] args) {
       int max = max(20, 50);
       System.out.println(max);
  }

   //定义一个比较大小的方法
   public static int max(int num1,int num2){
       int result = 0;

       if(num1 == num2){
           System.out.println("num1 == num2");
           return 0;//return有终止方法的作用
      }

       if(num1 > num2){
           result = num1;
      }else{
           result = num2;
      }
       return result;
  }
}

运行结果:

50

Process finished with exit code 0

3.方法的重载

方法重载的规则:

  1. 方法名必须相同。

  2. 参数列表必须不同(个数不同,类型不同,或参数排列顺序不同等)

  3. 仅仅是返回类型不同,不足以构成方法的重载

eg: public static int max(int a,int b){...}
eg: public static int max(double a,double b){...}
eg: public static int max(int a,int b,int c){...}

4.可变参数

知识小店: 一个方法中只能指定一个可变参数,

且必须是方法的最后一个参数,任何普通的参数必须在这之前声明。

package com.lin.study.method;

public class Demo03 {
   public static void main(String[] args) {
       //调用可变参数的方法
       printMax();
       printMax(55,66,99,56,2,6,7);
       printMax(new double[]{1,2,3});
  }

   public static void printMax(double... a){
       if(a.length == 0){
           System.out.println("没有参数!");
           return;
      }

       //排序
       double result = a[0];
       for(int i = 1;i < a.length;i++){
           if(a[i] > result){
               result = a[i];
          }
      }
       System.out.println("最大值为: " + result);
  }
}

运行结果:

没有参数! 最大值为: 99.0 最大值为: 3.0

Process finished with exit code 0

5.递归

package com.lin.study.method;

public class Demo04 {
   public static void main(String[] args) {
       //递归思想:(适用于小数值计算)
       System.out.println(f(3));
  }

   
   public static int f(int n){
       if(n==1){
           return 1;
      }else{
           return n*f(n-1);
      }
  }
}

6.作业:计算器(我自己写的)

package com.lin.study.method;

import java.util.Scanner;

public class Demo05 {
   public static void main(String[] args) {

       Scanner sc = new Scanner(System.in);

       System.out.println("程序已启动,请输入第一个数: ");
       double x = sc.nextDouble();

       System.out.println("请输入+-*/中的其中一种运算符: ");
       String str = sc.next();

       System.out.println("请输入第二个数: ");
       double y = sc.nextDouble();

       System.out.println("运算结果为: ");

       switch(str){
           case "+":
               System.out.println(x + y);break;
           case "-":
               System.out.println(x - y);break;
           case "*":
               System.out.println(x * y);break;
           case "/":
               System.out.println(x / y);break;
           default:
               System.out.println("语法错误!");
      }
  }
}

运行结果:

程序已启动,请输入第一个数: 5 请输入+-*/中的其中一种运算符: + 请输入第二个数: 5 运算结果为: 10.0

Process finished with exit code 0

posted @ 2021-10-06 22:12  木木9_9  阅读(146)  评论(0)    收藏  举报