Javan kutsuminen Clojuresta
Tutustutte siihen, miten Java-metodeja kutsutaan, kenttiä käytetään ja olioita luodaan suoraan Clojure-koodista.
Javan kutsuminen Clojuresta on ilmainen Clojure-funktionaalinen ohjelmointi ja JVM-backend-kehitys-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. 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 Clojure-funktionaalinen ohjelmointi ja JVM-backend-kehitys-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Clojure-funktionaalinen ohjelmointi ja JVM-backend-kehitys-kurssilla on yhteensä 4 oppituntia.
Clojure ja Java: parhaat ystävät!
Clojure toimii Java-virtuaalikoneessa (JVM), joten se voi käyttää kaikkia Java-kirjastoja suoraan! Tätä kutsutaan nimellä Java Interop.
- Java-luokkien ja -metodien käyttäminen.
- Java-ekosysteemin laajan tarjonnan hyödyntäminen.
- Clojuren tehokkuuden yhdistäminen Javan vakauteen.
Tässä oppitunnissa näytetään, kuinka Java-koodia kutsutaan Clojuresta.
Java-olioiden luominen
Java-luokan käyttämiseksi siitä on usein luotava ilmentymä. Clojurella tämä onnistuu erityisellä syntaksilla.
- Käyttäkää muotoa
(new ClassName args)tai lyhyempää muotoa(ClassName. args). - Luokan nimen jäljessä oleva
.on kätevä tapa kutsua konstruktoria.
Esimerkki: (java.util.Date.) luo uuden Date-olion.
Esimerkki: uuden Date-olion luominen
Kokeilkaa uuden java.util.Date-olion luomista. Se edustaa nykyistä päivämäärää ja kellonaikaa.
(ns my-app.core
(:gen-class))
(defn -main
"Creates and prints a new Java Date object."
[& args]
(let [current-date (java.util.Date.)]
(println "Current date:" current-date)))Staattisten Java-metodien kutsuminen
Staattiset metodit kuuluvat itse luokalle eivätkä tietylle olion ilmentymälle. Niitä voidaan kutsua suoraan luokasta.
- Syntaksi:
(ClassName/staticMethodName args) /erottaa luokan nimen staattisen metodin nimestä.
Esimerkki: (java.lang.Math/random) kutsuu luokan Math staattista random-metodia.
Esimerkki: Math.random()
Haetaan satunnaisluku Javan staattisella Math/random-metodilla. Se palauttaa arvon double, joka on välillä 0.0 (mukaan lukien) ja 1.0 (pois lukien).
(ns my-app.core
(:gen-class))
(defn -main
"Generates and prints a random number using Java's Math/random."
[& args]
(let [rand-num (java.lang.Math/random)]
(println "Random number:" rand-num)))Java-instanssimetodien kutsuminen
Kun käytössänne on olio, voitte kutsua sen instanssimetodeja. Nämä metodit käsittelevät kyseisen olion tietoja.
- Syntaksi:
(.methodName instance args)tai(. instance methodName args). - Metodin nimen edessä oleva
.ilmaisee instanssimetodin kutsun.
Esimerkki: (.getTime my-date) kutsuu getTime-metodia my-date-oliolle.
Esittely: Date.getTime()
Luokaa Date-olio ja kutsukaa sitten sen getTime()-metodia. Tämä metodi palauttaa 1. tammikuuta 1970 kello 00:00:00 GMT:n jälkeen kuluneiden millisekuntien määrän.
(ns my-app.core
(:gen-class))
(defn -main
"Creates a Date object and calls its getTime() method."
[& args]
(let [current-date (java.util.Date.)
time-in-millis (.getTime current-date)]
(println "Current date:" current-date)
(println "Milliseconds since epoch:" time-in-millis)))Java-kenttien käyttäminen
Java-olioilla voi olla tietoja tallentavia kenttiä (muuttujia). Voitte käyttää näitä kenttiä suoraan Clojuresta.
- Syntaksi:
(.-fieldName instance)kentän arvon hakemiseen. - Staattisiin kenttiin pääsette käsiksi käyttämällä muotoa
(.-staticFieldName ClassName).
Esimerkki: (.-out System) käyttää luokan System staattista out-kenttää, joka on tyyppiä PrintStream.
Esittely: System.out-kenttä
java.lang.System-luokalla on staattinen out-niminen kenttä, joka on PrintStream-olio. Voitte käyttää sitä tulostamiseen konsoliin.
(ns my-app.core
(:gen-class))
(defn -main
"Accesses System.out and prints a message using its println method."
[& args]
(let [out-stream (.-out java.lang.System)]
(.println out-stream "Hello from System.out!")))Pikatarkistus: Java-yhteentoimivuus
Olette oppinut, miten Java-luokkien kanssa toimitaan. Mikä Clojure-lauseke käyttää ClassName.-lyhennettä java.io.File-olion luomiseen polulle "myfile.txt"?
Kertaus: Java-yhteentoimivuuden perusteet
Hienoa! Olette oppinut Clojuresta käsin tapahtuvan Java-käytön perusteet:
- Olioiden luominen: Käyttäkää muotoa
(ClassName. args)tai(new ClassName args). - Staattisten metodien kutsuminen: Käyttäkää muotoa
(ClassName/staticMethodName args). - Instanssimetodien kutsuminen: Käyttäkää muotoa
(.methodName instance args)tai(. instance methodName args). - Kenttien käyttäminen: Käyttäkää muotoa
(.-fieldName instance).
Tämän tehokkaan ominaisuuden ansiosta voitte hyödyntää koko Javan ekosysteemiä Clojure-projekteissanne. Seuraavaksi tutustutte Java-rajapintojen toteuttamiseen.
Opi Clojure 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
- 12
- Oppitunnit
- 48
Usein kysytyt kysymykset
Onko oppitunti ”Javan kutsuminen Clojuresta” ilmainen?
Kyllä – oppitunnin ”Javan kutsuminen Clojuresta” 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 Clojure-funktionaalinen ohjelmointi ja JVM-backend-kehitys-kurssin, päivitä CoddyKit PROhon. Clojure-funktionaalinen ohjelmointi ja JVM-backend-kehitys-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Javan kutsuminen Clojuresta”?
Tutustutte siihen, miten Java-metodeja kutsutaan, kenttiä käytetään ja olioita luodaan suoraan Clojure-koodista. Harjoittelet Clojure-funktionaalinen ohjelmointi ja JVM-backend-kehitys-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Clojure-funktionaalinen ohjelmointi ja JVM-backend-kehitys-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Clojure-funktionaalinen ohjelmointi ja JVM-backend-kehitys-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Javan kutsuminen Clojuresta”-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ä Clojure-funktionaalinen ohjelmointi ja JVM-backend-kehitys-oppitunnilla?
Kyllä. Jokainen Clojure-funktionaalinen ohjelmointi ja JVM-backend-kehitys-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
- Javan kutsuminen Clojuresta
- Java-rajapintojen toteuttaminen
- Java-kirjastojen ja työkalujen hyödyntäminen
- Java-kokoelmien ja taulukoiden käsittely