在Java里如何定义和调用方法_Java方法基础语法说明
发布时间 - 2026-01-29 00:00:00 点击率:次Java方法定义必须包含返回类型、方法名、参数列表(含空括号)和方法体,调用时需按static或实例方式正确引用,参数为值传递,重载仅依据参数列表区分。
Java里定义方法必须明确返回类型、方法名、参数列表和方法体,调用时需确保对象实例存在(非static方法)或类名可访问(static方法),否则编译直接报错。
方法定义的四个必要组成部分
一个合法的Java方法声明必须包含:返回类型、方法名、圆括号()(含参数声明)、花括号{}包裹的方法体。缺一不可,哪怕返回类型是void也不能省略。
-
public static void main(String[] args)是最典型的完整写法,其中public是访问修饰符,static决定是否依赖实例 - 参数列表为空时仍要保留
(),写成myMethod(),不能写成myMethod - 如果方法有返回值,方法体内必须有
return语句,且返回值类型必须与声明的返回类型一致(或可自动转型) - 方法名遵循驼峰命名,不能是Java关键字,如
class、if等
调用实例方法前必须有有效对象引用
非static方法属于对象,调用前得先创建实例,否则会触发NullPointerException或编译错误(若在静态上下文中直接用未初始化的引用)。
- 正确:
MyClass obj = new MyClass(); obj.doSomething(); - 错误:
MyClass.doSomething();(除非该方法是static) - 错误:
MyClass obj = null; obj.doSomething();→ 运行时报NullPointerException - 静态方法可以直接用类名调用:
Math.abs(-5),但别误以为所有工具方法都这样设计——很多自定义类把逻辑放在实例方法里
参数传递是值传递,但引用类型的“值”是地址
Java只有值传递。对基本类型(如int、boolean),传的是副本;对引用类型(如String、ArrayList),传的是对象引用的副本——这意味着你能通过它修改对象状态,但无法让原引用指向新对象。
-
void changeValue(int x) { x = 10; }→ 调用后原变量不变 -
void changeList(List→ 原list) { list.add("new"); } list内容被修改 -
void reassignList(List→ 原list) { list = new ArrayList(); } list引用不受影响 - 字符串
String虽是引用类型,但不可变,所以str.concat(...)不会改变原引用指向的内容
重载方法靠参数列表区分,跟返回类型无关
方法重载(overload)只看方法名 + 参数个数/类型/顺序,返回类型不同但参数完全一样,编译不通过。
- 允许:
print(String s)和print(int i) - 允许:
process(List和list) process(String[] arr) - 不允许:
getCount()返回int和getCount()返回long—— 编译报错method getCount() is alrea
dy defined
- 注意:自动拆箱(如
int↔Integer)可能引发意外重载匹配,尤其在有Object参数的方法存在时
最容易被忽略的是访问修饰符和static属性对调用方式的硬性约束,还有重载时对泛型擦除后签名冲突的误判——比如doWork(List和doWork(List在字节码层面其实是同一个签名,无法共存。
# java
# 字节
# 工具
# ai
# 编译错误
# print
# Static
# String
# Integer
# Boolean
# Object
# NULL
# if
# math
# 字符串
# int
# void
# class
# 值类型
# 引用类型
# public
# 泛型
# 值传递
# 对象
# 的是
# 报错
# 时需
# 返回值
# 放在
# 修饰符
# 你能
# 不受
# 可以直接
# 自定义
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
如何获取免费开源的自助建站系统源码?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
深圳网站制作培训,深圳哪些招聘网站比较好?
黑客如何利用漏洞与弱口令入侵网站服务器?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
SQL查询语句优化的实用方法总结
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
JavaScript如何实现错误处理_try...catch如何捕获异常?
Laravel如何生成URL和重定向?(路由助手函数)
MySQL查询结果复制到新表的方法(更新、插入)
佛山企业网站制作公司有哪些,沟通100网上服务官网?
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
如何在新浪SAE免费搭建个人博客?
如何用好域名打造高点击率的自主建站?
网站制作壁纸教程视频,电脑壁纸网站?
微信小程序 input输入框控件详解及实例(多种示例)
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
如何快速完成中国万网建站详细流程?
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
简单实现jsp分页
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
奇安信“盘古石”团队突破 iOS 26.1 提权
如何在阿里云购买域名并搭建网站?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
图册素材网站设计制作软件,图册的导出方式有几种?
韩国服务器如何优化跨境访问实现高效连接?
PHP正则匹配日期和时间(时间戳转换)的实例代码
Laravel如何自定义分页视图?(Pagination示例)
利用python获取某年中每个月的第一天和最后一天
如何打造高效商业网站?建站目的决定转化率
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
如何用狗爹虚拟主机快速搭建网站?
Laravel如何使用Blade组件和插槽?(Component代码示例)
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
googleplay官方入口在哪里_Google Play官方商店快速入口指南
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
微信小程序 require机制详解及实例代码
如何解决hover在ie6中的兼容性问题
JS经典正则表达式笔试题汇总


