43.164 pregleda

Uvod u Java programiranje – prvi dio

19

Java, Java, Java… Što je to Java? Zašto me ta slika šalice kave stalno prati gdje god pođem? Koja je uopće fora u tome i zašto bi bilo dobro izdvojiti malo slobodnog vremena kako bi naučili neki novi programski jezik, pročitajte u tekstu koji slijedi.

Namjena ovog kratkog serijala je približiti Javu krajnjim korisnicima koji žele naučiti stvar ili dvije o programiranju u ovom programskom jeziku, a nemaju vremena ili jednostavno ne znaju odakle početi.

Pa krenimo…

java

 

Što je to Java?

Java je objektno orijentiran i univerzalan programski jezik, što znači da ju možete pisati i pokretati na bilo kojem operativnom sustavu, a kod pišete u skladu s objektno orijentiranom paradigmom.

Što je to objektno orijentiran jezik i objektno orijentirana paradigma?

Ukratko, paradigma obuhvaća enkapsulaciju (zaštita ili skrivanje lokalnih varijabli klasa), generalizaciju (određivanje nekih zajedničkih, generalnih svojstava), nasljeđivanje (iskorištavanje postojećih klasa) i polimorfizam.

Sve elemente paradigme ćemo upoznati s vremenom i još bolje objasniti primjerima.

 

Što mi sve treba za pisanje Java programskog koda?

Da biste programirali u Javi, potrebni su vam JDK ( Java Development Kit ) za pisanje programskog koda, i JRE ( Java Runtime Environment ) za pokretanje i provjeru napisanog koda, a oba paketa dolaze uz neki od standardnih IDE (Integrated Development Environment) alata kao što su Eclipse, NetBeans itd.

Ako ne želite pisati programski kod već samo pokretati i koristiti Java aplikacije, dovoljan Vam je samo JRE koji možete preuzeti sa službenih stranica ili iz repozitorija Vaše distribucije.

Mala napomena: JDK sam po sebi već sadrži JRE, a ako želite koristiti samo JRE bez JDK-a, morat ćete ga zasebno instalirati i konfigurirati bez JDK paketa.

Za zasebnu instalaciju JDK i JRE paketa na Debian operativnom sustavu, koristite sljedeću naredbu:

sudo aptitude install openjdk-7-jdk openjdk-7-jre

Dok za Arch Linux operativni sustav možete koristiti sljedeću naredbu:

sudo pacman -S jdk7-openjdk jre7-openjdk

Za IDE ćemo se odlučiti za Eclipse razvojni alat, a njega možemo instalirati sljedećim naredbama:

sudo aptitude install eclipse
sudo pacman -S eclipse

Na Arch Linux operativnom sustavu se nalazi najnovija verzija Eclipse razvojnog alata verzije 4.3 (kodnog imena Kepler), dok Debian ima nešto stariju, 3.8 verziju.

Primjetite da koristimo slobodne (open source), a ne službene JDK i JRE pakete, jer unatoč svemu, Java je slobodan software. Tvrtka Oracle TM je ipak uspjela postaviti neka ograničenja zbog kojih su napisane alternative otvorenog koda koje rade jednako dobro kao i službeni paketi.

 

Korištenje Eclipse razvojnog alata

Pri prvom pokretanju Eclipse će vas pitat gdje želite spremati Vaše projekte. Jednostavno odaberite najidealniju lokaciju na Vašem računalu i kliknite gumb ‘U redu‘.

Opcionalno, možete označiti da Vam je ta lokacija uvijek odabrana za sve buduće projekte, u suprotnom će Vas Eclipse uvijek pitati gdje želite spremati nove projekte.

slika01

Ako Vam se slučajno pojavi početna, uvodna stranica (welcome screen) pri prvom pokretanju, jednostavno ju ugasite pritiskom na gumb ‘X’ u gornjem lijevom uglu.

Nakon toga, u izborniku idete na Window – Open Perspective – Java, i nakon toga će Vas dočekati alat spreman za pisanje programskog koda kao na slici.

slika02

 

Moj prvi projekt

Da biste počeli s programiranjem, morate napraviti projekt u koji ćete pisati, spremati i pokretati programski kod.

To možete napraviti tako da u izborniku odete na File – New – Java Project, i nazovite projekt po volji, u našem slučaju projekt se zove MojPrviProjekt kao na slici.

slika03

Ostale opcije za sada ne morate dirati, samo kliknite na gumb ‘Finish‘.

Nakon toga, primijetit ćete da lijevo imate direktorij MojPrviProjekt s poddirektorijem src u njemu. U taj src poddirektorij će ići sav Vaš programski kod.

Da bi napravili početnu klasu u kojoj se nalazi main() metoda kao u programskom jeziku C i C++ koja se koristi kao početna točka odakle se počinje s izvršavanjem koda, napravimo sljedeće korake:

Prvo moramo napraviti pakete u koje ćemo smještati naše klase koje su sličnog sadržaja da ih sve imamo na jednom mjestu.

Desni klik miša na poddirektorij src – New – Package i dočekat će nas sljedeći scenarij (na slici) gdje nazovemo paket po želji i stisnemo gumb ‘Finish’.

slika04

Da bi kreirali našu početnu klasu s main() metodom, stisnemo desni klik miša na novokreirani paket – New – Class i dočekat će nas sljedeći scenarij (na slici) gdje nazovemo klasu po volji, npr. u našem slučaju MojaPrvaKlasa i obvezno označimo opciju public static void main(String[] arg) da nam se kreira main() metoda, te stisnemo gumb ‘Finish‘.

slika05

Nakon toga, dočekat će nas situacija kao na slici. Spremni smo za pisanje koda.

slika06

Napomena, ove komentare označene s //TODO… slobodno obrišete.

 

Tipovi podataka u Javi

Java razlikuje referentne i primitivne tipove podataka.

Primitivni tipovi podataka su najčešće preuzeti iz programskih jezika C i C++ (int, float, double, char, bool…), a referentni tipovi podataka su npr. Integer, BigDecimal, String… itd.

Primijetite razliku između malih i velikih slova kod tipova podataka. Referentni tipovi su klase (počinju velikim slovom) i kada ih koristimo, onda radimo s objektima tih klasa.

Moguća je pretvorba referentnih tipova podataka u primitivne i obrnuto, ali o tome ćemo malo kasnije uz odgovarajuće primjere.

 

Moj prvi Java programski kod

Da biste ispisali neki proizvoljan tekst, npr. ” Pozdrav LinuxZaSve svijete!“, programski kod je sljedeći:

System.out.println(“Pozdrav LinuxZaSve svijete!”);

Ne zaboravite znak ; (točka-zarez) na kraju svake linije koda, jer tako Java interpreter zna kada je kraj neke linije programskog koda. Sav proizvoljan tekst koji se ispisuje ide unutar dvostrukih navodnika.

Za unos proizvoljnog teksta s tipkovnice i ispisivanje istog, potrebno je napraviti par stvari.

Prvo je potrebno kreirati varijablu, tj. objekt tipa Scanner koji će nam služiti za unos podataka s tipkovnice:

Scanner unos = new Scanner(System.in);

Kada ste napisali prethodni dio programskog koda, ako Vam se nije pojavila linija import ispod linije za pakete (package), onda stisnite desni klik negdje na prazan dio – Source – Organize Imports, ili jednostavno kratica Shift+Ctrl+O.

Zatim moramo kreirati varijablu, tj. objekt tipa String koji će nam služiti za čuvanje našeg teksta koji unosimo s tipkovnice:

String mojProizvoljanTekst;

Nakon toga ide konačan dio gdje povezujemo te dvije stvari, tj. unosimo naš tekst s tipkovnice pomoću varijable, tj. objekta tipa Scanner, koju smo nazvali unos i pohranjujemo u varijablu, tj. objekt tipa String koju smo nazvali mojProizvoljanTekst.

mojProizvoljanTekst = unos.nextLine();

Napomena: gornji dio programskog koda vrijedi samo za unos teksta. Kako bismo, primjerice, unijeli cijele ili decimalne brojeve, umjesto nextLine() bi imali nextInt() ili nextBigDecimal().

Na kraju to sve lijepo ispišemo:

System.out.print(“Unesli smo sljedeći tekst: ” + mojProizvoljanTekst);

Kao što vidite, moguća je i konkatenacija stringova, tj. spajanje različitih linija teksta pomoću operatora ‘+’ u jednu smislenu liniju teksta.

Na kraju je još potrebno zatvoriti naš unos podataka jer se više neće koristiti u programu:

unos.close();

slika07

slika08

Java programe pokrećete tako da kliknete desni klik na klasu s main() metodom i odaberete Run As – Java Application, ili jednostavno kliknete na mali zeleni gumb play koji se nalazi na alatnoj traci pored ikone u obliku bube (inače gumb za debugging).

slika09

slika10

U idućim lekcijama ćemo detaljnije obradite klase i što je to zapravo objekt klase, te vidjeti kako to Java radi ispod haube i zbog čega se može pokretati na svim operativnim sustavima bio on Linux, Mac OS ili Windows.

 

Autor:os7een

VN:F [1.9.22_1171]
Rating: 4.7/5 (7 votes cast)
Uvod u Java programiranje - prvi dio, 4.7 out of 5 based on 7 ratings

19 komentara

  1. IntellijFan napisao:

    Umjesto Eclispe preporučam InteliJ Idea 13 community edition koji je open source. Od početka se treba služiti boljim alatom.

    • Vjekoslav napisao:

      Potpisujem. Meni nije bilo žao dati novce i za ultimate edition. Definitivno najbolji IDE s kojim sam imao prilike raditi u zadnjih nekoliko godina. Premda se ukusi razlikuju, savjetujem svakome da barem isproba IntellijIDEA.

  2. Ivo napisao:

    netbeans je bolji od eclipse alata, koliko god da je sporiji.
    imam malu zamjerku, što niste napisali što je jdk, a što openjdk?

    jvm ima dosta mana kao i java.

    • Z0K4 napisao:

      što niste napisali što je jdk, a što openjdk?
      “Primjetite da koristimo slobodne (open source), a ne službene JDK i JRE pakete…”

      jvm ima dosta mana kao i java.
      Na što točno misliš?

      Slažem se da je netbeans bolji od eclipsea, a po mome iskustvu je čak i brži. No slažem se s IntelliJFanom da je IntelliJ Idea Community Edition najbolji za Java development (ako se ne koristi neki framework tipa Spring).

    • Yann Bane napisao:

      “jvm ima dosta mana kao i java.”

      Skoro svaki alat ima mana. Dok ne konkretiziras i ne budes specifican, ovaj komentar je beskorisan.

      JVM je najbolji VM u svojoj klasi (no pun intended) jednostavno zbog desetljeca najboljih inzinjera koji su radili na njemu i optimizirali ga.

      On NIJE Java! Postoje mnogi drugi programski jezici koji se kompajliraju u JVM bytecode, poput Scale.

  3. Lutherus napisao:

    Java….grrrrrrrr….i hate java.

  4. Ivo napisao:

    ne radi dobro gc, spora je, nije kompatibilna sama sa sobom, kad se mixa 32 i 64 bitne verzije, tipa java 64 bitna, client 32 bitni, firefox i explorer 32 bitni, da vidite komedije.
    nesigurna, hrpa bugova.

    meni nije jasno zašto su išli raditi virtualnu mašinu?
    zašto nisu napravili native.

    ako netko kaže zbog toga da radi na svakom OS-u onda laže.

    kako to da c++, php i drugi jezici rade skoro na svakom OS-u, a nemaju virtualnu mašinu?

    znam nekad c++ nije bio standardiziran itd…

    ali java ima 1000 problema i mana.

    za sve probleme su dovoljni, c++(wx i qt za gui), php i pascal, recimo dobar IDE za pascal je lazarus koji radi na dosta platformi.

    • Z0K4 napisao:

      Zašto bi stavljao 64 bitnu javu na 32 bitnog klijenta? To je nemoguće, pokušavaš reći računalu da adresira memorijski prostor koji ne postoji!

      Zašto virtualna mašina a ne native? Zato da bi radilo na svakoj OS i hardware platformi. U pravu si da C++, C i ostali rade na svakom OS-u, ali ne iste izvršne datoteke. Odnosno ako neku datoteku s nastavkom .cpp iskompajliraš na Windowsima, exe koji dobiješ neće raditi na Linuxu, nego ćeš tu istu datoteku morati ponovno kompajlirati na Linuxu da bi i tamo radio. Kod JVM to ne moraš raditi… JVM je specifičan za pojedini OS i arhitekturu (x86, x64, sparc…) ali .jar ostaje isti, odnosno ono što spakiraš u .jar na Linuxu radi i pod Windowsima.

    • Vjekoslav napisao:

      Ako ćemo tako, onda možemo jednostavno svi programirati u C-u. To je razmišljanje Linusa, koji po svem ostalom pljuje, tako i po C++-u i Javi. Svi jezici i tehnologije imaju svoje mane i prednosti. Pa tako i jedan php koji se počeo jako brzo mjenjat iz verzije u verziju. Ako želiš dobre performanse, onda ćeš vrlo vjerojatno ić native sa C++-om, pa čak i na mobilne platforme, ali za to ti trebaju iskusni programeri, koje danas nije lagano naći. Meni je osobno Java ostavila pozitivan trag. Sviđa mi se i kao jezik i kao tehnologija. Community je isto odličan. Ali kad se sve zbroji, to su sve i dalje samo alati. Pravi je programer onaj koji će se prilagodit i znat izabrat pravi alat za određeni posao. Zato bi po meni današnji programeri trebali ostati fleksibilni i otvoreni prema novim tehnologijama. A takvih je nažalost malo. Primjer su C++ programeri koji pljuju po Javi, Javascript programeri koji pljuju po Dartu, Flash programeri koji pljuju po html5 i da dalje ne nabrajam… Kada se jednom utabore, ne žele učiti ništa novo.

    • marko V napisao:

      Ti si pomiješao ločniće. PHP radi na slicnom principu kao java. I PHP ima svoju zbirku klasa koja se koristi za izvršavanje skripti – ima neki svoj JRE.

      Sto se tice C++, tu je velika razlika. Java ima mogućnost prenosivosti da se program izradi na WINDOWSU a pokrene na WIN, LIN, OSX… putem VM. Niti C++ ne radi DMG file za OSX ako buildamo na win stroju.

      Javu ljudi mrze jer joj nisu dali šansu. Za mene je java na prvom mjestu, s time da su mjesta 2,3,4,5 prazna, pa onda tek c++, pascal…

      • Vjekoslav napisao:

        Nisam ja ništa pomješao. Samo sam rekao činjenicu da se php počeo vrtoglavo mjenjat u zadnje vrijeme. Na bolje ili na lošije, tema za neku drugu diskusiju. Za C++ sam napomenuo da će to raditi oni kojima su performanse kritične. Nigdje nisam spomenuo distribuciju izvršnih datoteka. Naravno da se razlikuje, ali to nije bila poanta. Poanta moje poruke je bila da ne postoji najbolji jezik i da su diskusije u tom smjeru skoro uvijek besmislene. Pročitaj do kraja i s razumijevanjem sljedeći put 😉

  5. Debian_XFCE napisao:

    Koja je to rezolucija na slici?

  6. Dado napisao:

    Kad će drugi dio ovog članka.??

    Ovo je moj prvi susret sa programiranjem, te s javom općenito, stoga bih volio naučiti više….npr kako izprogramirati Mali imenik ili tako nešto..

  7. Anonimac napisao:

    Pozdrav,

    pozdravljam ovaj tutorial i šaljem poruku podrške autoru.
    Ne razumijem čemu toliko buke oko toga koja je tehnologija odnosno programski jezik bolji. Autor je odlučio objasniti Javu kao programski jezik kako bi početnicima olakšao razumijevanje istog, a vi razgovarate o tome koji su programski jezici bolji i slično.
    Mislim da bi bilo bolje da dajete određene prijedloge za daljnje tutoriale ili ako već toliko pametujete napravite vlastite tutoriale za programske jezike koje vi njegujete i cijenite.

    Ovo nemojte shvatiti kao uvredu, ali isto tako imajte poštovanja prema različitim tehnologijama i programskim jezicima jer je, hvala Bogu, informatika branša u kojoj svatko može naći sebi svoje mjesto.

    Lijep pozdrav!

Ostavi komentar

© 2017 Linux Za Sve. | Impressum | Sadržaj je licenciran pod CC-SA-3.0 ako nije drugačije naznačeno.
Proudly designed by Theme Junkie.