Нет, они не разделяют одно и то же место в памяти.Для вашего звонка они вернут (в указанном вами порядке): 10
, 20
и 30
.
Честно говоря, с вашим кодом это будет верно в любом случае (так как выВы просто присваиваете значение, ничего не делая с ним), но подумайте:
Class XYZ
{
public static int A (int value)
{
b += value; \\Won't compile: b not initialized
return b;
}
}
Или
Class XYZ
{
public static int A (int value)
{
int b = 0; \\Initialized 'b' for each call
b += value;
return b;
}
}
Поскольку метод Static не может получить доступ к переменной экземпляра (по крайней мере, не безимея ссылку на экземпляр), нет способа инициализировать переменную один раз в статическом методе без повторной инициализации при каждом вызове кода.Чтобы позволить статическому методу изменять переменную, вам потребуется передать два значения для работы друг с другом.