Staattiset ja instanssimetodit
Ymmärtäkää, milloin staattisia ja milloin instanssijäseniä kannattaa käyttää sekä miten kutsut eroavat toisistaan.
Staattiset ja instanssimetodit on ilmainen Java Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Java Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Java Academy-kurssilla on yhteensä 3 oppituntia.
Mitä static tarkoittaa?
Ajatus: Staattiset jäsenet kuuluvat luokalle. Instanssi-jäsenet kuuluvat kullekin oliolle.
Instanssijäsenet
Instanssimetodit käyttävät oliokohtaista tilaa. Kutsu niitä muuttujan kautta, esimerkiksi user.login().
Staattiset jäsenet
Staattiset metodit ja kentät ovat yhteisiä. Kutsu niitä luokan nimen kautta, esimerkiksi Math.max(a, b).
Staattisen ja instanssin valitseminen
Valitse instanssi, kun toiminta riippuu olion tilasta. Valitse static puhtaille apuohjelmille tai koko luokan yhteisille laskureille.
Tyypilliset sudenkuopat
Vältä instanssikenttien käyttämistä staattisessa metodissa. Älä käytä static-määrettä, kun tarvitaan oliokohtaista tilaa.
Esimerkki: static vs. instanssi
Suorita ohjelma nähdäksesi olioiden kautta tehdyt instanssikutsut ja luokan kautta tehdyt staattiset kutsut. Laskuri on yhteinen.
public class Main {
public static void main(String[] args) {
// Two Person objects hold different names
Person a = new Person("Ada");
Person b = new Person("Bob");
// Instance method: needs an object
a.greet();
b.greet();
// Static method/field: belong to class Utils
int s = Utils.add(7, 5); // pure function
System.out.println("sum = " + s);
Utils.bumpCounter();
Utils.bumpCounter();
System.out.println("counter = " + Utils.counter); // shared across all
}
static class Person {
private String name;
Person(String name) { this.name = name; }
void greet() {
System.out.println("Hello, " + name + "!");
}
}
static class Utils {
static int counter = 0; // static field (shared)
static int add(int x, int y) { // static method (pure)
return x + y;
}
static void bumpCounter() { // static method (mutates shared)
counter = counter + 1;
}
}
}
Ymmärryksen tarkistus
Pikatarkistus: Mikä kutsu toimii ilman, että yhtäkään oliota luodaan ensin?
Kertaus
Kertaus: Staattinen tarkoittaa luokkatasoista ja yhteistä. Instanssi tarkoittaa oliokohtaista toimintaa ja tilaa.
Opi Java tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 104
- Oppitunnit
- 374
Usein kysytyt kysymykset
Onko oppitunti ”Staattiset ja instanssimetodit” ilmainen?
Kyllä – oppitunnin ”Staattiset ja instanssimetodit” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Java Academy-kurssin, päivitä CoddyKit PROhon. Java Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Staattiset ja instanssimetodit”?
Ymmärtäkää, milloin staattisia ja milloin instanssijäseniä kannattaa käyttää sekä miten kutsut eroavat toisistaan. Harjoittelet Java Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Java Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Java Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/3.
Kuinka kauan ”Staattiset ja instanssimetodit”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Java Academy-oppitunnilla?
Kyllä. Jokainen Java Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Arvon välitys Javassa
- Staattiset ja instanssimetodit
- Metodien hajottaminen ja siisti koodi