Я использую и люблю это решение, потому что оно предлагает хорошие составные действия и его легче интегрировать в параллельные программы, которые уже или могут захотеть использовать эти атомарные классы в будущем.

код 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);   
    }   
}  

выведет это:

 
Toy number in play 5  
Toy number in play after increement 6  
Toy number in main 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 ++ будет таким:

Toy number in play 5  
Toy number in play after increement 6  
Toy number in main 6  

Мой вопрос - что такое эквивалентный код в Java, чтобы получить тот же вывод, что и код C ++, учитывая, чтоJava передается по значению, а не по ссылке?

Ответы на вопрос(6)

Ваш ответ на вопрос