Skip to content

9.4 无参无返回值、有参有返回值方法

方法的分类

根据方法是否有参数和返回值,方法可以分为以下几类:

  1. 无参无返回值方法:不接收参数,也不返回值
  2. 无参有返回值方法:不接收参数,但返回值
  3. 有参无返回值方法:接收参数,但不返回值
  4. 有参有返回值方法:接收参数,也返回值

无参无返回值方法

无参无返回值方法是指不接收任何参数,也不返回任何值的方法。这类方法通常用于执行一些不需要输入和输出的操作,如打印信息、初始化操作等。

语法

java
[修饰符] void 方法名() {
    // 方法体
}

示例

java
public class NoParamNoReturnExample {
    public static void main(String[] args) {
        // 调用无参无返回值方法
        printHello();
        printSeparator();
        printWelcomeMessage();
    }
    
    // 无参无返回值方法
    public static void printHello() {
        System.out.println("Hello, World!");
    }
    
    public static void printSeparator() {
        System.out.println("-----------------");
    }
    
    public static void printWelcomeMessage() {
        System.out.println("Welcome to Java programming!");
    }
}

应用场景

  • 打印固定信息
  • 初始化操作
  • 清理资源
  • 显示菜单

无参有返回值方法

无参有返回值方法是指不接收任何参数,但返回一个值的方法。这类方法通常用于获取一些固定值或计算结果。

语法

java
[修饰符] 返回类型 方法名() {
    // 方法体
    return 返回值;
}

示例

java
public class NoParamWithReturnExample {
    public static void main(String[] args) {
        // 调用无参有返回值方法
        int randomNumber = getRandomNumber();
        System.out.println("Random number: " + randomNumber);
        
        String currentTime = getCurrentTime();
        System.out.println("Current time: " + currentTime);
        
        double pi = getPi();
        System.out.println("Value of pi: " + pi);
    }
    
    // 无参有返回值方法
    public static int getRandomNumber() {
        return (int) (Math.random() * 100);
    }
    
    public static String getCurrentTime() {
        return new Date().toString();
    }
    
    public static double getPi() {
        return Math.PI;
    }
}

应用场景

  • 获取随机数
  • 获取当前时间
  • 获取配置值
  • 计算固定值

有参无返回值方法

有参无返回值方法是指接收参数,但不返回值的方法。这类方法通常用于执行一些需要输入但不需要返回结果的操作,如打印格式化信息、修改对象状态等。

语法

java
[修饰符] void 方法名(参数列表) {
    // 方法体
}

示例

java
public class WithParamNoReturnExample {
    public static void main(String[] args) {
        // 调用有参无返回值方法
        printMessage("Hello, Java!");
        printNumber(42);
        printArray(new int[]{1, 2, 3, 4, 5});
    }
    
    // 有参无返回值方法
    public static void printMessage(String message) {
        System.out.println(message);
    }
    
    public static void printNumber(int number) {
        System.out.println("Number: " + number);
    }
    
    public static void printArray(int[] array) {
        System.out.print("Array: ");
        for (int element : array) {
            System.out.print(element + " ");
        }
        System.out.println();
    }
}

应用场景

  • 打印格式化信息
  • 修改对象状态
  • 记录日志
  • 显示用户信息

有参有返回值方法

有参有返回值方法是指接收参数,也返回一个值的方法。这类方法通常用于执行一些需要输入并返回结果的操作,如计算、转换等。

语法

java
[修饰符] 返回类型 方法名(参数列表) {
    // 方法体
    return 返回值;
}

示例

java
public class WithParamWithReturnExample {
    public static void main(String[] args) {
        // 调用有参有返回值方法
        int sum = add(5, 3);
        System.out.println("Sum: " + sum);
        
        double average = calculateAverage(new int[]{10, 20, 30, 40, 50});
        System.out.println("Average: " + average);
        
        String reversed = reverseString("Hello");
        System.out.println("Reversed: " + reversed);
    }
    
    // 有参有返回值方法
    public static int add(int a, int b) {
        return a + b;
    }
    
    public static double calculateAverage(int[] array) {
        int sum = 0;
        for (int number : array) {
            sum += number;
        }
        return (double) sum / array.length;
    }
    
    public static String reverseString(String str) {
        StringBuilder sb = new StringBuilder(str);
        return sb.reverse().toString();
    }
}

应用场景

  • 数学计算
  • 数据转换
  • 查找操作
  • 验证操作

示例:方法类型的综合应用

java
public class MethodTypesExample {
    public static void main(String[] args) {
        // 调用无参无返回值方法
        printHeader();
        
        // 调用无参有返回值方法
        int randomNumber = getRandomNumber();
        System.out.println("Random number: " + randomNumber);
        
        // 调用有参无返回值方法
        printNumberInfo(randomNumber);
        
        // 调用有参有返回值方法
        int doubledNumber = doubleNumber(randomNumber);
        System.out.println("Doubled number: " + doubledNumber);
        
        // 调用有参有返回值方法
        boolean isEven = isEvenNumber(doubledNumber);
        System.out.println("Is even: " + isEven);
        
        // 调用无参无返回值方法
        printFooter();
    }
    
    // 无参无返回值方法
    public static void printHeader() {
        System.out.println("=============================");
        System.out.println("Method Types Example");
        System.out.println("=============================");
    }
    
    public static void printFooter() {
        System.out.println("=============================");
        System.out.println("End of Example");
        System.out.println("=============================");
    }
    
    // 无参有返回值方法
    public static int getRandomNumber() {
        return (int) (Math.random() * 100);
    }
    
    // 有参无返回值方法
    public static void printNumberInfo(int number) {
        System.out.println("Number: " + number);
        System.out.println("Number squared: " + (number * number));
    }
    
    // 有参有返回值方法
    public static int doubleNumber(int number) {
        return number * 2;
    }
    
    public static boolean isEvenNumber(int number) {
        return number % 2 == 0;
    }
}

方法类型的选择

选择哪种类型的方法取决于具体的需求:

  1. 无参无返回值方法:当方法不需要输入和输出时使用
  2. 无参有返回值方法:当方法不需要输入但需要返回结果时使用
  3. 有参无返回值方法:当方法需要输入但不需要返回结果时使用
  4. 有参有返回值方法:当方法需要输入并返回结果时使用

常见问题

1. 方法类型选择错误

症状:方法无法满足需求,需要修改方法签名

解决方案:根据实际需求选择合适的方法类型

2. 缺少 return 语句

症状:编译错误:error: missing return statement

解决方案:确保有返回值的方法在所有执行路径上都有 return 语句

3. return 语句位置错误

症状:方法提前返回,后续代码不执行

解决方案:确保 return 语句放在适当的位置

4. 参数类型不匹配

症状:编译错误:error: incompatible types

解决方案:确保传递的参数类型与方法定义的参数类型一致

总结

根据方法是否有参数和返回值,方法可以分为四类:无参无返回值方法、无参有返回值方法、有参无返回值方法和有参有返回值方法。

选择哪种类型的方法取决于具体的需求:

  • 无参无返回值方法:用于执行不需要输入和输出的操作
  • 无参有返回值方法:用于获取不需要输入但需要返回结果的操作
  • 有参无返回值方法:用于执行需要输入但不需要返回结果的操作
  • 有参有返回值方法:用于执行需要输入并返回结果的操作

通过合理选择方法类型,可以使代码结构更清晰,提高代码的可维护性和可读性。

© 2026 编程马·菜鸟教程 版权所有