Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Osnove programiranja (v Javi) 25. Oktober 2005 Marko Štamcar Gradivo: Viljan Mahnič: Prosojnice Programiranje 1 Nekaj o programiranju Kaj je program? Zaporedje ukazov, ki naj jih izvede računalnik Zgodovina programskih jezikov 1. generacija: strojni jezik 01101001 2. generacija: zbirni jezik (assembler) 3. generacija: visokonivojski jeziki (Java, Pascal, C, C++,…) 4. generacija: nepostopkovni jezik (opisni jezik) – npr. MySQL Od izvorne kode do programa Izvorna koda Prevajalnik (niz ukazov, zapisanih v programskem jeziku) (compiler) primer.java javac primer.java Preveden (izvedljiv) program primer.class Opombe glede prevajanja Program bo deloval samo v okolju, v katerem je bil preveden. Primer: Če nek program, napisan v jeziku C, prevedemo v Windowsih na procesorju x86, bo deloval samo v tem okolju in ne v Linuxu ter verjetno tudi ne v Windowsih na procesorju tipa ia64 Programski jezik Java Objektni programski jezik 3. generacije Sun Microsystems Začetek razvoja 1990, prva uradna verzija leta 1996 Trenutna različica: Java 2 Platform Standard Edition 5.0 (1.5.0) Značilnosti Jave Objektno usmerjen programski jezik Platformna neodvisnost (zaradi uporabe vmesne kode Javanske aplikacije tečejo na vseh mogočih platformah: x86, ia64, alpha, ARM, MIPS,…) Zaradi svojih lastnosti je primerna tudi za razvoj spletnih aplikacij (t.i. Java appleti) Primer: http://www.dataway.ch/~bennet/java/3DClock.html Kaj je objektno usmerjeno programiranje? Programske komponente so objekti, vsi objekti iste vrste tvorijo razred objekt: modra objekt: KONKRETNO zelena Razred: Barve ABSTRAKTNO objekt: rdeča Združuje vse barve Objekti Atributi (attributes) Metode (methods) (lastnosti in trenutno stanje objekta) (operacije, ki jih objekt lahko izvaja) Primer: Objekt AudiA4 iz razreda Avtomobili Primer: Objekt Marko iz razreda Ljudje Vsi objekti, ki spadajo v isti razred, imajo enake atribute, vendar različne vrednosti le-teh. Še enkrat: razlika med razredom in objektom Konkretno abstraktno Razred je abstrakten opis atributov in metod Objekt je konkreten primerek (ang. instance) nekega razreda s točno določenimi atributi in metodami Namestitev in priprava razvojnega okolja Java SDK za delo http://java.sun.com/j2se/1.5.0/download.jsp Prenesemo in namestimo: Windows Platform - J2SE(TM) Development Kit 5.0 Update 5 Windows Offline Installation, Multi-language Nastavitev pred začetkom uporabe Menu Start Control Panel System jeziček Advanced gumb Environment Variables pod User variables z gumbom New dodamo: name: PATH, value: pot do mape (C:\Program Files\Java\) jre1.5.0_05\bin name: CLASSPATH, value: . Urejanje programov Program Notepad (beležnica): Menu Start Zaženi/Run notepad enter Pogosti znaki, ki jih bomo potrebovali: [ ] { } ‘ “ ; ( ) Prevajanje programov: Menu Start Zaženi/Run cmd/command enter cd “c:\pot\do\nase\mape\z\izvorno\kodo” javac program.java java program Naš prvi programček Izvorna koda programa Datoteko shranimo kot “Vaja1.java” Razlaga izvorne kode Java razlikuje med vaja1 in Vaja1 public class Vaja1 public static void main (String[] args) System.out.println(“Juhej! Deluje!”); razred objekt metoda Zaviti oklepaji - { }: Označujejo začetek in konec posameznih blokov (npr. oklepajo izvorno kodo posameznega razreda in metode) Vedno nastopajo v parih Urejanje kode Podrejene bloke zamaknemo v desno za en tabulator (tipka TAB) Primer: predsednik župan državljan Komentiranje kode: nek ukaz // od tu naprej komentar bločni komentar: /* komentar se lahko nadaljuje v več vrsticah */ Naše osnovno ogrodje Z njim lahko pišemo enostavne programčke public class ImePrograma { public static void main (String[] args) { // tukaj pridejo stavki/ukazi } } Izvajanje Javanskih aplikacij Ukaz java imedatoteke brez pripone .class aplikacija (oz. njena “vmesna koda”) se izvede v okolju Java Virtual Machine Napake sintaktične (jih odkrije prevajalnik) logične (se pojavijo med izvajanjem) Podatkovni tipi v Javi Vsak podatek lahko shranimo v točno določeno vrsto podatkovnega tipa Tip podatka določa: zalogo vrednosti, ki jo lahko podatek zavzame operacije, ki jih lahko izvajamo nad podatkom Podatkovni tipi v Javi numerični tipi: za cela števila: za realna števila: float double za logične vrednosti: boolean byte (-128 do 127) (8 bitov – 28) short (-32768 do 32767) (216) int (-2 147 483 648 do 2 147 483 647) (232) long (-264 do 264) true (1) false (0) za znake: char (npr. ‘a’) Računanje s celimi in realnimi števili Operacije: + * / (pri celih številih je to celoštevilsko deljenje) % (samo za cela števila: ostanek) Pretvorbe med številskimi tipi Pri operacijah nad dvema različnima številskima tipoma je rezultat vrste višjega številskega tipa float + int = float Pretvorba v nižji tip – type casting – na zahtevo programerja Logične operacije podatkovnega tipa boolean Konjunkcija (in/AND) && Disjunkcija (ali/OR) || Ekskluzivna disjunkcija (eks. ali/XOR) Negacija (NOT) ! Ko med seboj primerjamo dve številski vrednosti, dobimo kot odgovor vrednost tipa boolean: 5 < 7 (true) 7 < 5 (false) 7 > 5 (true) 5 > 7 (false) 5 <= 5 (true) 7 <= 5 (false) 7 >= 3 (true) 3 >= 7 (false) 5 == 5 (true) 5 == 6 (false) 8 != 6 (true) 5 != 5 (false) Spremenljivke Pomnilniški naslovi, kamor shranjujemo vrednosti (podatke) Dekleracija spremenljivk Dekleracija se izvrši samo enkrat. Ob dekleraciji navedemo: Tip spremenljivke Ime spremenljivke Vrednost (ni obvezno) Podpičje int Stevilo = 15; Prirejanje vrednosti spremenljivkam Ob dekleraciji: Tip Ime = Izraz*; Po dekleraciji (kasneje): Ime = Izraz*; Izraz je lahko: Število / znak / besedni niz Vsota dveh števil / konkatenacija dveh besednih nizov… Tip izraza se mora ujemati s tipom spremenljivke Primeri numeričnih tipov in dekleracij spremenljivk z numeričnimi tipi int a = 5; short b = 10; int rezultat; rezultat = a * b; float rezultat2; rezultat2 = a * b; short rezultat3; rezultat3 = (short) a * b //50 tipa int //50.0 tipa float //50 tipa short