鱼C论坛

 找回密码
 立即注册
查看: 2942|回复: 6

[已解决]求助:如何改变函数参数获取的变量的值

[复制链接]
发表于 2019-3-2 19:34:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
public class a{
    public void myAdd(int x){
        x=x+1;
    }
}

class MyMain{
    int i;
    public static void main(String[] args){
        i=1;
        myAdd(i);
        System.out.println(i);
    }
}
我想利用MyAdd这个函数实现变量自增一,但这种方法无法实现,各位大神有没有什么高见
最佳答案
2019-3-2 20:40:35
你可以去搜一搜java中的参数值传递和引用传递,java基本数据类型都是按参数值传递的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-2 20:33:15 | 显示全部楼层
你这个代码漏洞百出吧?
基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-2 20:40:35 | 显示全部楼层    本楼为最佳答案   
你可以去搜一搜java中的参数值传递和引用传递,java基本数据类型都是按参数值传递的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-2 20:43:31 | 显示全部楼层
还有,你在MyMain类中定义了一个局部变量i,却在main方法中使用,这是不正确的,因为静态方法是不能使用非静态变量的,而且你都没有创建对象,是怎么使用a类中的myadd方法的?这一点也是错的,你可以去查一下,java中关于静态static的定义和使用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-2 20:47:32 | 显示全部楼层
暗pluto 发表于 2019-3-2 20:40
你可以去搜一搜java中的参数值传递和引用传递,java基本数据类型都是按参数值传递的

好的,非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-2 20:53:02 | 显示全部楼层

不客气
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-2 21:01:40 | 显示全部楼层
class MyMain{
    public static void myAdd(int[] x){
        x[0]=x[0]+1;
    }
    public static void main(String[] args){
        int [] i=new int[2]{1, 0}
        myAdd(i);
        System.out.println(i[0]);
    }
}
修改后的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 05:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表