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

Java基础——方法 - 详解

一、方法

1.1 什么是方法

定义:

方法(Method) 是一段可重复执行的代码块,用于实现特定功能或行为。它是 Java 程序中组织逻辑、提高复用性和模块化的重要手段。

类比:

  • 就像厨房里的“菜谱”,每道菜对应一个方法;
  • 调用方法就像“做菜”,传入食材(参数),得到成品(返回值)。

 核心作用:

  • 封装功能:将复杂逻辑隐藏起来;
  • 提高复用性:避免重复写相同代码;
  • 增强可读性:通过方法名表达意图;
  • 支持参数传递与返回结果

1.2 最简单的方法定义和调用

[修饰符] 返回值类型 方法名([参数列表]) {// 方法体:执行的具体代码[return 返回值;]
}

1.2.1 最简单的方法定义和调用

方法名要遵守骆驼峰命名法

1.2.2 带参数的方法定义和调用

1.2.3 带返回值的方法定义和调用

1.3 方法的注意事项

  • 方法必须定义在类内部;
  • 如果方法没有返回值,不能写 return 表达式(但可以写 return; 提前退出);
  • 参数是形式参数(形参),实际调用时传入的是实际参数(实参)。

1.4 方法的重载

定义:

方法重载是指在一个类中可以定义多个同名但参数不同的方法。Java 会根据调用时的参数类型和个数自动选择合适的方法。

✅ 重载规则:

  • 方法名必须相同;
  • 参数列表必须不同(类型、个数、顺序至少有一个不同);
  • 返回值类型不影响重载判断
  • 访问修饰符和异常声明不影响重载。

public class MathUtils {// 重载1:两个整数相加public int add(int a, int b) {return a + b;}// 重载2:两个浮点数相加public double add(double a, double b) {return a + b;}// 重载3:三个整数相加public int add(int a, int b, int c) {return a + b + c;}// 重载4:字符串拼接public String add(String a, String b) {return a + b;}
}

❌ 错误示例(不构成重载):

// ❌ 错误:参数相同,只有返回值不同
public int add(int a, int b) { ... }
public double add(int a, int b) { ... } // 编译错误!
// ❌ 错误:参数类型相同,顺序不同(但 Java 不区分顺序)
public int add(int a, double b) { ... }
public int add(double a, int b) { ... } // 编译错误!

✅ 重载优势:

  • 提高代码灵活性;
  • 同一功能支持多种输入方式;
  • 更符合自然语言习惯(如 add(1,2) 和 add("a","b"))。

1.5 方法的内存

执行流程:
  1. 调用方法时,创建一个新的栈帧(Stack Frame)
  2. 栈帧包含
    • 方法参数;
    • 局部变量;
    • 返回地址;
    • 操作数栈(用于执行指令);
  3. 方法执行完毕后,栈帧被销毁,返回值传递给调用者。

进栈区出栈区:

✅ 关键点:

  • 每次方法调用都会在栈上压入一个新栈帧
  • 方法执行完后,栈帧弹出,局部变量消失;
  • 基本类型参数是值传递,引用类型是引用传递(即传递对象引用)。

参数传递机制

✅ 值传递(Pass by Value)
  • 基本数据类型(如 intdouble):传递的是值的拷贝
  • 修改不会影响原变量。
public void changeValue(int x) {x = 100;
}
int num = 5;
changeValue(num);
System.out.println(num); // 输出:5(未改变)

✅ 引用传递(Pass by Reference)
  • 对象引用类型(如 StringArrayObject):传递的是引用的拷贝
  • 可以修改对象内容,但不能改变引用本身。
public void modifyArray(int[] arr) {arr[0] = 999; // 修改数组内容arr = new int[]{1, 2}; // 改变引用指向(不影响外部)
}
int[] data = {1, 2, 3};
modifyArray(data);
System.out.println(data[0]); // 输出:999(内容被改)

✅ 总结:
Java 中所有参数都是“值传递”,但对象类型传递的是“引用的值”,因此可以修改对象内部状态。



*1.6 区分基本/引用数据

1.6.1 基本数据类型

由 Java 语言内置支持的简单数据类型,直接存储实际的值,不包含方法(但可通过包装类扩展功能)。

共 8 种,分为 4 类:

类别数据类型占用内存取值范围默认值
整数型byte1 字节-128 ~ 1270
short2 字节-32,768 ~ 32,7670
int4 字节-2³¹ ~ 2³¹-10
long8 字节-2⁶³ ~ 2⁶³-10L
浮点型float4 字节约 ±3.4×10³⁸(6~7位有效数字)0.0f
double8 字节约 ±1.7×10³⁰⁸(15位有效数字)0.0
字符型char2 字节\u0000 ~ \uffff(0 ~ 65535)'\u0000'
布尔型boolean不固定(JVM决定)true / falsefalse

1.6.2 引用数据类型

用于引用(指向)对象的数据类型。变量本身不存储对象内容,而是存储对象在堆内存中的地址(引用)

包括以下几类:

  1. 类(Class):如 StringScanner, 自定义类等;
  2. 接口(Interface):如 ListRunnable
  3. 数组(Array):如 int[]String[]
  4. 枚举(Enum)
  5. 包装类(Wrapper Classes):如 IntegerDouble(用于基本类型的对象表示)。

课程学习来源于-B站@itheima!

http://www.jsqmd.com/news/72882/

相关文章:

  • 2025年12月珠宝热熔胶点胶机,烫钻点胶机,水钻热熔胶点胶机厂家测评:精准控胶品牌优选​ - 品牌鉴赏师
  • 【 Java八股文面试 | Redis篇 缓存疑问、持久化、分布式锁 】
  • B站学习视频
  • 2025年12月上海新中式装修,上海简约装修,上海中古风装修公司推荐:闭口合同+实景案例解析!​ - 品牌鉴赏师
  • 采用Deployment Center 安装TeamCenter 2506 于Windows Server 2022 桌面体验版(2/4)
  • yungifez Skuul学校管理系统存在SVG文件导致的XSS漏洞
  • yungifez Skuul学校管理系统存在SVG文件导致的XSS漏洞
  • 麦角硫因品牌权威评测:TOP10科学抗衰方案深度解析 - 资讯焦点
  • 2025年12月上海老房翻新,上海老破小改造翻新,上海美式风老房翻新公司推荐:资质案例售后全解析​ - 品牌鉴赏师
  • 2025气模厂家标杆榜:气模/滑梯/水上乐园/城堡/游乐场/运动/嘉年华/美陈/帐篷/设计综合指南,广州丽丽玩具以25年匠心,让欢乐气模风靡全球 - 海棠依旧大
  • 北京十佳婚姻家事律师事务所服务特点及专业领域概述 - 品牌排行榜
  • 2025水上游乐设备厂家推荐榜:水上/闯关/城堡/游乐场、支架泳池、充气玩具、智能充气系统、户外游乐、游乐/夹网布/文旅/气模,广州丽丽玩具以安全与创新引领潮流 - 海棠依旧大
  • 使用 BR 备份 TiDB 到 AWS S3 存储 - 教程
  • 2025年12月通风管,耐高温通风管,pvc通风管厂家推荐:行业权威盘点与品质红榜发布​ - 品牌鉴赏师
  • 2025恒流灯带驱动芯片哪家好?优质厂家盘点测评 - 栗子测评
  • 聚焦2025服务器电源连接器厂家推荐:解锁服务器连接器厂家推 - 栗子测评
  • 2025年12月徐州模型生产/工程机械模型/起重机模型公司推荐top5 - 2025年11月品牌推荐榜
  • 202. 快乐数
  • 2025年12月Agent智能体,智能体数据生成,智能体智算中心厂商推荐,算力与落地能力红榜发布!​ - 品牌鉴赏师
  • 2025年12月贴敷式与便携式二合一胰岛素泵,全年龄段贴敷泵胰岛素泵,无异物感胰岛素泵厂家推荐​ - 品牌鉴赏师
  • 2025年下半年江苏新沂PC砖、路沿石、透水砖、条纹砖、树池厂家选择指南:五大优质供应商推荐 - 2025年11月品牌推荐榜
  • 2025年12月佛山门窗源头厂家推荐:铝合金门窗,系统门窗,断桥铝门窗,别墅门窗,静音门窗,耐用门窗,封阳台门窗,推拉门窗厂家实力解读与选购指南 - 海棠依旧大
  • 2025残卫报警器厂家推荐:纠结残卫报警器哪家好,看这篇 - 栗子测评
  • 2025污水处理药剂厂家哪家好?污水处理药剂厂家测评榜单 - 栗子测评
  • 2025年12月可折叠变径送风软管,机场送风软管,pvc送风软管厂家推荐:行业权威盘点与品质红榜发布​ - 品牌鉴赏师
  • 自动切纸机厂家哪家强?国内实力厂商技术对比 - 品牌排行榜
  • paramiko模块介绍
  • 弹簧机厂家哪家好?2025高性能自动弹簧机厂商实力榜单 - 栗子测评
  • 2025CRPS电源连接器厂家推荐:精准选型,赋能高效供电系 - 栗子测评
  • 2025年光谱仪推荐!国产光纤光谱仪/荧光光谱仪/显微拉曼光谱仪十大品牌厂家盘点! - 品牌推荐大师