怎麼實現int型參數傳地址 不可以。除非你把它封装在一个Integer对象中,而且JAVA中是传值调用,而非引用调用! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Can I convert it into object or other class when I pass it to the method? I guess. 在C++中常可以function(&a,&b,&c)或C#中function(ref a, ref b, ref c),難道Java中就沒有辦法這樣一次傳回多個值嗎? 没有就是没有,包装成Integer都没有。没有办法改变Integer包装的int的value.void increment(Integer objInt){ objInt = new Integer(objInt.intValue()++);}Integer objInt = new Integer(0);increment(objInt);objInt 还是 0. int x=> int[] x=new int[0];C/C++用指针才叫滥 new int[1];我也同意这种,我觉得这也不是地址引用,而是初始化时的地址分配 把一个int的变量放到一个空类里边就行拉,class Int{int i=0;} 可以把interger 变成Interger对象来实现传引用java对对象是传引用调用!对非对象的参数是传值调用 Integer不行class Integer{ final int value;}除了 new int[1],还可以 void xxx(int i) 变成 int xxx(int i) or Integer xxx(Integer i)return i++; return new Integer(i++) 無論如何,在java中實現比較麻煩,沒有直接的辦法,java設計的時候未考慮到這點,c#就考慮到了。但是說實話我最喜歡的還是C++,最自由最powerful 雖燃總是有人說用指針危險,我寧可"冒險"。 可以把interger 变成Interger对象来实现传引用java对对象是传引用调用!对非对象的参数是传值调用国内电脑教授都是这么教的?请问:void changeStudent(Student s){ s = new Student();}{Student s1 = .....;System.out.println(s1);changeStudent(s1);System.out.println(s1);}为什么两次output一样如果传引用?java函数,传的永远是值。对primitive type variables,传的是value.对Object intances,传的是pointer。这样就有两个pointer指向同一个instance.改变一个的internal value,两个instances的值都会看上去被改变。new一个新的内存地址,一个instance指向新地址,旧的那个没有改变。 我學C#的時候就感覺到C#,Java等「安全型」語言存在的不自由性,除了以上問題外(C#有直接解決方法),還有就是若我要給兩個獨立的同class對象給予相同的值,如何做到呢(在C#、Java中):class A,B;GetValue(out A);B=A;這樣B又跟A指向同一地址了,即便事先new一遍B也仍舊如是,有什麼直接的辦法做到呢?但這兩個功能在C/C++中是最最基本的操作了,所以我想請問一下... 我猜c++这样做是为了节约,用一个东西节约内存,java不这样做的原因是它不需要你delete,虽然它的垃圾收集机制还不太好。而且c++这样只适合小打小闹,因为无论何时对象只有一个,而指向他的指针却可能有很多,在某个函数里改变这个对象的内容对这个函数甚至这个类无所谓,但是你却不能确定在其他函数或者类里这个对象的改变可能是性命攸关的。你一个人写几百几千行代码可能觉得可以避免这种情况,但是做大的项目时就完蛋了。 那个统计的问题(合欢请进) 请问一个JAVA多态问题! 求两个关于数字的正则表达式(大于2和大于20) 一个关于JDBC连接的问题!!!!急~~~ 产生的对象不能在jbuilder中调试, 怎样使对话框右上角的关闭按钮,最大化按钮无效(即屏蔽这两个按钮) 【求助】响应用户输入问题! 提问:关于java applet中paint()的问题 请问jar文件怎么运行啊? 请高手帮忙 怎么修改JTable的排列方式? 请问如何设置JFrame标题的字体 大家请我吃饭吧,快抢书啊有用的太多了http://www.codestudy.net/book/default.asp
{
objInt = new Integer(objInt.intValue()++);
}Integer objInt = new Integer(0);
increment(objInt);objInt 还是 0.
C/C++用指针才叫滥
class Int{
int i=0;
}
class Integer{
final int value;
}除了 new int[1],还可以 void xxx(int i) 变成 int xxx(int i) or Integer xxx(Integer i)return i++; return new Integer(i++)
java对对象是传引用调用!对非对象的参数是传值调用国内电脑教授都是这么教的?请问:
void changeStudent(Student s)
{
s = new Student();
}
{
Student s1 = .....;
System.out.println(s1);
changeStudent(s1);
System.out.println(s1);
}
为什么两次output一样如果传引用?java函数,传的永远是值。对primitive type variables,传的是value.对Object intances,传的是pointer。这样就有两个pointer指向同一个instance.改变一个的internal value,两个instances的值都会看上去被改变。new一个新的内存地址,一个instance指向新地址,旧的那个没有改变。
class A,B;
GetValue(out A);
B=A;
這樣B又跟A指向同一地址了,即便事先new一遍B也仍舊如是,有什麼直接的辦法做到呢?但這兩個功能在C/C++中是最最基本的操作了,所以我想請問一下...
java不这样做的原因是它不需要你delete,虽然它的垃圾收集机制还不太好。
而且c++这样只适合小打小闹,
因为无论何时对象只有一个,而指向他的指针却可能有很多,在某个函数里改变这个对象的内容对这个函数甚至这个类无所谓,但是你却不能确定在其他函数或者类里这个对象的改变可能是性命攸关的。你一个人写几百几千行代码可能觉得可以避免这种情况,但是做大的项目时就完蛋了。