Java方法详解

Java方法详解

方法基本概念

 package com.arbedu.method;
 ​
 public class Demo01 {
     // main方法
     public static void main(String[] args) {
         int a;
         int b;
         int sum = add(1, 2);    // 实际参数,用来调用传递的参数
         System.out.println(sum);
         test();
     }
     // 加法
     // a,b形式参数,用来定义作用的
     public static int add(int a, int b){
         return a + b;
     }
 ​
     // 循环
     public static void test(){
         for (int i = 0; i < 10; i++) {
             System.out.print(i+" ");
         }
     }
 }
 ​
 ​
 package com.arbedu.method;
 ​
 public class Demo02 {
     public static void main(String[] args) {
         
         int max = max(10,20);
         System.out.println(max);
     }
     // 比大小
     public static int max(int num1, int num2) {
         
         int result;
         
         if (num1 == num2) {
             System.out.println("num is the same");
             return 0;   // 终止方法
         }
         if (num1 > num2) {
             result = num1;
         }else {
             result = num2;
         }
         return result;
     }
 }
 ​

方法的重载

重载就是在一个类中,有相同的函数名称,但形参不同的函数

  • 方法名称相同

  • 参数列表不同(个数不同、类型不同、参数排列顺序不同(可读性差))

  • 方法的返回类型可以相同也可以不同

  • 仅仅返回类型不同不足以成为方法的重载

  • JVM会对重载自行判断

 package com.arbedu.method;
 ​
 public class Demo01 {
     public static void main(String[] args) {
         int i;
         int j;
         int k;
         int sum1 = add(1, 2);
         int sum2 = add(1, 2, 3);
         double sum3 = add(1.0, 2.0);
 ​
     }
 ​
     // 方法1
     public static int add(int a, int b) {
         return a + b;
     }
     // 方法2 与方法1相同 不是方法的重载 报错
     //public static int add(int a, int b) {
     //   return a + b;
     //}
 ​
     // 方法3
     public static int add(int a, int b, int c) {
         return a + b + c;
     }
 ​
     // 方法4
     public static double add(double a, double b) {
         return a + b;
     }
     // 方法5
     // public static int add(int b, int a) {
     //   return a+b;
     // }
 }
 ​
 ​

命令行传参

 package com.arbedu.method;
 ​
 public class Demo03 {
     public static void main(String[] args) {
         for(int i = 0; i < args.length; i++) {
             System.out.println("args["+i+"]: "+args[i]);
         }
     }
 }

可变参数(不定项参数)

 package com.arbedu.method;
 ​
 public class Demo04 {
     public static void main(String[] args) {
     // 调用可变参数的方法
         printMax(34, 4, 4, 1,94);
     }
   public static void printMax(double... numbers) {
         if(numbers.length == 0) {
             System.out.println("No arguments passed");
             return;
         }
         double result = numbers[0];
 ​
         // 排序
       for (int i = 1; i < numbers.length; i++) {
           if(numbers[i] > result) {
 ​
               result = numbers[i];
           }
       }
       System.out.println("The max value is "+result);
   }
     }
 ​
 ​

递归

能不用递归就不用递归

 package com.arbedu.method;
 ​
 public class Demo05 {
     public static void main(String[] args) {
         System.out.println(f(4));
     }
     public static int f(int n){
         if(n == 1) {    //限制条件
             return 1;
 ​
         }else{
             return n*f(n-1);
         }
     }
 }
 ​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值