目录
????????引用数据类型传值时传递的是对象在堆内存上的空间地址
Java?SE文章参考:Java SE入门及基础知识合集-CSDN博客
Primitive arguments, such as an int or a double, are passed into methods byvalue. This means that any changes to the values of the parameters exist onlywithin the scope of the method. When the method returns, the parameters aregone and any changes to them are lost.基本数据类型的参数(例如 int 或 double )按值传递给方法。 这意味着对参数值的任何更改仅存在于方法范围内。 当方法返回时,参数消失,对它们的任何更改都将丢失。Reference data type parameters, such as objects, are also passed into methodsby value. This means that when the method returns, the passed-in referencestill references the same object as before. However, the values of theobject's fields can be changed in the method, if they have the proper accesslevel.引用数据类型参数(例如对象)也按值传递到方法中。 这意味着当方法返回时,传入的引用仍然引用与以前相同的对象。 但是,如果对象的字段的值具有适当的访问级别,则可以在方法中更改它们。
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 ;????????}}