☰
Day10 --【Java全栈】方法 (上)
2026/10/22 2:06:33 网站建设 项目流程

1. 方法是什么?

在 Java 中,方法是属于某个类或接口的、有名字的可执行代码块,用来完成特定功能,并可选择向调用者返回结果。它是 Java 中功能逻辑的最小复用单元,是实现代码复用、行为抽象的核心手段。

💡通俗理解:

方法就像厨房里的菜谱。菜谱有固定名字(方法名)、需要指定原料(参数)、有一步步的操作步骤(方法体)、最后产出一道菜(返回值)。把常用的烹饪步骤写成菜谱,以后要做菜时直接喊菜谱名就行,不用每次重新想怎么做。


2. 为什么需要方法?

方法本质是软件工程「封装、复用、模块化」思想在代码中的落地,主要解决 5 个核心问题:

  • 消除重复代码:相同逻辑只写一次,多处可直接调用,符合 DRY(Don't Repeat Yourself)原则;

  • 行为封装隔离:调用者只需要关心方法“能做什么、需要传什么、返回什么”,不需要关心内部怎么实现,降低使用门槛;

  • 拆解复杂问题:把庞大复杂的业务逻辑拆成多个小方法,每个方法只做一件事,让代码结构清晰,易读易调试;

  • 便于独立测试:每个方法可以单独做单元测试,快速定位问题,不用跑完整程序;

  • 统一维护迭代:功能逻辑集中在一个方法里,后续修改优化只需改一处,避免多处修改遗漏、逻辑不一致。

💡通俗理解:

如果每次炒菜都临时想步骤,费时还容易出错。把“炒菜步骤”写成菜谱,以后直接按菜谱操作,清晰高效。菜谱还能分享给别人用,这就是复用。


3. 方法的完整语法

[访问修饰符] [非访问修饰符] 返回类型 方法名(参数类型1 参数名1, 参数类型2 参数名2, ...) [throws 异常类型] { // 方法体:具体执行的逻辑代码 [return 返回值;] }

3.1 修饰符

修饰符分为两类:访问修饰符(控制谁能调用这个方法,实现封装)和非访问修饰符(给方法附加特殊属性,适配不同场景)。

(1)访问修饰符(共 4 种)

修饰符

本类内部

同包其他类

不同包子类

不同包无关类

通俗理解

public

✅

✅

✅

✅

公开菜谱,任何人都能用

protected

✅

✅

✅

❌

内部菜谱,本店员工和加盟分店能用

不写(默认/包私有 package-private)

✅

✅

❌

❌

门店内部菜谱,只有同店员工能用

private

✅

❌

❌

❌

私家秘制菜谱,只有自己能用

(2)非访问修饰符(常用 5 种)

修饰符

核心作用

关键规则

通俗理解

static

静态方法,属于类本身

直接通过类名调用,不能直接访问实例成员,不能用this/super

速食菜谱,不需要有厨房就能做

final

最终方法,不能被子类重写

方法逻辑固定,不允许修改;构造方法不能用final修饰

官方标准菜谱,不能私自改配方

abstract

抽象方法,只有声明没有方法体

没有大括号,以分号结尾;必须定义在抽象类或接口中

菜品研发方案,只有要求没落地,得交给后厨落地

synchronized

同步方法,同一时间只能一个线程执行

实例方法锁当前this对象,静态方法锁类的Class对象

厨房唯一的烤箱,同一时间只能一个人用

native

本地方法,方法体由 C/C++ 等底层语言实现

没有 Java 代码的方法体,通过 JNI 调用底层系统库

进口设备操作,核心逻辑由底层机器实现

⚠️ 重要注意:

  1. default关键字仅用于接口中的默认方法,不属于类方法的修饰符,不要用在普通类中;

  2. abstract不能和private、static、final、native同时修饰一个方法,会直接编译报错(二者的核心逻辑冲突:抽象要求被子类重写,而这些修饰符都会禁止/破坏重写)。具体的抽象方法、重写..明天具体说说

3.2 返回类型

方法执行结束后返回给调用方的数据类型,分两种:

  • 有返回值:写具体的数据类型(基本类型、引用类型均可),方法内必须通过return返回对应类型的结果;

  • 无返回值:必须写关键字void,可以写return;提前结束执行,但不能返回具体数值。

💡通俗理解:

返回类型就是菜谱最后出锅的成果——可以是一道菜(int)、一碗汤(double),或者什么都不产出(void,比如只是打扫厨房)。

3.3 方法名

方法的唯一标识,遵循小驼峰命名(首字母小写,后续单词首字母大写,如getUserName),通常以动词开头,见名知意。

💡通俗理解:

方法名就是菜谱的标题,一看就知道是“做宫保鸡丁”还是“煮番茄蛋汤”。

3.4 参数列表

调用方法时需要传入的输入数据,写在小括号内,0 个或多个,多个用逗号分隔。

  • 形参:方法定义时的参数,相当于占位符,只有调用时才分配内存;

  • 实参:调用方法时实际传入的值/变量。

Java 中所有参数都是值传递,即传入的都是副本,不是原始数据本身。

💡通俗理解:

参数就是菜谱需要的原料(鸡蛋、面粉)。你把原料清单给帮厨,他按清单备料,改动的是备好的那份原料,不会动你仓库里的原始库存。

3.5 方法体

大括号{}包裹的代码块,是方法的具体执行逻辑,包含变量定义、运算、流程控制等语句,是方法的核心。

💡通俗理解:

方法体就是烹饪步骤本身——先倒油、再放菜、翻炒、调味……按顺序一步步执行。

3.6 异常声明

通过throws关键字声明方法执行过程中可能抛出的异常类型,把异常抛给调用方处理,多个异常用逗号分隔。

  • 规则:受检异常(Checked Exception)必须声明,运行时异常(RuntimeException)可声明也可不声明。

易混区分:

  • throws:写在方法声明处,用来声明方法可能抛出的异常类型;

  • throw:写在方法体内,用来手动抛出具体的异常对象。

💡通俗理解:

菜谱上标注“小心烫伤”“注意火候防止糊锅”,提前提醒你做菜时有风险,得做好应对准备,可以理解为目前遇到了一个困难但是自己解决不了或者不想解决,于是你就把问题抛给了你的领导或者要用你这个方法的同事,让他们解决问题。

3.7 return 语句

  • 有返回值的方法:return 返回值;会立即结束方法执行,并把结果返回给调用方;

  • void 方法:可写return;提前结束方法,不能跟具体数值。


芜湖~ 明天继续,这几天在调整内容展示的风格,睡不着就起来学习吧!


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询