Day10 --【Java全栈】方法 (上)
1. 方法是什么在 Java 中方法是属于某个类或接口的、有名字的可执行代码块用来完成特定功能并可选择向调用者返回结果。它是 Java 中功能逻辑的最小复用单元是实现代码复用、行为抽象的核心手段。通俗理解方法就像厨房里的菜谱。菜谱有固定名字方法名、需要指定原料参数、有一步步的操作步骤方法体、最后产出一道菜返回值。把常用的烹饪步骤写成菜谱以后要做菜时直接喊菜谱名就行不用每次重新想怎么做。2. 为什么需要方法方法本质是软件工程「封装、复用、模块化」思想在代码中的落地主要解决 5 个核心问题消除重复代码相同逻辑只写一次多处可直接调用符合 DRYDont 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 调用底层系统库进口设备操作核心逻辑由底层机器实现⚠️ 重要注意default关键字仅用于接口中的默认方法不属于类方法的修饰符不要用在普通类中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;提前结束方法不能跟具体数值。芜湖~ 明天继续这几天在调整内容展示的风格睡不着就起来学习吧