Java零基础课程笔记(六)——方法的定义与使用

1. 方法的定义与使用

方法最大的好处是可以进行重复调用,但是至于说那些操作要形成方法,这些都要根据实际的项目经验自我总结的。

1.1 方法的基本定义

限制条件:本次所讲解的方法指的是在主类中定义,并且由主方法直接调用的方法形式。

  • 方法就指的是一段可被重复调用的代码块。在Java中若想定义方法,可使用如下语法完成:
    • public static 方法返回值 方法名称([参数类型 变量, …]) {
      方法体代码;
      [return [返回值];]
      }
      在定义方法时,对于方法的返回值有以下两类:
  • void:没有返回值
  • 数据类型(基本数据类型、引用类型)

范例:定义一个没有返回值,没有参数的方法

代码

public class Test{
  public static void main(String args[]){
        print(); // 主方法里面,直接调用方法
        print(); // 主方法里面,直接调用方法  
    }
  public static  void print(){ // 方法定义
        System.out.println("********************");
        System.out.println("*  Hello World!  *");
        System.out.println("********************");
    }
} /* 输出结果:
********************
*  Hello World!  *
********************
********************
*  Hello World!  *
********************
*/

范例:定义一个无返回值,有参数的方法

代码

public class Test{
  public static void main(String args[]){
        print("Hello"); // 主方法里面,直接调用方法
        print("World"); // 主方法里面,直接调用方法  
        print("!"); // 主方法里面,直接调用方法  
    }
  public static  void print(String msg){ // 方法定义
        System.out.println(msg);
    }
} /* 输出结果:
Hello
World
!
*/

范例:定义一个有返回值,有参数的方法

代码

public class Test{
  public static void main(String args[]){
          int sum = add(3,5) ;
          System.out.println(sum);
          // 既然方法有返回值,那么这些返回值也可以直接输出,如下
          System.out.println(add(3,5));
    }
  public static int add(int x , int y){ // 方法定义
        return x+y;
    }
} // 输出结果:
  // 8
  // 8

注意:在定义方法时,如果某一个方法上使用了void定义(无返回值),那么该方法中可以利用return来结束调用。一般而言,这种return的处理往往要结合if的判断来使用。
范例:

代码

public class Test{
  public static void main(String args[]){
         print(10);
         print(20);
    }
  public static void print(int x){ 
          if (x == 20) { // 表示方法结束的判断
              return ; // 此语句之后的代码不再执行
        }
           System.out.println(" x = " + x);
    }
} // 输出结果: x = 10

若是第一次接触,先将语法记熟,至于怎么用,需要时间消化。

1.2 方法重载(重点

方法重载:指的是方法名称相同,参数的类型或个数不同。
范例:实现方法重载

代码

public class Test{
  public static void main(String args[]){
         // 此时将根据参数的类型或个数的不同执行不同的方法体
          System.out.println(add(10,20));
          System.out.println(add(10,20,30));
          System.out.println(add(10.1,20.2));
    }
  public static int add(int x,int y){ 
           return x+y;
   }
   public static int add(int x,int y,int z){ 
           return x+y+z;
  // 此时方法名称相同,参数的个数不同
   } 
   public static double add(double x,double y){ 
           return x+y;
  // 此时方法名称相同,参数的类型不同  
   }   
 }/* 输出结果:
30
60
30.299999999999997  */

在进行方法重载时,开发原则:方法的返回值类型一定要相同!!!
范例:观察如下程序

代码

public class Test{
  public static void main(String args[]){
          System.out.println("hello");  // 输出字符串
          System.out.println(1); // 输出整型
          System.out.println(1.1); // 输出浮点型
          System.out.println('A'); // 输出字符型
          System.out.println(true); // 输出布尔型
    } 
}// 执行正确

证明出System.out.println()是一个被重载的方法。

1.3 方法递归调用(了解)

方法的递归调用指的是一个方法自己调用自己的形式。一般如果要进行方法的递归操作往往都具备以下特点:

  • 方法必须有一个递归的结束条件
  • 方法在每次递归处理的时候一定要做出一些变更

范例:实现一个1~100的累加操作

代码

public class Test{
  public static void main(String args[]){
       System.out.println(sum(100));

    }
  public static int sum (int num){
           if (num == 1){  // 结束条件
                return 1;
           }
        return num + sum (num - 1); // 作出变更
    }
} // 5050
  • 代码分析(红字倒序看):
    • 【main()调用】第1次执行sum()方法:return 100 + sum(100-1) 返回100+99 + 98 + ··· +2 + 1
    • 【sum()递归】第2次执行sum()方法:return 99 +sum(99-1) 返回99 + 98 + ··· +2 + 1
    • ……
    • 【sum()递归】第99次执行sum()方法:return 2 +sum(2-1) 返回2 + 1
    • 【sum()递归】第100次执行sum()方法:return 1 返回1

范例:实现60!(这个结果太大了,应该使用double

代码

public class Test{
  public static void main(String args[]){
       System.out.println(fac(60.0));

    }
  public static double fac (double num){
           if (num == 1){  // 结束条件
                return 1;
           }
        return num * fac(num - 1); // 作出变更
    }
} // 8.320987112741392E81

可以发现,使用while循环的操作大部分可以更换为递归,之所以使用递归,主要是一个方法可以执行的操作很多,而且结构要好。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值