Одним из фундаментальных понятий в ООП является понятие области действия: почти во всех случаях целесообразно уменьшить область действия переменной (т. Е. Там, где она видна) до минимально допустимого диапазона.
Я собираюсь предположить, что вам абсолютно необходимо использовать эту переменную в обеих функциях.Поэтому минимальная жизнеспособная область действия в этом случае будет охватывать обе функции.
public class YourClass
{
private String yourStringVar;
public int pleaseGiveYourFunctionProperNames(String s){
this.yourStringVar = s;
}
public void thisFunctionPrintsValueOfMyStringVar(){
System.out.println(yourStringVar);
}
}
В зависимости от ситуации вы должны оценить требуемую область действия переменной, и вы должны понимать последствия увеличения области действия (большедоступ = потенциально больше зависимостей = сложнее отслеживать).
В качестве примера предположим, что вам абсолютно необходимо, чтобы она была ГЛОБАЛЬНОЙ переменной (как вы ее называете в своем вопросе).Переменная с глобальной областью видимости может быть доступна любому внутри приложения.Это исключительно опасно, что я покажу.
Чтобы создать переменную с глобальной областью действия (в Java нет таких вещей, как глобальные переменные, в точности, вы создаете класс со статической переменной.
public class GlobalVariablesExample
{
public static string GlobalVariable;
}
Если бы я изменил исходный код, он бы выглядел следующим образом.
public class YourClass
{
public int pleaseGiveYourFunctionProperNames(String s){
GlobalVariablesExample.GlobalVariable = s;
}
public void thisFunctionPrintsValueOfMyStringVar(){
System.out.println(GlobalVariablesExample.GlobalVariable);
}
}
Это может быть исключительно мощным и исключительно опасным, поскольку может привести к странному поведению, которое выне ожидайте, и вы потеряете многие способности, которые дает вам объектно-ориентированное программирование, поэтому используйте его осторожно.
public class YourApplication{
public static void main(String args[]){
YourClass instance1 = new YourClass();
YourClass instance2 = new YourClass();
instance1.pleaseGiveYourFunctionProperNames("Hello");
instance1.thisFunctionPrintsValueOfMyStringVar(); // This prints "Hello"
instance2.pleaseGiveYourFunctionProperNames("World");
instance2.thisFunctionPrintsValueOfMyStringVar(); // This prints "World"
instance1.thisFunctionPrintsValueOfMyStringVar(); // This prints "World, NOT Hello, as you'd expect"
}
}
Всегда оценивайте минимальный жизнеспособный диапазон для ваших переменных.Не делайте его более доступным, чем нужно.
Также, пожалуйста, не называйте свои переменные a, b, c.И не называйте свои переменные func1, func2.Это не замедляет работу вашего приложения и не убивает вас при вводе нескольких дополнительных букв.