Pääluokka ja -metodi
Main-luokka
Aiemmin työskentelimme Main-nimisen luokan kanssa, mutta miksi?
Main toimii sovelluksen aloituspisteenä, eli käynnistyspisteenä. Juuri main-metodissa suoritetaan kaikki aiemmin kirjoitettu koodi. Nimen Main tulee pysyä muuttumattomana, jotta kääntäjä tunnistaa sen aloituspisteeksi.
main-metodin sisällä voidaan kirjoittaa useita metodeja, mutta niiden tulee olla staattisia ja merkitty static-avainsanalla.
Static
Java-kielen static-avainsanalla määritellään jäsen (muuttuja tai metodi), joka kuuluu luokalle itselleen, ei luokan oliolle. Tässä yksinkertainen selitys:
-
Staattiset muuttujat: Kun muuttuja määritellään staattiseksi, on olemassa vain yksi kopio kyseisestä muuttujasta, jota kaikki luokan oliot jakavat. Tämä tarkoittaa, että kaikki muutokset muuttujaan näkyvät kaikissa luokan olioissa;
-
Staattiset metodit: Kun metodi määritellään staattiseksi, sitä voidaan kutsua suoraan luokan kautta ilman, että luokasta tarvitsee luoda oliota. Staattisia metodeja käytetään usein apumetodeina tai toiminnoissa, jotka eivät vaadi olion tietojen käsittelyä.
Tämän vuoksi pystyimme käyttämään Main-luokassa luotuja metodeja main-metodin sisällä. Meidän ei tarvinnut luoda olioa luokasta Main (vaikka se olisi mahdollista) kutsuaksemme sen metodeja.
Miksi main-metodin tulee olla staattinen Javassa?
main-metodi on Java-ohjelman aloituspiste, ja sen tulee olla staattinen, koska sen täytyy olla kutsuttavissa ilman luokan olion luomista. Kun Java Virtual Machine (JVM) alkaa suorittaa Java-ohjelmaa, se etsii main-metodia tietyllä allekirjoituksella (public static void main(String[] args)) aloittaakseen suorituksen. Koska main-metodia kutsutaan suoraan luokan kautta, sen täytyy olla staattinen, jotta JVM voi käyttää sitä ilman olion luomista.
1. Miksi luokkaa nimeltä Main käytetään ohjelmissamme?
2. Miksi main-metodi tulee määritellä staattiseksi Javassa
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain more about the difference between static and non-static methods?
Why does the JVM require the main method to have a specific signature?
Can you give examples of when to use static variables versus instance variables?
Awesome!
Completion rate improved to 2.63
Pääluokka ja -metodi
Pyyhkäise näyttääksesi valikon
Main-luokka
Aiemmin työskentelimme Main-nimisen luokan kanssa, mutta miksi?
Main toimii sovelluksen aloituspisteenä, eli käynnistyspisteenä. Juuri main-metodissa suoritetaan kaikki aiemmin kirjoitettu koodi. Nimen Main tulee pysyä muuttumattomana, jotta kääntäjä tunnistaa sen aloituspisteeksi.
main-metodin sisällä voidaan kirjoittaa useita metodeja, mutta niiden tulee olla staattisia ja merkitty static-avainsanalla.
Static
Java-kielen static-avainsanalla määritellään jäsen (muuttuja tai metodi), joka kuuluu luokalle itselleen, ei luokan oliolle. Tässä yksinkertainen selitys:
-
Staattiset muuttujat: Kun muuttuja määritellään staattiseksi, on olemassa vain yksi kopio kyseisestä muuttujasta, jota kaikki luokan oliot jakavat. Tämä tarkoittaa, että kaikki muutokset muuttujaan näkyvät kaikissa luokan olioissa;
-
Staattiset metodit: Kun metodi määritellään staattiseksi, sitä voidaan kutsua suoraan luokan kautta ilman, että luokasta tarvitsee luoda oliota. Staattisia metodeja käytetään usein apumetodeina tai toiminnoissa, jotka eivät vaadi olion tietojen käsittelyä.
Tämän vuoksi pystyimme käyttämään Main-luokassa luotuja metodeja main-metodin sisällä. Meidän ei tarvinnut luoda olioa luokasta Main (vaikka se olisi mahdollista) kutsuaksemme sen metodeja.
Miksi main-metodin tulee olla staattinen Javassa?
main-metodi on Java-ohjelman aloituspiste, ja sen tulee olla staattinen, koska sen täytyy olla kutsuttavissa ilman luokan olion luomista. Kun Java Virtual Machine (JVM) alkaa suorittaa Java-ohjelmaa, se etsii main-metodia tietyllä allekirjoituksella (public static void main(String[] args)) aloittaakseen suorituksen. Koska main-metodia kutsutaan suoraan luokan kautta, sen täytyy olla staattinen, jotta JVM voi käyttää sitä ilman olion luomista.
1. Miksi luokkaa nimeltä Main käytetään ohjelmissamme?
2. Miksi main-metodi tulee määritellä staattiseksi Javassa
Kiitos palautteestasi!