Статические переменные
Статические переменные Java, объявляются внутри класса с ключевым словом static. Такие переменные, по существу, являются глобальными переменными. При объявлении объектов, копии статических переменных не создаются - создается одна статическая переменная на весь класс. Статическая переменная создается при загрузке класса.
Рассмотрим различие между обычными и статическими переменными на следующем примере. Для обращения к обычной переменной а, необходим объект класса StaticVars. К переменной b можно обращаться без упоминания объекта и даже без упоминания класса (если обращение происходит из того же класса):
public class StaticVars {
int a;
static int b;
public static void main(String[] args) {
StaticVars staticVars = new StaticVars();
System.out.println(staticVars.a);
System.out.println(b);
}
}
При обращении к статической переменной из другого класса, необходимо указать имя ее класса - StaticVars.b. Можно обратиться к статической переменной используя любой объект того же класса, например - staticVars1.b или staticVars2.b. Но такой вариант не рекомендуется, так как пользователь вашего кода может решить, что это обычная переменная.
public class StaticVarsExample {
public static void main(String[] args) {
StaticVars staticVars1 = new StaticVars();
StaticVars staticVars2 = new StaticVars();
System.out.println(StaticVars.b);
System.out.println(staticVars1.b);
staticVars1.b = 3;
staticVars2.b = 4;
System.out.println(staticVars1.b);
System.out.println(staticVars2.b);
}
}
Результат выполнения кода:
0
0
4
4 Рассмотрим классический пример, демонстрирующий использование статических переменных для подсчета количества созданных объектов класса Ball. Для этого определим в классе статическую переменную count, которая и будет содержать количество созданных объектов. При создании объекта всегда вызывается конструктор, поэтому именно там будем увеличивать переменную count. Для доступа к private переменной count определен метод getCount():
public class Ball {
static int count = 0;
String color = "none";
public Ball(String color) {
this.color = color;
count++;
}
} public class BallExample {
public static void main(String[] args) {
Ball ball1 = new Ball("красный");
Ball ball2 = new Ball("голубой");
System.out.println("Количество созданных объектов: "
+ Ball.count);
}
} Результат выполнения кода:
Количество созданных объектов: 2
Курс 'Java для начинающих' на Udemy
Please log in or register to have a possibility to add comment.