当前位置: 首页 > news >正文

JavaSE核心知识点02面向对象编程02-05(方法)

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关

  • 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息

文章目录

    • JavaSE核心知识点02面向对象编程02-05(方法)
      • **一、方法是什么?**
      • **二、方法的组成**
      • **三、如何定义方法?**
        • **1. 无参数、无返回值的方法**
        • **2. 带参数、有返回值的方法**
        • **3. 多个参数的方法**
      • **四、如何调用方法?**
        • **1. 调用静态方法(`static`修饰)**
        • **2. 调用非静态方法(需要对象实例)**
      • **五、方法的重载(Overload)**
      • **六、递归方法(Recursion)**
      • **七、常见问题解答**
        • **1. 方法是否需要返回值?**
        • **2. 参数传递是“值传递”还是“引用传递”?**
        • **3. 静态方法 vs 非静态方法?**
      • **八、总结与练习**


📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。

JavaSE核心知识点02面向对象编程02-05(方法)

好的!作为 Java 初学者,理解**方法(Method)**是掌握编程的关键一步。方法是 Java 中封装代码逻辑的基本单元,类似于生活中的“工具”或“功能”。下面我会用通俗易懂的方式详细讲解,并附上代码示例。


一、方法是什么?

  • 定义:方法是一段有名字的代码块,用于完成特定任务(如计算、数据处理等)。
  • 类比:假设榨汁机是一个方法,你放入水果(输入参数),它榨汁(执行代码),返回果汁(返回值)。
  • 核心作用复用代码(避免重复写相同逻辑)、模块化(分解复杂问题)。

二、方法的组成

一个方法由以下部分组成(逐步拆解):

// 示例:计算两数之和的方法
public static int add(int a, int b) {  // 方法头(声明)int sum = a + b;                  // 方法体(具体逻辑)return sum;                       // 返回值
}
  1. 修饰符(如 public static):

    • public:方法可以被其他类访问。
    • static:静态方法,可通过类名直接调用(无需创建对象)。
  2. 返回类型(如 int):

    • 方法执行后返回的数据类型(如 int, String, void 表示无返回值)。
  3. 方法名(如 add):

    • 遵循驼峰命名法(如 calculateSum, printMessage)。
  4. 参数列表(如 (int a, int b)):

    • 输入的数据,可以是零个或多个参数,用逗号分隔。
  5. 方法体{} 中的代码):

    • 实现具体功能的代码逻辑。
  6. 返回值(如 return sum):

    • 必须与声明的返回类型匹配,若返回类型是 void,则无需 return

三、如何定义方法?

1. 无参数、无返回值的方法
public static void sayHello() {System.out.println("Hello, Java!");
}
2. 带参数、有返回值的方法
// 检查是否为偶数
public static boolean isEven(int number) {return number % 2 == 0;
}
3. 多个参数的方法
// 计算三个数的最大值
public static int max(int a, int b, int c) {int maxValue = a;if (b > maxValue) maxValue = b;if (c > maxValue) maxValue = c;return maxValue;
}

四、如何调用方法?

1. 调用静态方法(static修饰)
public class Main {public static void main(String[] args) {// 直接通过类名调用静态方法int result = add(3, 5); // 调用示例中的 add 方法System.out.println(result); // 输出 8}public static int add(int a, int b) {return a + b;}
}
2. 调用非静态方法(需要对象实例)
public class Calculator {// 非静态方法public int multiply(int a, int b) {return a * b;}public static void main(String[] args) {// 1. 创建对象Calculator calc = new Calculator();// 2. 通过对象调用方法int product = calc.multiply(4, 5);System.out.println(product); // 输出 20}
}

五、方法的重载(Overload)

  • 定义:同一个类中,方法名相同,但参数列表不同(类型、数量、顺序)。
  • 作用:提供多种处理方式,简化调用。
public class OverloadDemo {// 重载 add 方法public static int add(int a, int b) {return a + b;}public static double add(double a, double b) {return a + b;}public static int add(int a, int b, int c) {return a + b + c;}public static void main(String[] args) {System.out.println(add(2, 3));       // 调用 int 版本System.out.println(add(2.5, 3.5));   // 调用 double 版本System.out.println(add(1, 2, 3));    // 调用三个参数的版本}
}

六、递归方法(Recursion)

  • 定义:方法内部调用自身。
  • 关键:必须有一个终止条件,否则会无限递归导致栈溢出。
// 计算 n 的阶乘(n!)
public static int factorial(int n) {if (n == 0 || n == 1) {return 1; // 终止条件} else {return n * factorial(n - 1); // 递归调用}
}public static void main(String[] args) {System.out.println(factorial(5)); // 输出 120(5! = 5×4×3×2×1)
}

七、常见问题解答

1. 方法是否需要返回值?
  • 如果方法需要返回结果,用 return 指定返回类型(如 int, String)。
  • 如果只是执行操作(如打印),返回类型设为 void
2. 参数传递是“值传递”还是“引用传递”?
  • Java 是值传递:方法内修改基本类型参数的值不会影响原始变量;对象类型参数传递的是对象引用的副本(修改对象属性会影响原对象)。
3. 静态方法 vs 非静态方法?
  • 静态方法:属于类,通过 类名.方法名() 调用。
  • 非静态方法:属于对象,需先创建对象再调用。

八、总结与练习

  • 核心要点
    • 方法是封装代码的工具。
    • 通过参数接收输入,通过返回值输出结果。
    • 学会方法重载和递归。
  • 练习
    1. 写一个方法,判断一个数是否为素数。
    2. 写一个方法,反转字符串(如输入 “hello”,返回 “olleh”)。
    3. 用递归实现斐波那契数列。

通过以上内容,你应该对 Java 方法有了全面的理解。如果遇到问题,可以随时问我!


📜文末寄语

  • 🟠关注我,获取更多内容。
  • 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
  • 🟢《全栈知识库》技术交流和分享社区,集结全栈各领域开发者,期待你的加入。
  • 🔵​加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
  • 🟣点击下方名片获取更多内容🍭🍭🍭👇

相关文章:

  • 《向上生长》读书笔记day5
  • Dockers部署oscarfonts/geoserver镜像的Geoserver
  • Ansible模块——从控制节点向目标主机复制文件!
  • 软考错题集
  • 使用互斥锁保护临界
  • (51单片机)LCD显示红外遥控相关数字(Delay延时函数)(LCD1602教程)(Int0和Timer0外部中断教程)(IR红外遥控模块教程)
  • Spring Cloud -3( 9000 字详解 Spring Cloud)
  • LVGL对象的盒子模型和样式
  • 大模型中的三角位置编码实现
  • WinCC V7.2到V8.0与S71200/1500系列连接通讯教程以及避坑点
  • C++学习之模板初阶学习
  • 数据治理框架在企业中的落地:从理念到实践
  • 第三章 Freertos智能小车遥控控制
  • 互联网大厂Java面试实录:Spring Boot与微服务架构在电商场景中的应用解析
  • 21.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--身份认证服务拆分规划
  • diy装机成功录
  • C++ learning day 02
  • day010-命令实战练习题
  • 第一个SpringBoot程序
  • 软考中级数据库备考-上午篇
  • 巴防空系统击落印度无人机,印称巴方违反停火协议
  • 高龄老人骨折后,生死可能就在家属一念之间
  • 中国海外发展:今年前4个月销售665.8亿元,花费305亿元拿地
  • 新城市志|上海再攻坚,营商环境没有最好只有更好
  • 经济日报刊文:品牌经营不能让情怀唱“独角戏”
  • 告别户口本!今天起婚姻登记实现全国通办