⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Java 方法

学习方法定义与调用 · 难度:入门 · +10XP

Java 方法详解

方法(在某些语言中也叫函数)是 Java 中组织和复用代码的基本单元。一个方法本质上是一个带有名称的代码块,它接收输入(参数),执行特定逻辑,并可能返回一个结果。把复杂的程序分解为多个小方法,可以让代码结构更清晰,更容易测试和维护。

方法的定义与调用

Java 方法的完整定义包含访问修饰符返回类型方法名参数列表方法体。方法名采用驼峰命名法(小写开头),应该是一个动词或动词短语,清晰描述该方法做什么。

public class Calculator {

// 有返回值的方法 public static int add(int a, int b) { return a + b; }

// 无返回值的方法 public static void printGreeting(String name) { System.out.println("您好," + name + "!"); }

// 无参数的方法 public static double getPi() { return 3.14159; }

public static void main(String[] args) { int sum = add(10, 20); // 调用有返回值的方法 System.out.println("和:" + sum); // 30

printGreeting("小明"); // 调用 void 方法

double pi = getPi(); // 调用无参数方法 System.out.println("PI: " + pi); } }

方法重载(Overloading)

特性说明示例
参数数量不同同名方法,参数个数不同add(int a, int b) vs add(int a, int b, int c)
参数类型不同同名方法,参数类型不同add(int a, int b) vs add(double a, double b)
参数顺序不同同名方法,参数类型顺序不同print(int a, String s) vs print(String s, int a)
返回类型不同仅返回类型不同不算重载int getData()double getData() 不能同时存在
public class OverloadDemo {
    // 重载:参数数量不同
    public static int multiply(int a, int b) {
        return a * b;
    }

public static int multiply(int a, int b, int c) { return a * b * c; }

// 重载:参数类型不同 public static double multiply(double a, double b) { return a * b; }

public static void main(String[] args) { System.out.println(multiply(2, 3)); // 6 System.out.println(multiply(2, 3, 4)); // 24 System.out.println(multiply(2.5, 3.0)); // 7.5 } }

递归方法

递归是指方法调用自身来解决问题。递归需要两个关键要素:基准条件(停止递归)和递归条件(继续调用自身)。递归非常适合解决树形结构遍历、分治算法等问题,但不恰当使用可能导致栈溢出(StackOverflowError)。

// 递归计算阶乘
public static long factorial(int n) {
    if (n <= 1) {       // 基准条件
        return 1;
    }
    return n * factorial(n - 1);  // 递归条件
}

// 递归计算斐波那契数(注意:此方法效率低,仅作演示) public static long fibonacci(int n) { if (n <= 1) return n; return fibonacci(n - 1) + fibonacci(n - 2); }

  1. 创建一个类,包含 max(int a, int b)max(int a, int b, int c)max(double a, double b) 三个重载方法,选出最大值
  2. 编写方法接收一个整数数组,返回数组的平均值,在 main 中测试
  3. 用递归方法实现字符串反转(例如 "hello" -> "olleh")
  4. 编写方法 isPrime(int n) 判断一个数是否为质数
  5. 将之前练习中的数组排序、查找等逻辑封装成工具类,所有方法都用 public static 修饰
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 133 篇
0 完成
🔥 0