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

JavaSE基础语法之方法

方法

一、方法入门

1.方法定义

  • 方法是一种语法结构,它可以把一段代码封装成一个功能,以便重复调用。

2.方法的格式

修饰符  返回值类型  方法名( 形参列表 ){方法体代码(需要执行的功能代码)
}

示例:

public  static  int  sum ( int a , int b ){
int c = a + b;
return c;
}

3.执行方法

  • 方法定义后,必须调用才可以跑起来,调用格式:方法名(…);
int result = sum(10, 20);
System.out.println(rs);

4.定义方法时的注意事项

  • 方法的修饰符:暂时都使用public static 修饰。
  • 方法申明了具体的返回值类型,内部必须使用return返回对应类型的数据。
  • 形参列表可以有多个,甚至可以没有; 如果有多个形参,多个形参必须用“,”隔开,且不能给初始化值。

5.使用方法的优点

  • 提高了代码的复用性,提高了开发效率。
  • 让程序的逻辑更清晰。

二、方法的其他形式

1.定义

  • 方法定义时:需要按照方法解决的实际业务需求,来设计合理的方法形式解决问题。

2.注意事项

  • 如果方法不需要返回数据,返回值类型必须申明成void(无返回值申明), 此时方法内部不可以使用return返回数据。
  • 方法如果不需要接收数据,则不需要定义形参,且调用方法时也不可以传数据给方法了。
  • 没有参数,且没有返回值类型(void)申明的方法,称为无参数、无返回值的方法,依次类推。

三、方法使用时的常见问题

  • 方法的返回值类型写**void(无返回申明)**时,方法内不能使用return返回数据,如果方法的返回值类型写了具体类型,方法内部则必须使用return返回对应类型的数据。
  • return语句的下面,不能编写代码,属于无效的代码,执行不到这儿。
  • 方法不调用就不会执行, 调用方法时,传给方法的数据,必须严格匹配方法的参数情况。
  • 调用有返回值的方法,有3种方式:1、可以定义变量接收结果 2、或者直接输出调用,3、甚至直接调用;
  • 调用无返回值的方法,只有1种方式:1、只能直接调用。

四、方法在计算机中的执行原理

  1. 方法的运行区域在栈内存
  2. 栈有先进后出的特点。
  3. 为了保证一个方法调用完另一个方法后,可以回来,所以方法会在栈内存中运行自己

五、Java的参数传递机制

1.基本类型的参数传递

Java的参数传递机制都是:值传递

  • 所谓值传递:指的是在传输实参给方法的形参的时候,传输的是实参变量中存储的值的副本。
  • 实参:在方法内部定义的变量。
  • 形参:定义方法时“(…)”中所声明的参数。

在这里插入图片描述

2.引用类型的参数传递

图示:

在这里插入图片描述

基本类型和引用类型的参数在传递时的不同点:

  • 都是值传递。
  • 基本类型的参数传输存储的数据值。
  • 引用类型的参数传输存储的地址值。

六、方法重载

1.定义

  • 一个类中,出现多个方法的名称相同,但是它们的形参列表是不同的,那么这些方法就称为方法重载了。

2.注意事项

  • 一个类中,只要一些方法的名称相同、形参列表不同,那么它们就是方法重载了,其它的都不管(如:修饰符,返回值类型是否一样都无所谓)。
  • 形参列表不同指的是:形参的个数、类型、顺序不同,不关心形参的名称。

3.应用场景

  • 开发中我们经常需要为处理一类业务,提供多种解决方案,此时用方法重载来设计是很专业的。

七、补充知识:在方法中单独使用return关键字

  • return; 可以用在有返回值的方法中
    名称。

3.应用场景

  • 开发中我们经常需要为处理一类业务,提供多种解决方案,此时用方法重载来设计是很专业的。

七、补充知识:在方法中单独使用return关键字

  • return; 可以用在有返回值的方法中
  • 作用是:立即跳出并结束当前方法的执行。

相关文章:

  • Hue面试内容整理-Hue 架构与前后端通信
  • LLaMA-Factory微调大模型Qwen2.5
  • 电动汽车直流快充充电桩AEV200-DC240M4的详细介绍
  • mysql-单一的事务--single-transaction选项
  • MyBatis进阶干货知识
  • 海康相机连接测试-极简版
  • K8s CoreDNS 核心知识点总结
  • AI 来袭:颠覆传统的数字营销指南
  • 我用 CodeBuddy 开发了一个颜色命名搜索器 —— ColorNameHub 的诞生记
  • Verilog HDL 语言整理
  • [特殊字符] 如何优雅地避免 SQL 多表 LEFT JOIN 造成的笛卡尔积放大问题?
  • 青少年编程与数学 02-019 Rust 编程基础 16课题、包、单元包及模块
  • C# RSA加密
  • 日语简单记录
  • 基于大模型预测的脑出血全流程诊疗技术方案
  • 服务器性能参数分析基础:磁盘-CPU-内存
  • ci/cd全流程实操
  • MySQL 8.0 OCP 1Z0-908 121-130题
  • ConcurrentSkipListMap的深入学习
  • 前端方法的总结及记录
  • 乌克兰官员与法德英美四国官员举行会谈
  • 国家统计局向多省份反馈统计督察意见
  • 北京警方:海淀发生小客车刮碰行人事故4人受伤,肇事司机已被查获
  • 陕西榆林:全力推进榆林学院升格榆林大学
  • 跨文化戏剧的拓荒者与传承者——洪深与复旦剧社的百年回响
  • 中国巴西关于乌克兰危机的联合声明