栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

方法的基本用法

Java 更新时间:发布时间: 百科书网 趣学号

1.什么是方法?方法的意义?

1.做到代码被重复使用, 一份代码可以在多个位置使用。
2.配合注释让代码更好理解更简单

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

回忆一个之前写过的代码: 计算 1! + 2! + 3! + 4! + 5!
 

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

这个代码中使用双重循环, 比较容易写错.接下来我们可以使用方法来优化这个代码

public static void main(String[] args) {
    int sum = 0;
    for (int i = 1; i <= 5; i++) {
        sum += factor(i);
    }
    System.out.println("sum = " + sum);
}

//计算n的阶乘
public static int factor(int n) {
    int ret = 1;
    for (int i = 1; i <= n; i++) {
        ret *= i;
    }
    return ret;
}

2.方法定义语句

基本语法
 

// 方法定义
public static 方法返回值 方法名称([参数类型 形参 ...]){
        方法体代码;
        [return 返回值];
}


// 方法调用
返回值变量 = 方法名称(实参...);

实现一个方法实现两个整数相加

public static void main(String[] args) {
    int a = 10;
    int b = 20;

    int ret = add(a,b);
    System.out.println("ret = "+ret);
}

private static int add(int x, int y) {
    return x + y;
}

注意:

1. 方法定义时, 参数可以没有. 每个参数要指定类型
2. 方法定义时, 返回值也可以没有, 如果没有返回值, 则返回值类型应写成 void
3. 方法定义时的参数称为 "形参", 方法调用时的参数称为 "实参".
4. 方法的定义必须在类之中, 代码书写在调用位置的上方或者下方均可.

3.方法调用的执行过程

基本规则:

定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行.
当方法被调用的时候, 会将实参赋值给形参.
参数传递完毕后, 就会执行到方法体代码.
当方法执行完毕之后(遇到 return 语句), 就执行完毕, 回到方法调用位置继续往下执行
一个方法可以被多次调用.
 

示例:

计算两个整数相加

public static void main(String[] args) {
    int a = 10;
    int b = 20;

    System.out.println("第一次调用方法之前");
    int ret = add(a, b);
    System.out.println("第一次调用方法之后");
    System.out.println("ret = " + ret);

    System.out.println("第二次调用方法之前");
    ret = add(30, 50);
    System.out.println("第二次调用方法之后");
    System.out.println("ret = " + ret);
}

public static int add(int x, int y) {
    System.out.println("调用方法中!");
    return x + y;
}

4.实参和形参的关系

先说一下形参和实参的概念:

1.形参:

就是形式参数,用于定义方法的时候使用的参数,是用来接收调用者传递的参数的。

形参只有在方法被调用的时候,虚拟机才会分配内存单元,在方法调用结束之后便会释放所分配的内存单元。

因此,形参只在方法内部有效,所以针对引用对象的改动也无法影响到方法外。


2.实参:

就是实际参数,用于调用时传递给方法的参数。

实参在传递给别的方法之前是要被预先赋值的。


注意:
在值传递调用过程中,只能把实参传递给形参,而不能把形参的值反向作用到实参上。

在函数调用过程中,形参的值发生改变,而实参的值不会发生改变。


而在引用传递调用的机制中,实际上是将实参引用的地址传递给了形参,所以任何发生在形参上的改变也会发生在实参变量上。

交换俩个整形变量

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

//代码, 没有完成数据的交换

对于基础类型来说, 形参相当于实参的拷贝. 即 传值调用

如果要交换基本类型的数据,需转换成数组,进行交换。

public static void main(String[] args) {
    int[] array = {10, 20};
    System.out.println("转换之前:");
    System.out.println(array[0] + " " + array[1]);

    swap(array);
    
    System.out.println("转换之前后:");
    System.out.println(array[0] + " " + array[1]);
}

public static void swap(int[] array) {
    int tmp = array[0];
    array[0] = array[1];
    array[1] = tmp;

    return;
}

//运行结果

转换之前:
10 20
转换之前后:
20 10

5.没有返回值的方法

方法的返回值是可选的. 有些时候可以没有的.

代码示例:

    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        print(a, b);
    }

    public static void print(int x, int y) {
        System.out.println("x = " + x + " y = " + y);
    }

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/1050347.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号