Вы не можете иметь по-настоящему «глобальные» переменные в Java так же, как в языке, таком как C. Java вынуждает вас структурировать вашу программу объектно-ориентированным способом.
В вашем примеревыше, если var
требуется для всего объекта test
и важно сохранить его, тогда вы должны использовать первый пример.Если var
требуется только в someMethod
и для объекта test
не важно хранить его, используйте второй пример.
Обратите внимание, что даже в первом примере var
- это инкапсулирован в объекте test
, поэтому он на самом деле не является "глобальным" вообще, за исключением, может быть, незначительно функции-члена test
(которая является целой точкой переменных экземпляра / члена).*
В Java ближе всего к "глобальным" данным есть что-то вроде:
public class GlobalVars {
public static int globalInt;
}
И вы можете получить доступ к globalInt
по всему коду как GlobalVars.globalInt
, не создавая экземпляр GlobalVars
.