我想在Java中使用引用,但我不知道如何! 例如,在 C++ 中我们这样写:
void sum(int& x)
{
...
}
但是在Java中&符号是编译器错误! 请帮助我理解 Java 中的引用文献。
最佳答案
默认情况下,对象通过引用传递 对象通过引用访问,但无法创建对原始值(byte、short、int、长的)。您要么必须创建一个对象来包装整数,要么使用单个元素数组。
public void sum(int[] i){
i[0] = ...;
}
或
public void sum(MyInt i){
i.value = ...;
}
public class MyInt{
public int value;
}
对于您的示例,类似以下内容可能有效
public int sum(int v){
return ...;
}
或
public int sum(){
return ...;
}
更新:
对象引用的附加/更好描述:
Java 对象始终通过引用来访问。与原始类型一样,此引用按值传递(例如复制)。由于程序员在 java 中可以访问的所有内容都是通过复制来传递的(引用、基元),并且无法创建对基元类型的引用,因此对方法参数(引用、基元)的任何修改只会影响方法内的本地副本。方法。 可以在方法内修改对象,因为引用的两个副本(本地和其他)仍然指向同一个对象实例。
示例:
修改方法内的原语,这只影响 i 的内部副本,而不影响传递的值。
void primitive(int i){
i = 0;
}
修改方法内的引用,这只影响 ref 的内部副本,而不影响传递的值。
void reference(Object ref){
ref = new Object();//points to new Object() only within this method
}
修改对象,全局可见
void object(List l){
l.add(new Object());//modifies the object instead of the reference
}
上面的数组和MyInt都是基于对象的修改。
关于java - Java中如何使用引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4712798/