Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Эффективное использование переменных


Автор: bulat01 25.10.2011, 07:34
Привет всем спецам по Java,

Разрабатываю программу для загрузки документов в Базу.
но в виду того что что не имею достаточно опыта и знаний в программировании Java,
разработка замедляется.

У меня 2 вопроса:

1) Мне постоянно приходится передавать значения переменных в другие классы - 
есть ли способ просто ссылаться из разных классов на нужные переменные в находящиеся одном классе?
а то я запутался уже. Не судите строго.

2) Я так понял когда передаешь переменную в другой класс через метод.
Там передаваемое значение для переменной будет доступно только в пределах этого метода.
За пределами оно будет показывать null.

Ну вот к примеру:

AuthorizationDocbase.java
-----------------------------------------------------------------------------------------

Код

class AuthorizationDocbase {
....
....


public void authorization() 
.....
.....

DataCollection dc = new DataCollection();
dc.initVariables(user_variable_value, docbase_variable_value);

}

}



DataCollection.java
-----------------------------------------------------------------------------------------
Код

class DataCollection{
......
......
......

String dbAccount_value_auth2;
String dbURL_value_auth2;


public void initVariables(String dbAccount, String dbURL) {
 System.out.println("Passed Params authorize2: " + dbAccount + " " + dbURL);
        
dbAccount_value_auth2 = dbAccount;
dbURL_value_auth2 = dbURL;   
}
}


за приделами метода  initVariables -  переменные dbAccount_value_auth2 и dbURL_value_auth2 будут меть значение null.
как это можно исправить - чтобы передать локальной переменной значение из метода.



Автор: Andy_L20066 25.10.2011, 09:34
привет,  

в вашем примере пока вы не вызовете метод initVariables - dbAccount_value_auth2 и dbURL_value_auth2 будут иметь значение null, поскольку при создании обьекта - они сетаются по дефолту в null, если другое не задано в конструкторе

FYI:
переменные примитивного типа передаются в метод по значению, для обьектов же будет передаватся референс (ссылка) (если метод принимает на вход обьект- то всередине он работает со ссылкой на этот обьект) 

Автор: Pawl 26.10.2011, 21:25
Цитата(bulat01 @  25.10.2011,  07:34 Найти цитируемый пост)
есть ли способ просто ссылаться из разных классов на нужные переменные в находящиеся одном классе?

Есть. Объявить переменные как public static, а потом реализовать статический импорт в другие классы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)