Junior
Статикалык өзгөрмөлөр деген эмне?
sobes.tech AI
AIден жооп
Статикалык өзгөрмөлөр класска таандык, конкреттүү нусканын эмес. Алар программаны иштетүү учурунда бир гана нускада болот жана ошол класстын бардык объектилери менен бөлүштүрүлөт. Бир объект тарабынан жасалган статикалык өзгөрмө башка объектилер үчүн да көрүнөт.
Негизги өзгөчөлүктөр:
- Тегишүү: Класска.
- Нуска саны: Бир класс үчүн бир.
- Өмүрү: Классты жүктөгөндөн программаны аяктагчка чейин.
- Кирүү: Адатта, класстын аты аркылуу
ClassName.staticVariable, бирок объект аркылуу да кирүүгө болот (кеңеш берилбейт). - Баштоо: Классты жүктөгөндө бир жолу.
Колдонуу мисалдары:
- Класс түзгөн объекттердин санын эсептөө.
- Бардык класска тиешелүү туруктуу маанилер.
- Класстын башкаруусундагы жалпы ресурстар.
Java мисалы:
class MyClass {
static int counter = 0; // Статикалык өзгөрмө
public MyClass() {
counter++; // Объект түзүлгөндө статикалык эсептегичти көбөйтөт
}
public static void main(String[] args) {
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
System.out.println(MyClass.counter); // Чыгуу: 2
}
}
Python мисалы:
class MyClass:
counter = 0 # Статикалык өзгөрмө
def __init__(self):
MyClass.counter += 1 # Статикалык эсептегичти көбөйтөт
def main():
obj1 = MyClass()
obj2 = MyClass()
print(MyClass.counter) # Чыгуу: 2
if __name__ == "__main__":
main()