【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编程进阶之路专栏专栏文章持续更新!

目录
相关文章
|
4天前
|
SQL Java 数据库
2025 年 Java 从零基础小白到编程高手的详细学习路线攻略
2025年Java学习路线涵盖基础语法、面向对象、数据库、JavaWeb、Spring全家桶、分布式、云原生与高并发技术,结合实战项目与源码分析,助力零基础学员系统掌握Java开发技能,从入门到精通,全面提升竞争力,顺利进阶编程高手。
94 1
|
1月前
|
安全 Java 数据库连接
2025 年最新 Java 学习路线图含实操指南助你高效入门 Java 编程掌握核心技能
2025年最新Java学习路线图,涵盖基础环境搭建、核心特性(如密封类、虚拟线程)、模块化开发、响应式编程、主流框架(Spring Boot 3、Spring Security 6)、数据库操作(JPA + Hibernate 6)及微服务实战,助你掌握企业级开发技能。
234 3
|
4天前
|
Java 开发者
Java并发编程:CountDownLatch实战解析
Java并发编程:CountDownLatch实战解析
|
21天前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
53 16
|
15天前
|
NoSQL Java 关系型数据库
超全 Java 学习路线,帮你系统掌握编程的超详细 Java 学习路线
本文为超全Java学习路线,涵盖基础语法、面向对象编程、数据结构与算法、多线程、JVM原理、主流框架(如Spring Boot)、数据库(MySQL、Redis)及项目实战等内容,助力从零基础到企业级开发高手的进阶之路。
103 1
|
1月前
|
安全 算法 Java
Java泛型编程:类型安全与擦除机制
Java泛型详解:从基础语法到类型擦除机制,深入解析通配符与PECS原则,探讨运行时类型获取技巧及最佳实践,助你掌握泛型精髓,写出更安全、灵活的代码。
|
30天前
|
安全 Java Shell
Java模块化编程(JPMS)简介与实践
本文全面解析Java 9模块化系统(JPMS),帮助开发者解决JAR地狱、类路径冲突等常见问题,提升代码的封装性、性能与可维护性。内容涵盖模块化核心概念、module-info语法、模块声明、实战迁移、多模块项目构建、高级特性及最佳实践,同时提供常见问题和面试高频题解析,助你掌握Java模块化编程精髓,打造更健壮的应用。
|
1月前
|
Java
Java编程:理解while循环的使用
总结而言, 使用 while 迴圈可以有效解决需要多次重复操作直至特定條件被触发才停止執行任务场景下问题; 它简单、灵活、易于实现各种逻辑控制需求但同时也要注意防止因邏各错误导致無限迁璇発生及及時處理可能発生异常以确保程序稳定运作。
185 0
|
1月前
|
安全 Cloud Native Java
Java:历久弥新的企业级编程基石
Java:历久弥新的企业级编程基石
|
1月前
|
移动开发 Cloud Native Java
Java:历久弥新的企业级编程基石
Java:历久弥新的企业级编程基石