JAVA里怎么样在调用方法时同时改变实参的值 (形参改变实参)
2017-09-05 11:12
337 查看
实参:如果是基本类型,则实参不会变(传的是值);
如果是对象,则实参会改变(传的是引用)。
例如:
public class Java{
public static void main(String[] args)
{
int b =5;
changeInt(b);
System.out.println(b);
}
public static int changeInt(int a){
a =10;
return a;
}
}
为什么changeInt(b)之后输出的是5?
把b传到changeInt方法中之后为什么b的值没改变?
是这样的,基本类型和String均为值传递,想要实现你的需求只能改用对象,当然也可以使用集合类比如Map,或者数组(这个比较方便)。
更正:
public class Java{
public static void main(String[] args)
{
int b =5;
b = changeInt(b);
System.out.println(b);
}
public static int changeInt(int a){
a = 10;
return a;
}
}
changeInt(b)之后输出的是10。
如果是对象,则实参会改变(传的是引用)。
例如:
public class Java{
public static void main(String[] args)
{
int b =5;
changeInt(b);
System.out.println(b);
}
public static int changeInt(int a){
a =10;
return a;
}
}
为什么changeInt(b)之后输出的是5?
把b传到changeInt方法中之后为什么b的值没改变?
是这样的,基本类型和String均为值传递,想要实现你的需求只能改用对象,当然也可以使用集合类比如Map,或者数组(这个比较方便)。
更正:
public class Java{
public static void main(String[] args)
{
int b =5;
b = changeInt(b);
System.out.println(b);
}
public static int changeInt(int a){
a = 10;
return a;
}
}
changeInt(b)之后输出的是10。
相关文章推荐
- java 方法调用,形参改变,实参是否发生改变
- Java中的形参和实参的区别以及传值调用和传引用调用
- 关于java中方法或者函数,形参,实参的个人理解
- Java中调用一个方法的范围值作为形参传给另一个方法
- java一个方法形参有两个,如何在调用的时候只传入一个参数
- Java中的形参和实参的区别以及传值调用和传引用调用
- java里一个对象可否同时调用多个方法
- java中形参,实参改变
- java中值传递的三种情况,形参的改变不影响实参
- java 实参、形参、传值调用、传引用调用的理解
- 测试 java反射Reflection中 获取 类属性、方法、构造方法及 调用类方法改变 对象属性
- Java调用Matlab函数以及同时配置多版本JDK的方法
- java中调用方法是传入的形参个数可变的方法
- c++指针使用形参改变实参的方法
- java中,多个线程同时调用同一个静态方法的问题
- java学习之旅24--方法_方法的本质_形参_实参_return语句
- Java中方法内的参数和变量内存地存放问题,及形参实参内存存放,数值类型转化问题
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- Java中方法的形参和实参的区别
- 形参和实参调用方法