作者peanut97 (花生)
看板java
标题Re: [问题] 有关於 Java 的指标
时间Wed Jul 31 11:06:00 2013
※ 引述《lairrol (Hammer)》之铭言:
: 想请问一下在 Java 中没有类似 C/C++ 中 & 的用法吗?
: 小弟我在学 C/C++ 可以做下面这样的事
: 可以利用 & 做传址给副程式做一些运算
: #include <iostream>
: using namespace std;
: void add(int &a, int &b)
: {
: a++;
: b++;
: }
: int main(void)
: {
: int a = 1, b = 1;
: cout << a << b << endl;
: add(a,b);
: cout << a << b << endl;
: }
: 但是小弟在学 Java 的时候无法用 & 来做类似的事
: 查了一下版上的资料有讨论到这部份的问题
: 我还是有点难理解 Java 中没有 & 这种事....
你想做的这件事,在Java中会把它包装成"物件"来做。
public class Test {
int a;
public static void main(String[] args) {
Test t = new Test();
t.a = 1;
System.out.println("t.a:" + t.a);
Test.add(t);
System.out.println("t.a:" + t.a);
}
public static void add(Test t){
t.a++;
}
}
程式结果会印出:
t.a:1
t.a:2
在传递参数时,Java会依变数型态来决定是「传值」还是「传参考」
如果是Java的8种基本资料型态:byte,short,int,long,float,double,boolean,char
就会是「传值」。
但如果是这8种资料型态以外的,像把他包装成"物件"
将Test t;这个物件传进add(Test t)时,就是「传参考」
也就跟C++里面的&有点像。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 180.218.117.242
1F:推 PsMonkey:这应该也不是 C 里头 & 的意思,只是结果趋近而已 07/31 11:33
2F:推 singlovesong:这是C里头的 * 07/31 14:54