Статические переменные как общие данные в Java
Поле в классе Main со словом static
хранит одно значение на весь класс. Такие
поля удобно использовать как общие данные,
к которым обращаются несколько методов.
Здесь не разбираем устройство классов -
достаточно знать, что имя поля видно во
всех static методах этого класса.
В классе задано поле maxSize. Метод
report выводит это значение:
public class Main {
static int maxSize = 100;
static void report() {
System.out.println(maxSize);
}
public static void main(String[] args) {
report();
}
}
Несколько методов могут читать одно и то
же поле. На экран два раза попадет 7:
public class Main {
static int shared = 7;
static void showA() {
System.out.println(shared);
}
static void showB() {
System.out.println(shared);
}
public static void main(String[] args) {
showA();
showB();
}
}
Изменение поля в одном методе видно в другом.
Общие имена легко перепутать при росте
программы, поэтому их оставляют для
действительно общих величин, а рабочие
данные чаще держат в main или внутри
методов. На экран попадут 1 и 2:
public class Main {
static int shared = 1;
static void bump() {
shared = shared + 1;
}
static void show() {
System.out.println(shared);
}
public static void main(String[] args) {
show();
bump();
show();
}
}
Дан код:
public class Main {
static String label = "go";
public static void main(String[] args) {
System.out.println(label);
}
}
Определите, что выведет программа.
Дан код:
public class Main {
static int units = 3;
static void addUnit() {
units = units + 1;
}
public static void main(String[] args) {
System.out.println(units);
addUnit();
System.out.println(units);
}
}
Определите, что выведет программа.