Java funktionaalisessa ohjelmoinnissa
Sundström, Jarno (2021)
Sundström, Jarno
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2021111920673
https://urn.fi/URN:NBN:fi:amk-2021111920673
Tiivistelmä
Tämän työn tavoitteena on käsitellä funktionaalista ohjelmointia Java-ohjelmoijan näkökulmasta. Työssä käsitellään Javan funktionaalisia piirteitä sekä sitä, miten niitä voi hyödyntää. Tavoitteena on myös selvittää, miten nämä piirteet kulkevat rinnakkain olio-ohjelmoinnin yhteydessä. Työn toisena tavoitteena on, että olio-ohjelmoija saa hyvää ymmärrystä, ohjeita sekä informaatiota siihen, kuinka hyödyntää Javan funktionaalisia piirteitä.
Työssä käydään aluksi läpi funktionaalisen ohjelmoinnin tärkeimmät ominaisuudet ja säännöt kuten lambda-lauseke, datan muuttumattomuus, funktiot ensimmäisen luokan kansalaisina sekä rekursio. Myöhemmin työssä käsitellään Java 8:n mukana tulleita funktionaalisia rajapintoja, niiden metodeja sekä sitä, kuinka niitä voidaan hyödyntää sekä teoriassa että esimerkkien avulla. Lisäksi työssä käsitellään streamit ja niiden yhteydessä käytetyt metodit map(), filter() ja reduce().
Viimeisenä toteutetaan ohjelma hyödyntäen työssä läpikäytyjä tekniikoita ja todetaan, mitä etuja funktionaalisesta ohjelmointityylistä on verrattuna perinteiseen olio-ohjelmointiin. Todetaan, että Javalla pystytään toteuttamaan funktionaalista ohjelmointia, vaikka kyseessä ei ole puhtaasti funktionaalinen kieli.
Työssä käydään aluksi läpi funktionaalisen ohjelmoinnin tärkeimmät ominaisuudet ja säännöt kuten lambda-lauseke, datan muuttumattomuus, funktiot ensimmäisen luokan kansalaisina sekä rekursio. Myöhemmin työssä käsitellään Java 8:n mukana tulleita funktionaalisia rajapintoja, niiden metodeja sekä sitä, kuinka niitä voidaan hyödyntää sekä teoriassa että esimerkkien avulla. Lisäksi työssä käsitellään streamit ja niiden yhteydessä käytetyt metodit map(), filter() ja reduce().
Viimeisenä toteutetaan ohjelma hyödyntäen työssä läpikäytyjä tekniikoita ja todetaan, mitä etuja funktionaalisesta ohjelmointityylistä on verrattuna perinteiseen olio-ohjelmointiin. Todetaan, että Javalla pystytään toteuttamaan funktionaalista ohjelmointia, vaikka kyseessä ei ole puhtaasti funktionaalinen kieli.
