Am citit despre static, dar nu înțeleg până la capăt principiul său de lucru și ce folosire este plină. Uneori, codul necesită (de exemplu, utilizând enum) utilizarea unor variabile sau metode statice. De ce codul necesită, în general, o statică? Pentru a face mai ușoară scrierea PageOne.setName (). Și de ce, când ne adresăm la statică, tot ceea ce îi atinge, se transformă și în statică? Înțeleg că toate elementele cu acest postscript ocupă doar un loc în memorie și în viitor se utilizează numai, dar nu înțeleg acest moment. De ce atunci nu toate metodele și variabilele fac statice? Mulțumesc.
De ce codul necesită, în general, o statică?
- Pentru a apela o metodă sau un câmp static, nu este necesar să instanțiați clasa.
- Constantele pot fi doar statice.
- Valorile fișierelor statice se întrepătrund între toate instanțele.
- Importul static reduce scrierea codului.
- Cu ajutorul staticilor, este mai ușor să organizați accesul centralizat la funcționalitatea necesară.
- Contextul static este utilizat în principal în așa-numitele ajutoare.
De ce atunci nu toate metodele și variabilele fac statice?
Deoarece conceptele de bază ale OOP presupun conștientizarea faptului că obiectele fundamentale diferite din natură nu pot schimba proprietățile sau nu pot controla comportamentul celuilalt. Și obiectele conexe ar trebui să poată stoca "secrete". Utilizarea fără grijă a unui context public static poate duce la consecințe triste.
Un exemplu trivial: o greșeală obișnuită a tuturor automatizatorilor novici care doresc să paraleze testele lor cu un șofer static de siguranță.
- Contextul static este utilizat în principal în așa-numitele ajutoare.
Vorbind despre Helper, imagina module, face viața mai ușoară pentru a automatiza procesul: DateTimeUtils, CurrencyUtils, EmailUtils, StringUtils, ReflectionUtils, PropertiesUtils, XMLUtils, DataProviderUtils, ReportUtils etc. Toate acele lucruri care pot fi efectiv utilizate în diferite părți ale aplicației și din punct de vedere tehnic nu necesită crearea de entități suplimentare. Împachetarea API-urilor brute ale unor biblioteci gata făcute și formarea unui fel de punct de intrare unic public, vă ușurează să dezvoltați atât cadrul ca întreg, cât și partea de domeniu.
static este definit la etapa de compilare, astfel încât în cod le puteți îndrepta mereu îndrăzneț și nu aveți nevoie să creați o instanță a clasei. trebuie să înțelegeți cum funcționează codul în Java
Da, înțeleg, doar că întotdeauna am crezut că este rău să folosesc statica peste tot. De exemplu, trebuie să folosesc adnotările @BeforeClass și @AfterClass. iar metodele asociate cu ele obligă să facă totul în jurul staticii (și metodele în sine și tot ce există în ele). Și chiar dacă nu înțeleg cum va afecta în viitor activitatea Cadrului.
kaneshno rău, totul depinde de sarcina de unde aveți nevoie de dinamică, unde este statica