Передача ссылкой является просто синтаксическим сахаром для pass-by-address/pointer. Таким образом, функция должна неявно разыменовать указатель для чтения значения параметра. Разыменование указателя могло бы быть более дорогим (если в цикле) затем копия структуры для копии значением.
, Что еще более важно, как другие упомянули, передача ссылкой имеет другую семантику, чем передача значением. const
ссылки делают не , означают, что значение, на которое ссылаются, не изменяется. другие вызовы функции могли бы изменить значение, на которое ссылаются.
Один простой способ передать объект между операциями или сделать объект характерным для всего приложения, создают Приложение расширения класса.
Вот пример:
public class DadosComuns extends Application{
private String nomeUsuario="";
public String getNomeUsuario() {
return nomeUsuario;
}
public void setNomeUsuario(String str) {
nomeUsuario = str;
}
}
Во всех Ваших операциях других, Вы просто должны инстанцировать одного объекта "DadosComuns", declarating как Глобальная переменная.
private DadosComuns dadosComuns;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//dados comuns
dadosComuns = ((DadosComuns)getApplicationContext());
dadosComuns.setNomeUsuario("userNameTest"); }
Все операции других, которых Вы инстанцируете dadosComuns = ((DadosComuns)getApplicationContext ()); можно получить доступ getNomeUsuario () == "userNameTest"
В Вашем AndroidManifest.xml , Вы должны иметь
<application
android:name=".DadosComuns"