Java SE入门及基础(25)

目录

方法带参(续第24篇)

6.方法参数传递规则

方法传参来自官方的说明

基本数据类型传值案例

基本数据类型传值时传递的是值的拷贝

引用数据类型传值案例

引用数据类型传值时传递的是对象在堆内存上的空间地址

[Java SE文章参考:Java SE入门及基础知识合集-CSDN博客](#Java SE文章参考:Java SE入门及基础知识合集-CSDN博客)

方法带参(续第24篇)

**6.**方法参数传递规则

方法传参来自官方的说明

Primitive arguments, such as an int or a double, are passed into methods by
value. This means that any changes to the values of the parameters exist only
within the scope of the method. When the method returns, the parameters are
gone and any changes to them are lost.
基本数据类型的参数(例如 int 或 double )按值传递给方法。 这意味着对参数值的任何更改仅存在于方法范围内。 当方法返回时,参数消失,对它们的任何更改都将丢失。
Reference data type parameters, such as objects, are also passed into methods
by value. This means that when the method returns, the passed-in reference
still references the same object as before. However, the values of the
object's fields can be changed in the method, if they have the proper access
level.
引用数据类型参数(例如对象)也按值传递到方法中。 这意味着当方法返回时,传入的引用仍然引用与以前相同的对象。 但是,如果对象的字段的值具有适当的访问级别,则可以在方法中更改它们。

基本数据类型传值案例

public class PassingPrimitive {
public static void main ( String [] args ) {
int a = 10 ;
change ( a ); // 调用方法时,实际上传递的是变量 a 的值的拷贝
System . out . println ( a );
}
public static void change ( int number ) {
number ++ ;
}
}

基本数据类型传值时传递的是值的拷贝

引用数据类型传值案例

public class ComputerTest {
public static void main ( String [] args ) {
Computer c1 = new Computer ();
c1 . brand = " 联想 " ;
c1 . type = "T430" ;
c1 . price = 5000 ;
Computer c2 = new Computer ();
c2 . brand = " 联想 " ;
c2 . type = "W530" ;
c2 . price = 6000 ;
Computer c3 = new Computer ();
c3 . brand = " 联想 " ;
c3 . type = "T450" ;
c3 . price = 7000 ;
//这里传递的参数就是实际参数
Computer c4 = new Computer ( " 联想 " , "T430" , 5000 );
updateComputer ( c4 );
System . out . println ( c4 . price );
Computer c5 = new Computer ( " 联想 " , "W530" , 6000 );
Computer c6 = new Computer ( " 联想 " , "T450" , 7000 );
}
public static void updateComputer ( Computer computer ){
computer . price = 10000 ;
}
}

引用数据类型传值时传递的是对象在堆内存上的空间地址

Java SE文章参考:Java SE入门及基础知识合集-CSDN博客

相关推荐
scixing5 分钟前
函数式编程 第八讲 循环者,递归也
开发语言·c#
程序员西西9 分钟前
Spring Boot整合MyBatis调用存储过程?
java·后端
2501_9418798120 分钟前
Python在微服务高并发异步API网关请求处理与智能路由架构中的实践
java·开发语言
AAA简单玩转程序设计22 分钟前
Java进阶小白手册:基础玩法升级,告别青铜套路
java
whltaoin23 分钟前
【 手撕Java源码专栏 】Spirng篇之手撕SpringBean:(包含Bean扫描、注册、实例化、获取)
java·后端·spring·bean生命周期·手撕源码
用户3721574261351 小时前
使用 Java 删除 Word 文档中的水印
java
艾斯比的日常1 小时前
Java 三色标记算法:并发垃圾回收的核心技术解析
java·开发语言·算法
空空kkk1 小时前
MyBatis——代理Dao方式的增删改查操作
java·数据库·mybatis
T***u3331 小时前
JavaScript在Node.js中的流处理大
开发语言·javascript·node.js
Seven971 小时前
线性数据结构
java