jkzrna192 написав:static - це тип.
ні
Коротко, static це ключове слово для створення властивостей й методів, що належать класам.
Static перед властивостями класів, у Java головним чином використовується для керування пам'яттю.
Приклад:
class Cat {
String name;
int year;
void sayYear() {System.out.println(this.year);
}
Створюючи екземпляр такого класу:
Java виділяє пам'ять під String name та int year для нашого новоствореного myCat.
Для ще одного кота,
, ще String name та int year і так далі.
Натомість, модифікатор static застосований до властивостей класу, передає їх у власність класу і щоб дістатися до їх значення, не потрібно створювати об'єкт (бо вони належать класу). Пам'ять під такі змінні виділяється одразу після завантаження класу до джава-машини, та не пере-виділяється при створенні екземпляру класу. Тобто для класу
class CatStatic {
String name;
static int year;
void sayYear() {System.out.println(CatStatic.year);
}
Java одразу й ОДИН раз виріляє пам'ять під int year, a
при створенні котиків
Java виділяє пам'ять тільки під String name, а також до значення year можна дістатися в такий спосіб:
CatStatic.year = 5;
System.out.println(CarStatic.year); // 5
.
Значення year також видно й у середині класу для об'єктів, можна до них звертатися з методів:
myCat.sayYear(); // 5
CatStatic.year = 25;
Cat newMyCat = new Cat(); // виділилася пам'ять тільки під String name
newMyCat.sayYear(); // 25