Java基础之方法
一.方法的定义1.1什么是方法在Java中采用万物皆对象的思想此时方法就是一种行为也是一种工具比如洗衣机有很多功能比如加洗衣液洗衣服甩干这些功能那么这些功能就是方法。1.2方法的定义修饰符 返回值类型 方法名称 (参数类型 形参) { 方法体代码; return 返回值 } //例子 public int name(int a , int b){ int c a b; return c; }二.方法的组成上面的一个例子中我们也看到了方法的重要部分为修饰符返回值类型和方法名称2.1修饰符2.1.1控制权限的修饰符2.1.1.1 public最大的访问范围可以在任何包任何类总被访问类一个java文件中最多能有一个public类且类名必须和文件名一致成员变量和方法可以被同一类同一包不同包非子类不同包子类 访问2.1.1.2 private最严格的访问修饰符成员变量仅限当前类内访问成员方法仅限类内部调用内部类仅限外部类内部使用使用修饰类成员变量public class Student { private String nmae; private int age;}成员变量是数据一般不希望被访问2.1.1.3 protect同一类中可以直接访问protected成员同一包中无论是不是子类均可以访问不同包子类如果一个类继承自包含protected成员的类子类和父类不在一个包中子类可以访问父类中的protected成员不同包的非子类无法访问无论是不是子类2.1.1.4 default当java中未显式调用任何访问修饰符时则会自动调用defaultdefault和protect的区别就是在不同包中protect可以访问子类而default不能同时要注意default在不加修饰符时会默认添加而不可以手动添加2.1.2 非访问修饰符2.1.2.1 static关键字静态变量 (类变量)静态变量属于类在类创建时就会分配内存而不是某个对象无论创建多少个对象静态变量在内存中都只有一份拷贝访问方式可以直接通过类进行调用也可以通过对象进行调用不过一般推荐通过类直接进行调用class Example { public static int count 0; // 静态变量 public Example() { count; // 每次创建对象时count的值加1 } public static void main(String[] args) { Example obj1 new Example(); Example obj2 new Example(); System.out.println(Example.count); // 输出2 } }静态方法 (类方法)静态方法同样属于类而不是类的实例。调用静态方法时不需要创建类的对象可以直接通过类名来调用静态方法只能访问静态成员静态变量和静态方法不能直接访问实例成员实例变量和实例方法这是因为它们的创建时机不同静态方法在类创建时就已经分配内存而实例成员 (实例变量和实例方法) 的创建时机是在对象创建之后就会导致可能静态方法调用实例成员时实例成员还没有进行创建class Example { private static int value 10; // 静态变量 public static int getValue() { // 静态方法 return value; } public static void main(String[] args) { int result Example.getValue(); // 直接通过类名调用静态方法 System.out.println(result); // 输出10 } }静态代码块静态代码块的作用是在类加载时执行一些初始化操作并且只会执行一次执行时机类加载时自动执行优先于实例代码块和构造函数使用场景用于初始化静态变量2.1.2.2 final 关键字final变量当final用于修饰变量时该变量一旦被赋值就不能再被修改final方法当final修饰一个方法时这个方法不能被重写但是可以进行继承和重载2.2 返回值类型返回值类型要进行严格的匹配方法返回值的类型必须和方法声明的返回值类型完全一样或者是该类型的子类针对引用类型在面对包装类和基本数据类型时可以进行自动装箱和自动拆箱public int getPrimitive() { return new Integer(10); // 正确自动拆箱 } public Integer getWrapper() { return 10; // 正确自动装箱 }void方法不能有返回值不过可以使用不带表达式的return语句来提前终止方法三. 参数传递3.1. 参数传递机制Java中的参数传递采用的机制是值传递3.1.1 内存区域划分堆主要用来存储数组以及创建好的实例对象栈主要用于存储局部变量、方法调用以及返回值等信息方法区用于存储类的结构信息类变量类方法static关键字修饰3.1.2 对于基本数据类型和引用数据类型对于基本数据类型由于java中采用值传递的机制而基本数据类型又存储在栈上为了方便会直接将基本数据类型的值的副本赋值一份给形参此时当方法使用结束后方法会释放内存此时形参不会传回实参不会发生改变对于引用数据类型Java同一采用值传递只不过当为引用数据类型时传递的是一份引用地址的副本此时只是改变了引用的指向而对象存储在堆中此时并没有被做任何修改例子下面的例子就可以说明基本数据类型的参数传递和引用数据类型参数传递的区别首先是值传递在modifyPrimitive这个方法中我们将传入的值修改为20但是返回后num的值仍然是10而在引用类型的参数传递中我们将名字Alice传入此时形参p和实参person都指向了Alice那么我们修改p的指向自然就修改了person的对象传回时为Bobclass ParameterPassingDemo { public static void main(String[] args) { // 基本数据类型参数传递 int num 10; System.out.println(基本类型传递前: num num); // 输出10 modifyPrimitive(num); System.out.println(基本类型传递后: num num); // 仍输出10值未改变 // 引用数据类型参数传递 Person person new Person(Alice); System.out.println(引用类型传递前: name person.getName()); // 输出Alice modifyReference(person); System.out.println(引用类型传递后: name person.getName()); // 输出Bob对象被修改 // 尝试修改引用指向 resetReference(person); System.out.println(尝试重置引用后: name person.getName()); // 仍输出Bob引用未被重置 } // 修改基本数据类型参数 public static void modifyPrimitive(int value) { value 20; // 修改的是副本不影响原始值 } // 修改引用数据类型参数 public static void modifyReference(Person p) { p.setName(Bob); // 通过引用副本修改对象内容 } // 尝试重置引用数据类型参数 public static void resetReference(Person p) { p new Person(Charlie); // 修改的是引用副本的指向不影响原始引用 } } class Person { private String name; public Person(String name) { this.name name; } public String getName() { return name; } public void setName(String name) { this.name name; }||上面三张图片详细的说明了这个过程四.方法的重载参数列表必须不同参数的数量类型或者顺序至少由一项不同class Example { public int add(int a, int b) { return a b; } // 两个int public int add(int a, int b, int c) { return a b c; } // 三个int public double add(double a, double b) { return a b; } // 两个double public double add(int a, double b) { return a b; } // intdouble public double add(double a, int b) { return a b; } // doubleint顺序不同 }方法名必须相同返回类型和访问修饰符可以不同但不能作为重载的依据

相关新闻

数据结构:累加的递归实现

数据结构:累加的递归实现

1.代码&#xff1a;#include <stdio.h>int addTo(int paraN) {int tempSum;printf("entering addTo(%d)\r\n", paraN);if (paraN < 0){printf(" return 0\r\n");return 0;}else{tempSum addTo(paraN - 1) paraN;printf(" return %d\r\n&qu…

2026/10/12 23:29:57 阅读更多 →
Minikube部署AWX:自动化运维与Kubernetes实践指南

Minikube部署AWX:自动化运维与Kubernetes实践指南

1. 项目概述AWX作为Ansible的官方Web UI和REST API工具&#xff0c;已经成为自动化运维领域的标配。而minikube作为本地Kubernetes开发环境&#xff0c;能让我们在个人电脑上快速搭建Kubernetes集群。将AWX部署到minikube上&#xff0c;既解决了生产环境前的测试验证需求&#…

2026/10/9 16:13:58 阅读更多 →
「架构重塑,运维焕新」——助力国联民生证券合并后的一体化运维体系与运维团队重构之路

「架构重塑,运维焕新」——助力国联民生证券合并后的一体化运维体系与运维团队重构之路

随着金融科技应用持续深入&#xff0c;证券行业的数字化转型正加速迈入深水区。 当云计算、微服务、容器技术成为基础设施的常态&#xff0c;运维对象从传统物理机向虚拟机、容器与多云资源不断延伸&#xff0c;运维规模与复杂度呈指数级增长&#xff0c;分散、人工的传统运维模…

2026/10/9 16:14:00 阅读更多 →

最新新闻

React Native鸿蒙适配实战:RN页面与鸿蒙提醒服务的系统能力桥接

React Native鸿蒙适配实战:RN页面与鸿蒙提醒服务的系统能力桥接

做鸿蒙适配做到第七个页面&#xff0c;CareTipsScreen算是我这轮项目里最头疼、也最有收获的一个。先说清楚它是什么&#xff1a;这是一款健康管理应用里的“每日护理建议”聚合页&#xff0c;用户每天打开应用&#xff0c;能看到系统按时间段推荐的护理建议&#xff0c;比如下…

2026/10/13 13:15:36 阅读更多 →
驱动工具收费怎么办?显卡驱动修复免费替代方案与卸载清理指南

驱动工具收费怎么办?显卡驱动修复免费替代方案与卸载清理指南

前两年我装完系统&#xff0c;第一件事就是找一款驱动管理工具&#xff0c;跑一遍自动检测&#xff0c;网卡、显卡、声卡一次性装齐&#xff0c;整个过程免费&#xff0c;体验也算顺畅。直到前两天&#xff0c;我打开这款老牌驱动工具的新版本&#xff0c;界面确实变干净了&…

2026/10/13 13:15:36 阅读更多 →
DeepSeek Harness:Agent框架的全插件化设计与可回放日志实践

DeepSeek Harness:Agent框架的全插件化设计与可回放日志实践

这两年做 Agent 工程化&#xff0c;我最大的感受是&#xff1a;光有一个能跑通 demo 的工作流远远不够&#xff0c;真正让人头疼的是框架耦合、排查困难、扩展两难。团队内部折腾了大半年&#xff0c;最终沉淀出一套叫 DeepSeek Harness 的 Agent 运行框架。名字里带 Harness&a…

2026/10/13 13:15:36 阅读更多 →
构建帧率无关的时钟可视化内核:requestAnimationFrame与时间流映射

构建帧率无关的时钟可视化内核:requestAnimationFrame与时间流映射

1. 项目概述&#xff1a;这不是一个普通时钟&#xff0c;而是一次视觉逻辑的重新校准“炫酷的时钟效果”——这五个字在前端开发、数字艺术、交互设计甚至新媒体运营的日常沟通中&#xff0c;出现频率远超表面看起来的那么简单。它从来不是指“把时间显示出来”&#xff0c;而是…

2026/10/13 13:15:36 阅读更多 →
免费搭建本地AI知识库:用Cherry Studio和开源模型实现私有文档智能检索

免费搭建本地AI知识库:用Cherry Studio和开源模型实现私有文档智能检索

最近整理资料时我一直在想一个问题&#xff1a;手头文档越堆越多&#xff0c;光是项目方案、会议纪要、行业报告、个人笔记就占了几个文件夹&#xff0c;想快速找出某个结论时经常得翻半天。后来我尝试把常用的云上AI助手当检索工具&#xff0c;但每次都要上传文档、担心隐私、…

2026/10/13 13:15:36 阅读更多 →
个人主页置顶帖与投稿汇总实操指南:打造内容导航体系

个人主页置顶帖与投稿汇总实操指南:打造内容导航体系

1. 先搞清楚&#xff1a;置顶帖和投稿汇总到底在解决什么问题1.1 置顶帖是主页的第一屏&#xff0c;也是你的数字名片我见过太多创作者陷入同一个困境&#xff1a;内容发了几百条&#xff0c;主页却像一个乱糟糟的仓库&#xff0c;新访客点进来根本不知道你擅长什么、写过哪些代…

2026/10/13 13:14:25 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目&#xff0c;我最大的感受是&#xff0c;大部分坑不是出在技术前沿&#xff0c;而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节&#xff0c;最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了&#xff0c;很难不碰到舵机控制这道坎。做智能小车要转方向&#xff0c;做机械臂要抬关节&#xff0c;做云台要偏航俯仰&#xff0c;背后都是同一个东西在干活&#xff1a;舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”&#xff1f;——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台&#xff1f;或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜&#xff1f;又或者&#xff0c;在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →