Osnove programiranja (v Javi)

Download Report

Transcript Osnove programiranja (v Javi)

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