JAVA 基础 -方法的使用

JAVA 基础 -方法的使用

一、什么是方法?

  1. 是能够模块化的组织代码(当代码规模比较复杂的时候)。

    2.做到代码被重复使用, 一份代码可以在多个位置使用。

  2. 让代码更好理解更简单。

  3. 直接调用现有方法开发, 不必重复造轮子。

    例如:之前写过的代码:计算1!+2!+3!+4!的值。

    public class Test {
        public static void main(String[] args) {
            int i = 1;
            int sum = 0;
            for (; i < 5; i++) {
                int num = 1;
                for (int j = 1; j <= i; j++) {
                    num*=j;
                }
                sum +=num;
            } System.out.println(sum);
        }
    }
    

    输出值:33

    但是,此时运用的是双循环,在更复杂的情况下,很容易让人混淆。

    此时调用方法,可以让我们的思路更加清晰。

    二、方法的定义以及语法

    1.基本语法

    //方法调用
    	public static 方法返回值 方法名称([参数类型]){
    		return 返回值;
    	}
    //方法调用
    	返回值变量 = 方法名称(实参);
    

    2.方法调用被执行时

    基本规则

    ​ 定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行.

    ​ 当方法被调用的时候, 会将实参赋值给形参.

    ​ 参数传递完毕后, 就会执行到方法体代码.

    ​ 当方法执行完毕之后(遇到 return 语句), 就执行完毕, 回到方法调用位置继续往下执行.

    示例:

    import java.util.Scanner;
    public class Factorial {
        public static void main(String[] args) {
            Scanner scanner =  new Scanner(System.in);
            int n = scanner.nextInt();
            int sum = 0;
            for (int i = 1; i <= n; i++) {
                int b = factor(i);
                sum+=b;
            }System.out.println("1至"+n+"阶乘和为:"+sum);
        }
        public static int factor(int num){
            int sum = 1;
            for (int i = 1; i <=num; i++) {
                sum*=i;
            } return sum;
        }
    }
    
ffffd297e4b0a0e640663cb6

3.实参与形参的关系

代码如下:

class Test {
 public static void main(String[] args) {
 int a = 10;
 int b = 20;
 swap(a, b);
 System.out.println("a = " + a + " b = " + b);
 }
 public static void swap(int x, int y) {
 int tmp = x;
 x = y;
 y = tmp;
 }
} 
运行结果:a = 10   b = 20

​ 此时对于方法swap的调用,我们只是将main函数中的a,b的值拿出来拷贝一份给方法调用中的形参,无论调用swap中的值怎样变换,main函数中的实参都不会变化的。

​ 我们调用的方法,其形参存储在”栈“中,调用完毕后其数据就自动销毁。

​ 那么要实现参数的互换,我们应该用引用类型参数来实现。(定义数组实现)

代码如下:

class Test {
 public static void main(String[] args) {
 int[] arr = {10, 20};
 swap(arr);
 System.out.println("a = " + arr[0] + " b = " + arr[1]);
 }
 public static void swap(int[] arr) {
 int tmp = arr[0];
 arr[0] = arr[1];
 arr[1] = tmp;
 }
} 
  运行结果:a = 20   b = 10

三、方法的重载

1.方法重载的定义

​ 在同一个”类“中,定义了若干个方法名称相同,参数数列表不同的一组方法,与返回值无关。

public class HomeWork4 {public static int Big (int a,int b){
        int max;
        max = Math.max(a,b);
        return max;
    }
    public static double Big (double a,double b){
        double max;
        max = Math.max(a,b);
        return max;
    }
    public static  double Big(double a,double b,int c){
        double max;
        if(a>b && a>c){
           max = a;
        }else if (b>a && b>c){
            max = b;
        }else {
            max = c;
        }return max;
    }
    public static void main(String[] args) {
           double a = 15.0;
           double b = 20.0;
           int c = 5;
           double d = Big(a,b,c);
        System.out.println(d);
    }
}
运行结果:20.0

​ 上述代码要求不仅可以求两个整数的最大值,还可以求两个小数的最大值,以及两个小数和一个整数的大小关系。

​ 此时我们调用了多个方法,方法名称一样,只是参数列表不同,进行方法重载。

注意:上述返回值都是max(return max)是可以方法重载的,但是如果返回值不同,不能构成重载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值