Статическое ключевое слово (будь то переменная или блок) принадлежит классу. Поэтому, когда класс вызывается, эти переменные или блоки выполняются. Таким образом, большая часть инициализации будет выполнена с помощью ключевого слова static. Поскольку он принадлежит самому классу, класс может напрямую обращаться к нему, не создавая экземпляра класса.
Давайте возьмем пример. Существует класс обуви, в котором есть несколько переменных, таких как цвет, размер, марка и т. Д. И здесь, если компания-производитель обуви имеет только одну марку, мы должны инициализировать ее как статическую переменную. Итак, когда вызывается класс обуви и производятся разные типы обуви (путем создания экземпляра класса), в это время цвет и размер будут занимать память всякий раз, когда создается новая обувь, но здесь бренд является общим свойством для всей обуви, так что она хоть раз займет память, сколько бы обуви ни было произведено.
Пример:
class Shoe {
int size;
String colour;
static String brand = "Nike";
public Shoe(int size, String colour) {
super();
this.size = size;
this.colour = colour;
}
void displayShoe() {
System.out.printf("%-2d %-8s %s %n",size,colour, brand);
}
public static void main(String args[]) {
Shoe s1 = new Shoe(7, "Blue");
Shoe s2 = new Shoe(8, "White");
System.out.println("=================");
s1.displayShoe();
s2.displayShoe();
System.out.println("=================");
}
}