Clojure-funktionaalinen ohjelmointi ja JVM-backend-kehitys · Oppitunti

Javan kutsuminen Clojuresta

Tutustutte siihen, miten Java-metodeja kutsutaan, kenttiä käytetään ja olioita luodaan suoraan Clojure-koodista.

Oppitunti 1/411 vaihetta

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.

Aloita maksutta

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

  1. Javan kutsuminen Clojuresta
  2. Java-rajapintojen toteuttaminen
  3. Java-kirjastojen ja työkalujen hyödyntäminen
  4. Java-kokoelmien ja taulukoiden käsittely
← Takaisin: Clojure-funktionaalinen ohjelmointi ja JVM-backend-kehitys