【Java】 【 方法 重载 方法的内存分配 形参与实参 参数传递注意事项】 Notes and Insights 6

方法

method : 是程序中最小的执行单元
main方法: 主方法
为解决代码重复(具有独立功能的代码) 太麻烦的问题
我们使用代码打包 调用方法

  1. 提高代码的复用性
  2. 提高代码的可维护性

定义方法 调用method
格式:
最简单的方法定义与调用

public static void 方法名 () {
    方法体(打包起来的代码)
}

方法名();
方法必须先定义后调用
程序执行看到方法则进入方法, 执行完毕回到调用处

带参数的方法

public static void method(int num1, int num2) {
    int result = num1 + num2;
    System.out.println(result);
}

注意:方法调用时,参数的数量和类型必须与方法定义中的小括号里面的变量一一对应,否则程序会报错(形参与实参必须一一对应)

形参 与 实参
形式参数 实际参数
方法体 中的 是形参

带返回值(方法运行的最终结果)的方法

方法的调用者
在调用处要根据方法的结果去编写另外一段代码
方法的返回值会返回给调用处

  1. 直接调用: 方法名(实参); 一般不用
  2. 赋值调用: 整数类型 变量名 = 方法名 (实参);
  3. 输出调用: System.out.println(方法名(实参));
    综上:
public static 返回值类型 方法名 (参数){
    方法体;
    return 返回值;
}

方法与方法之间是平级关系,且不能互相嵌套定义(但是可以嵌套使用)
return 结束方法返回结果
return语句下面的代码属于无效代码
return 关键字

方法的重载

  • 同一个类中,定义了多个同名的方法,这些同名的方法具有同种的功能
  • 每个方法具有不同的参数类型参数个数,这些同名的方法,就构成了重载关系
  • 1同一个类中,方法名相同,2参数不同的方法。3与返回值无关(int void …)

参数不同: 个数不同、类型不同、顺序不同(顺序不同可以构成重载,但是不建议)
虚拟机通过参数的不同来区分同名的方法
形参 与 实参 要 一一对应

方法的内存

  1. 方法调用的基本内存原理
  2. 方法传递基本数据类型的内存原理
  3. 方法传递引用数据类型的内存原理

方法内存分配

进栈内存运行 执行完毕出栈
可以嵌套调用方法 不可嵌套定义
先进后出 压子弹

代码运行
加载
堆(new)
基本数据类型:整 浮 布 字符 (存储在自己的空间中)
引用数据类型:只要是new出来的 数组 int[] arr = new int[] {…}
记录的不是真实的数据,而是其他内存空间数据地址值
地址 元素

// 传递基本参数类型时,传递的是真实的数据,形参的改变,不影响实际参数的值
// 传递引用数据类型时,传递的是地址值,形参的改变,影响实际参数的值

Java中的方法可以传递参数,参数传递的方法就是值传递。
实参:调用方法时,传递的参数叫实参。调用方法时,会把实参传递给形参,方法内部实际上使用形参。
形参:定义方法时,写的参数叫形参。
值传递:当参数是基本类型时,传递参数的值,传递 i=666 ,会把666这个值赋值给形参。
​ 当参数是对象时,传递的是对象的地址值,就是把对象的地址值赋值给形参。

  • 基本类型作为参数传递
    在Java中基本数据类型遵循值传递,所以在 在调用方法时, 只是将原数据的副本传给方法中的形参
    因此当使用基本数据类型作为方法的形参时,在方法体内对形参的改变不会影响到实参的值。
  • 引用类型作为参数传递
    引用类型的参数传递,属于引用传递,传递的是地址值,形参的改变会影响实参。
    但String类例外,String字符串比较特殊,也属于引用传递,但是他作为参数传递,是值传递。

基本数据类型和引用数据类型作为参数的区别:
1.基本数据类型的变量中直接存放数据本身,所以改的时候改的是数据本身。
2.但是引用类型不同的地方在于真正的数据并没有栈区的变量中保存,而是在堆区里面保存,虽然也复制了一份,也是副本,二者指向的是同一块内存空间。
3.引用数据类型就比如说:两个同学使用的是同一份复习资料,其中一人把资料撕毁了,另一个当然也会受到影响。而基本数据类型就是复制了一份,其中一人把资料撕毁了,并不影响另一个人。

————————————————
参考博客 : https://blog.csdn.net/weixin_45447369/article/details/105885572

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zanebla

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值