猿问

如何对Java中的基元进行等效的传递

如何对Java中的基元进行等效的传递

这个Java代码:

public class XYZ {   
    public static void main(){  
        int toyNumber = 5;   
        XYZ temp = new XYZ();  
        temp.play(toyNumber);  
        System.out.println("Toy number in main " + toyNumber);  
    }

    void play(int toyNumber){  
        System.out.println("Toy number in play " + toyNumber);   
        toyNumber++;  
        System.out.println("Toy number in play after increement " + toyNumber);   
    }   }

将输出:

 玩具编号5  在协议6之后玩具号码  主要玩具编号5

在C ++中,我可以通过toyNumber引用传递变量以避免阴影,即创建同一个变量的副本,如下所示:

void main(){  
    int toyNumber = 5;  
    play(toyNumber);  
    cout << "Toy number in main " << toyNumber << endl;  }void play(int &toyNumber){  
    cout << "Toy number in play " << toyNumber << endl;   
    toyNumber++;  
    cout << "Toy number in play after increement " << toyNumber << endl;   }

并且C ++输出将是这样的:

玩具编号5  在协议6之后玩具号码  主要玩具编号6

我的问题是 - 考虑到Java是通过值传递而不是通过引用传递,Java中的等效代码与C ++代码获得相同的输出是什么?


慕婉清6462132
浏览 433回答 3
3回答

慕容3067478

做一个class&nbsp;PassMeByRef&nbsp;{&nbsp;public&nbsp;int&nbsp;theValue;&nbsp;}然后将引用传递给它的实例。请注意,最好避免通过其参数改变状态的方法,尤其是在并行代码中。
随时随地看视频慕课网APP

相关分类

Java
我要回答