Да си припомним: какво са класовете и обектите?



страница49/84
Дата03.01.2022
Размер0.54 Mb.
#112941
ТипПрограма
1   ...   45   46   47   48   49   50   51   52   ...   84
Класове
Свързани:
Изпитна тема1, Изпитна тема2


Модификация на стойностите на статичните полета

Както вече стана дума по-горе, статичните променливи на класа, са споделени от всички обекти и не принадлежат на нито един обект от класа. Съответно, това дава възможност, всеки един от обектите на класа да променя стойностите на статичните полета, като по този начин останалите обекти ще могат да "видят" модифицираната стойност.

Ето защо, например, за да отчетем броя на създадените обекти от клас Dog, е удобно да използваме статично поле, което увеличаваме с единица, при всяко извикване на конструктора на класа, т.е. всеки път, когато създа­ва­ме обект от нашия клас:

public Dog(string name, int age)

{

this.name = name;



this.age = age;

 

// Modifying the static counter in the constructor



Dog.dogCount += 1;

}


Тъй като осъществяваме достъп до статично поле на класа Dog от него самия, можем да си спестим уточняването на името на класа и да ползваме следния код за достъп до полето dogCount:

public Dog(string name, int age)

{

this.name = name;



this.age = age;

 

// Modifying the static counter in the constructor



dogCount += 1;

}


За препоръчване е, разбира се, първият начин, при който е очевидно, че полето е статично в класа Dog. При него кодът е по-лесно четим.

Съответно, за да проверим дали това, което написахме е вярно, ще създадем няколко обекта от нашия клас Dog и ще отпечатаме броя им. Това ще стане по следния начин:



public static void Main()

{

Dog dog1 = new Dog("Karaman", 1);



Dog dog2 = new Dog("Bobi", 2);

Dog dog3 = new Dog("Sharo", 3);

 

// Access to the static variable



Console.WriteLine("Dog count is now " + Dog.dogCount);

}


Съответно изходът от изпълнението на примера е:

Dog count is now 3

Константи (constants)

Преди да приключим с темата за статичните полета, трябва да се запознаем с един по-особен вид статични полета.

По подобие на константите от математиката, в C#, могат да се създадат специални полета на класа, наречени константи. Декларирани и инициализирани веднъж константите, винаги притежават една и съща стойност за всички обекти от даден тип.

В C# константите биват два вида:

1.  Константи, чиято стойност се извлича по време на компилация на програ­мата (compile-time константи).

2.  Константи, чиято стойност се извлича по време на изпълнение на програ­мата (run-time константи).





Сподели с приятели:
1   ...   45   46   47   48   49   50   51   52   ...   84




©obuch.info 2024
отнасят до администрацията

    Начална страница