当前位置: 移动技术网 > IT编程>开发语言>Java > Java没有引用传递机制,C#有。

Java没有引用传递机制,C#有。

2019年06月25日  | 移动技术网IT编程  | 我要评论

java没有引用传递机制,c#有:

public class obj {
    private integer myvalue;

    public integer getmyvalue() {
        return myvalue;
    }

    public void setmyvalue(integer myvalue) {
        this.myvalue = myvalue;
    }
}

public class objoperation {
    public void changevalue(obj obj) {
        obj.setmyvalue(1);
    }
    
    public void changevalue2(obj obj) {
        obj = new obj();
        obj.setmyvalue(2);
    }
}
public class myapp {

    public static void main(string[] args) {
        obj obj = new obj();
        obj.setmyvalue(0);
        system.out.println(obj.getmyvalue());
        
        objoperation refoperation = new objoperation();
        
        refoperation.changevalue(obj);
        system.out.println(obj.getmyvalue());
        
        refoperation.changevalue2(obj);
        system.out.println(obj.getmyvalue());
    }

}

运行结果:

0
1
1

    public class obj
    {
        private int myvalue;
        public int myvalue { get => myvalue; set => myvalue = value; }
    }

    public class objoperation
    {
        public void changevalue(obj obj)
        {
            obj.myvalue = 1;
        }

        public void changevalue2(obj obj)
        {
            obj = new obj();
            obj.myvalue = 2;
        }

        /// <summary>
        /// 引用传递
        /// </summary>
        /// <param name="obj"></param>
        public void changevalue3(ref obj obj)
        {
            obj = new obj();
            obj.myvalue = 2;
        }
    }
class program
    {
        static void main(string[] args)
        {
            obj obj = new obj();
            obj.myvalue = 0;
            console.writeline(obj.myvalue);

            objoperation objoperation = new objoperation();
            objoperation.changevalue(obj);
            console.writeline(obj.myvalue);

            objoperation.changevalue2(obj);
            console.writeline(obj.myvalue);

            //引用传递
            objoperation.changevalue3(ref obj);
            console.writeline(obj.myvalue);

            console.read();
        }
    }

运行结果:

0
1
1
2

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网