前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java方法的基本用法

Java方法的基本用法

作者头像
鲜于言悠
发布2024-05-24 11:14:42
560
发布2024-05-24 11:14:42
举报
文章被收录于专栏:c/c++的学习笔记

前言

推荐一个网站给想要了解或者学习人工智能知识的读者,这个网站里内容讲解通俗易懂且风趣幽默,对我帮助很大。我想与大家分享这个宝藏网站,请点击下方链接查看。 https://www.captainbed.cn/f1

Java方法的基本用法包括定义方法(指定方法名、返回类型、参数列表和方法体),调用方法(通过方法名及参数列表调用),以及传递参数(按值传递基本数据类型,按引用传递对象)。


一、什么是方法

方法就是一个代码片段. 类似于 C 语言中的 “函数”.

Java方法是Java语言中用于执行特定任务的一段代码。它是程序的基本构建块之一,常用于组织和封装可重复使用的功能。方法可以接受输入参数,并返回一个值,也可以不接受参数或返回值。在调用方法时,需要提供所需的参数,并根据方法的定义来处理和返回结果。通过使用方法,可以提高代码的可读性、可维护性和重用性。在Java中,每个方法都属于一个类或对象,并且可以在其他方法中调用。方法的语法如下:

代码语言:javascript
复制
修饰符 返回类型 方法名(参数列表) {
    // 方法体
    // 执行特定任务的代码
    return 返回值; // 如果方法有返回值的话
}

方法存在的意义

  1. 是能够模块化的组织代码(当代码规模比较复杂的时候).
  2. 做到代码被重复使用, 一份代码可以在多个位置使用.
  3. 让代码更好理解更简单.
  4. 直接调用现有方法开发, 不必重复造轮子

示例

计算 1! + 2! + 3! + 4! + 5!

代码语言:javascript
复制
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);
}

这段代码的作用是计算1! + 2! + 3! + 4! + 5! 的值,并打印出结果。

在程序运行过程中,使用嵌套的两个for循环来计算每个阶乘。外层的for循环从1遍历到5,表示计算1!到5!的值。内层的for循环从1遍历到当前的外层循环变量i的值,表示计算每个数字的阶乘。

在内层循环中,创建一个临时变量tmp,并将其初始化为1。内层循环每次迭代都将tmp乘以当前的j值,从而计算阶乘值。最后,将每个阶乘值加到外层循环的变量sum中。

最后,通过System.out.println()语句打印出计算结果。

这个代码中使用双重循环, 比较容易写错

二、方法定义语法

基本语法

代码语言:javascript
复制
// 方法定义
public static 方法返回值 方法名称([参数类型 形参 ...]){
	方法体代码;
 	[return 返回值];
 }
 // 方法调用
返回值变量 = 方法名称(实参...);

代码示例

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

代码语言:javascript
复制
class Test {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        // 方法的调用
        int ret = add(a, b);
        System.out.println("ret = " + ret);
    }
    // 方法的定义
    public static int add(int x, int y) {
        return x + y;
    }
}

注意事项

  1. publicstatic 两个关键字在此处具有特定含义, 我们暂时不讨论, 后面文章会详细介绍.
  2. 方法定义时, 参数可以没有. 每个参数要指定类型
  3. 方法定义时, 返回值也可以没有, 如果没有返回值, 则返回值类型应写成 void
  4. 方法定义时的参数称为 “形参”, 方法调用时的参数称为 “实参”.
  5. 方法的定义必须在类之中, 代码书写在调用位置的上方或者下方均可.
  6. Java 中没有 “函数声明” 这样的概念

三、方法调用的执行过程

基本规则

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

代码示例

计算两个整数相加
代码语言:javascript
复制
class Main {
    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("调用方法中 x = " + x + " y = " + y);
        return x + y;
    }
}
计算 1! + 2! + 3! + 4! + 5!
代码语言:javascript
复制
class Main {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 5; i++) {
            sum += factor(i);
        }
        System.out.println("sum = " + sum);
    }
    public static int factor(int n) {
        System.out.println("计算 n 的阶乘中! n = " + n);
        int result = 1;
        for (int i = 1; i <= n; i++) {
            result *= i;
        }
        return result;
    }
}

使用方法, 避免使用二重循环, 让代码更简单清晰.

四、实参和形参的关系

代码示例

交换两个整型变量
代码语言:javascript
复制
class Main {
    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;
    }
}
原因分析

刚才的代码, 没有完成数据的交换.

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

代码语言:javascript
复制
int a = 10;
int b = 20;
int x = a;
int y = b;
int tmp = x;
x = y;
y = tmp;

可以看到, 对 xy 的修改, 不影响 ab.

解决办法

传引用类型参数 (例如数组来解决这个问题)

关于数组我会在后面文章进行讲解

代码语言:javascript
复制
class Main {
    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;
    }
}

五、没有返回值的方法

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

代码示例

代码语言:javascript
复制
class Main {
    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);
    }
}

另外, 如刚才的交换两个整数的方法, 就是没有返回值的.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、什么是方法
    • 方法存在的意义
      • 示例
      • 二、方法定义语法
        • 基本语法
          • 代码示例
            • 注意事项
            • 三、方法调用的执行过程
              • 基本规则
                • 代码示例
                  • 计算两个整数相加
                  • 计算 1! + 2! + 3! + 4! + 5!
              • 四、实参和形参的关系
                • 代码示例
                  • 交换两个整型变量
              • 五、没有返回值的方法
                • 代码示例
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档