Jotta voisimme ymmärtää, kuinka luokat, muuttujat ja menetelmät toimivat Javassa, on tärkeää ymmärtää staattisen ja ei-staattisen käsitteet. Ei-staattiset jäsenet on linkitetty tiettyihin luokkainstanssiin, kun taas staattiset jäsenet on yhdistetty luokkaan. Tässä osiossa verrataan staattisia ja ei-staattisia Java-komponentteja korostaen niiden eroja ja mahdollisia sovelluksia.
java pgm
Liittyvä
Staattinen: Staattiset jäsenet (muuttujat ja menetelmät) liittyvät itse luokkaan eikä yksittäisiin esiintymiin.
Ei-staattinen: Ei-staattiset jäsenet ovat erityisiä luokan jokaiselle esiintymälle, koska ne on sidottu luokasta luotuihin objekteihin.
Muistin varaus
Staattinen: Staattisille jäsenille varataan muisti vain kerran, luokan latauksen yhteydessä. Ne jaetaan kaikkien luokan esiintymien kesken.
Ei-staattinen: Ei-staattisille jäsenille on varattu muisti erikseen jokaiselle luokan esiintymälle. Jokaisella objektilla on oma kopionsa ei-staattisista jäsenistä.
Pääsy
Staattinen: Staattisiin jäseniin pääsee suoraan käyttämällä luokan nimeä ja jäsenen nimeä (esim. Luokannimi.jäsennimi). Ne ovat käytettävissä missä tahansa ohjelman sisällä.
Ei-staattinen: Ei-staattisiin jäseniin päästään käyttämällä objektiviittausta, jota seuraa jäsenen nimi (esim. objectReference.memberName). Ne ovat erityisiä luokan tietylle esiintymälle.
java matematiikan luokka
Alustus
Staattinen: Staattiset jäsenet alustetaan, kun luokka ladataan muistiin, tyypillisesti ohjelman käynnistyksen yhteydessä. Alustus tapahtuu vain kerran.
Ei-staattinen: Ei-staattiset jäsenet alustetaan, kun luokan jokainen esiintymä luodaan, yleensä käyttämällä uutta avainsanaa. Alustus tapahtuu jokaiselle objektille erikseen.
Laajuus
Staattinen: Staattisilla jäsenillä on maailmanlaajuinen laajuus, ja niitä voidaan käyttää mistä tahansa ohjelman sisällä, jopa luomatta luokan esiintymää.
Ei-staattinen: Ei-staattisilla jäsenillä on paikallinen laajuus, ja niitä voidaan käyttää vain luokan esiintymän kautta. Niitä ei voi käyttää luomatta objektia.
css tasaus kuvat
Pääsy jäsenille
Staattinen: Staattiset jäsenet voivat käyttää vain muita saman luokan staattisia jäseniä. He eivät voi käyttää ei-staattisia jäseniä suoraan.
Ei-staattinen: Ei-staattiset jäsenet voivat käyttää sekä staattisia että ei-staattisia jäseniä saman luokan sisällä. Heillä on suora yhteys kaikkiin jäseniin.
Käyttö
Staattinen: Staattisia jäseniä käytetään yleisesti hyödyllisyysmenetelmille, vakioille tai muuttujille, jotka eivät ole erityisiä yksittäisille esiintymille. Esimerkiksi matemaattisia funktioita sisältävä matemaattinen luokka.
multipleksointi
Ei-staattinen: Ei-staattisia jäseniä käytetään ilmentymäkohtaiseen toimintaan, koska ne sisältävät kullekin objektille ominaisia tietoja. Esimerkiksi ilmentymämuuttujat, jotka tallentavat yksilölliset arvot kullekin objektille.
Muistin tehokkuus
Staattinen: Staattiset jäsenet kuluttavat muistia vain kerran riippumatta luotujen esiintymien määrästä. Ne voivat olla muistitehokkaita, kun samat tiedot on jaettava kaikkien objektien kesken.