Proměnná třídy - Class variable
v objektově orientované programování s třídy, a proměnná třídy je jakýkoli proměnná deklarováno s statický
modifikátor, jehož jediná kopie existuje, bez ohledu na to, kolik instance třídy existují.[1][2][3][4][5] Všimněte si, že v Javě se výrazy „pole“ a „proměnná“ používají zaměnitelně pro členské proměnné.
Proměnná třídy není proměnná instance. Je to speciální typ atribut třídy (nebo vlastnost třídy, pole nebo datový člen). Stejná dichotomie mezi instance a třída členové platí pro metody („členské funkce“); třída může mít obojí instance metody a třídní metody.
Statické členské proměnné a statické členské funkce
V některých jazycích jsou proměnné třídy a metody tříd buď staticky vyřešeny, nikoli prostřednictvím dynamické odesílání nebo jejich paměť staticky přiděleno v době kompilace (jednou za celou třídu, jako statické proměnné ), není dynamicky přidělován za běhu (při každém vytvoření objektu). V ostatních případech je však jeden nebo oba dynamické. Například pokud lze třídy dynamicky definovat (za běhu), jsou proměnné třídy těchto tříd přiděleny dynamicky, když je třída definována, a v některých jazycích jsou metody třídy odesílány také dynamicky.
V některých jazycích tedy statická proměnná člena nebo statická členská funkce se používají synonymně s nebo místo „proměnné třídy“ nebo „funkce třídy“, ale nejsou synonymní napříč jazyky. Tyto termíny se běžně používají v Jáva, C# [5] , a C ++, kde jsou proměnné třídy a metody třídy deklarovány pomocí statický
klíčové slovo, a označován jako statické členské proměnné nebo statické členské funkce.
Příklad
1 struktur Žádost { 2 3 statický int počet; 4 int číslo; 5 6 Žádost() { 7 číslo = počet; // upraví proměnnou instance „this-> number“ 8 ++počet; // upraví proměnnou třídy „Request :: count“ 9 }10 11 };12 13 int Žádost::počet = 0;
V tomto příkladu C ++ proměnná třídy Žádost :: počet
je zvýšeno při každém hovoru na konstruktor, aby Žádost :: počet
vždy obsahuje počet vytvořených požadavků a každému novému objektu požadavku je přiděleno číslo
v postupném pořadí. Od té doby počet
je proměnná třídy, existuje pouze jeden objekt Žádost :: počet
; na rozdíl od toho každý objekt požadavku obsahuje své vlastní odlišné číslo
pole.
Všimněte si také, že proměnná Žádost :: počet
je inicializován pouze jednou.
Poznámky
- ^ "Výukový program Java, proměnné". Citováno 2010-10-21.
- ^ „Výukový program Java, porozumění instanci a členům třídy“. Citováno 2010-10-21.
- ^ "Referenční příručka jazyka Python, složené příkazy". Citováno 2010-10-21.
- ^ „Objektivní-C runtime reference“. Vývojář Apple. Citováno 1. dubna 2018.
- ^ A b "Proměnné třídy v C #". Syntaxdb. Citováno 1. dubna 2018.