【Java编程进阶】方法初识

简介: 方法是组合在一起来执行操作语句的集合`,将具有独立功能的代码块组织成为一个整体,使其具有特殊功能,并且能实现达到代码复用的效果。例如我们要在程序中多次判断一个数字是奇数还是偶数,这时,我们就可以将判断一个数的奇偶性的代码段封装成一个方法,后面再使用时只需要调用这个方法,大大提高了编程的效率和代码的复用性。

在这里插入图片描述

个人主页:橙子

推荐学习专栏:Java 编程进阶之路【从入门到精通】


1. Java 方法初识

方法是组合在一起来执行操作语句的集合,将具有独立功能的代码块组织成为一个整体,使其具有特殊功能,并且能实现达到代码复用的效果。

例如我们要在程序中多次判断一个数字是奇数还是偶数,这时,我们就可以将判断一个数的奇偶性的代码段封装成一个方法,后面再使用时只需要调用这个方法,大大提高了编程的效率和代码的复用性。

2. 方法的创建与使用

创建语法:

访问修饰符 返回值类型 方法名(参数列表){ 
        方法体 ;
}

示例:封装一个方法判断奇偶性

public class Test {
    public static void main(String[] args) {
        judgment(10);//结果:偶数
        int a = 11;
        judgment(a);//结果:奇数
    }

    //1.定义奇偶判断方法
    public static void judgment(int number) {
    //2.方法中使用if语句判断是奇数还是偶数

        if (number % 2 == 0) {
            System.out.println("偶数");
        } else {
            System.out.println("奇数");
        }
    }
}

3. 方法的分类

按照 Java 中方法是否带有返回值,是否带有参数,可以将方法分为四大类:

  1. 无参无返回值型
  2. 无参带返回值型
  3. 有参无返回值型
  4. 有参带返回值型

方法在使用前要先创建,创建完成之后可以在程序中调用,而不是直接运行。下面我们根据方法的不同分类分别来学习方法的使用。

3.1 无参无返回值

无参数无返回值的方法很好理解,例如封装一个方法打印 HelloWorld :

public class Test {
    public static void main(String[] args) {
        print();
    }
    public static void print( ) {
        System.out.println("HelloWorld");
    }
}

3.2 无参带返回值

我们经常会根据一个方法产出的结果,来去组织另一段代码逻辑,为了拿到这个方法产生的结果,就需要定义带有返回值的方法。

示例:封装一个方法打印 HelloWorld ,并且返回 boolean 值 true 。

public class Test {
    public static void main(String[] args) {
        boolean i= print();
        System.out.println(i);
    }
    public static boolean print( ) {
        System.out.println("HelloWorld");
        return true;
    }
}

3.3 有参无返回值

使用有参数的方法可以用同一个方法处理不同的数据。在使用有参数的方法时,必须说明参数的数据类型,否则程序报错,并且多个参数之间使用逗号分隔。

在定义有参数的方法时,要在方法中提前定义好变量,此时我们就可以在方法中使用这些变量,而在调用方法时,就是要给这些变量赋值。在定义方法时的参数叫做形参,而调用方法时的参数叫做实参。

示例:封装一个方法,计算两数之和并打印。

public class Test {
    public static void main(String[] args) {
        add(2,3);
    }
    public static void add(int a,int b) {
        int c=a+b;
        System.out.println("a+b="+(a+b));
    }
}

3.4 有参带返回值

用同一个方法处理不同的数据,且返回值用来处理另一段代码的逻辑。此时可以用有参数带返回值的方法来处理。

示例:封装一个方法,计算两数之和并返回,在主方法中打印结果。

public class Test {
    public static void main(String[] args) {
        int c = add(1, 2);
        System.out.println(c);
    }

    public static int add(int a, int b) {
        return a + b;
    }
}

4. 递归方法

递归 是一个十分重要的算法思想,使用递归可以解决实际生活中的很多问题,简单来说,递归就是一个方法直接或者间接的调用自己,从而将问题转化为本质相同但规模较小的子问题来解决。

在学习递归时,我们通常结合斐波那契数列问题一起理解其思想。

斐波那契数列,又称黄金分割数列,这个数列从第 3 项开始,每一项都等于前两项之和。在数学上,斐波那契数列以如下递推的方法定义:

在这里插入图片描述
使用递归方法实现:

public class Test {
    public static void main(String[] args) {
        System.out.println(fibonacci(50));
    }

    public static int fibonacci(int n) {

        if (n == 1 || n == 2) {             //特殊情况,分开讨论
            return 1;
        }
        if (n > 2) {
            return fibonacci(n - 1) + fibonacci(n - 2);     //递归调用
        }
        return -1;              //如果输入错误的n,一律返回-1
    }
}

我们使用一般的方法和递归算法进行对比:

public class Test {
    public static void main(String[] args) {
        System.out.println(fibonacci2(50));
    }

    public static long fibonacci2(int n) {
        if (n < 1) {
            return -1;
        }
        if (n == 1 || n == 2) {
            return 1;
        }

        long a = 1l, b = 1l, c = 0l;        //定义三个long类型整数
        for (int i = 0; i < n - 2; i++) {
            c = a + b;            //第3个数的值等于前两个数的和
            a = b;            //第2个数的值赋值给第1个数
            b = c;            //第3个数的值赋值给第2个数
        }
        return c;
    }
}

方法二我们用了 for 循环解决了斐波那契数列问题,此时,使用方法二的效率更高一点,运行时发现,当 n 的数值偏大时,使用递归算法程序明显花费更长的时间。

相信这里我们已经对递归算法有了理解,在后序的算法学习中,通过解决实际的问题,我们会对递归算法有更加深入的理解。现在学习递归的思想也可以加深对 Java 方法的理解。

5. 总结

本文浅谈了Java 方法,通过 Java 方法的分类学习了不同类型的方法的创建和使用。在学习 Javase 程序基础时,我们只需要了解方法的思想,后面在学习 Java 面向对象编程时,会进行深入的学习。


Java编程基础教程系列

【Java编程进阶】运算符与表达式

【Java编程进阶】Java数据类型详解

【Java编程进阶】流程控制结构详解

在这里插入图片描述

欢迎订阅学习Java编程进阶之路专栏专栏文章持续更新!

目录
相关文章
|
2月前
|
IDE Java 编译器
java编程最基础学习
Java入门需掌握:环境搭建、基础语法、面向对象、数组集合与异常处理。通过实践编写简单程序,逐步深入学习,打牢编程基础。
221 1
|
2月前
|
Java
如何在Java中进行多线程编程
Java多线程编程常用方式包括:继承Thread类、实现Runnable接口、Callable接口(可返回结果)及使用线程池。推荐线程池以提升性能,避免频繁创建线程。结合同步与通信机制,可有效管理并发任务。
157 6
|
3月前
|
SQL Java 数据库
2025 年 Java 从零基础小白到编程高手的详细学习路线攻略
2025年Java学习路线涵盖基础语法、面向对象、数据库、JavaWeb、Spring全家桶、分布式、云原生与高并发技术,结合实战项目与源码分析,助力零基础学员系统掌握Java开发技能,从入门到精通,全面提升竞争力,顺利进阶编程高手。
661 1
|
2月前
|
安全 前端开发 Java
从反射到方法句柄:深入探索Java动态编程的终极解决方案
从反射到方法句柄,Java 动态编程不断演进。方法句柄以强类型、低开销、易优化的特性,解决反射性能差、类型弱、安全性低等问题,结合 `invokedynamic` 成为支撑 Lambda 与动态语言的终极方案。
160 0
|
3月前
|
Java 开发者
Java并发编程:CountDownLatch实战解析
Java并发编程:CountDownLatch实战解析
451 100
|
2月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
249 18
|
2月前
|
Java 编译器 Go
【Java】(5)方法的概念、方法的调用、方法重载、构造方法的创建
Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用方法的优点使程序变得更简短而清晰。有利于程序维护。可以提高程序开发的效率。提高了代码的重用性。方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。这种就属于驼峰写法下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。
202 4
|
3月前
|
算法 安全 Java
除了类,Java中的接口和方法也可以使用泛型吗?
除了类,Java中的接口和方法也可以使用泛型吗?
148 11
|
2月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
308 5
|
3月前
|
Java 开发者
Java 函数式编程全解析:静态方法引用、实例方法引用、特定类型方法引用与构造器引用实战教程
本文介绍Java 8函数式编程中的四种方法引用:静态、实例、特定类型及构造器引用,通过简洁示例演示其用法,帮助开发者提升代码可读性与简洁性。