71
Glava1 Uvod

Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera Rjesavanje problema Dizajn programa, implementacija i testiranje Objektno-orijentisani

  • View
    221

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

Glava1

Uvod

Page 2: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-2

Ciljevi kursa

• Objektno-orijentisani razvoj softvera

Rjesavanje problema

Dizajn programa, implementacija i testiranje

Objektno-orijentisani koncepti

• klase

• objekti

• Inkapsulacija (encapsulation)

• nasljedjivanje (inheritance)

• polimorfizam (polymorphism)

GUI (Graphical User Interfaces)

Programski jezik Java

Page 3: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-3

Uvod

• Na pocetku moramo izloziti osnove rada kompjutera

• U Glavi izlazemo:

komponente kompjutera kako ove komponente medjusobno reaguju kako kompjuter cuva i obradjuje informaciju kompjuterske mreze Internet i World Wide Web programiranje i programski jezici uvod u programski jezik Java pregled objektno-orijentisanih koncepta

Page 4: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-4

Pregled

Kompjuterska obrada

Hardverske komponente

Mreze

Programski jezik Java

Razvoj programa

Objektno-Orijenisano Programiranje

Page 5: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-5

Hardver i softver

• Hardver Fizicki, dodirljivi dijelovi kompjutera (tastatura) keyboard, monitor, diskovi, zice, cipovi, itd.

• Softver programi i podaci program je niz instrukcija

• Kompjuter treba oba, hardver i softver

• Svaki je u sustini beskoristan bez drugog

Page 6: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-6

CPU i glavna memorija

CentralProcessing

Unit

MainMemory

Cip koji izvrsava komande programa

Intel Pentium 4Sun ultraSPARC III

Primarna oblast za stavljanje

programa i podataka koji su

u aktivnoj upotrebi

Sinonim sa RAM

Page 7: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-7

Jedinice sekundarne memorije

CentralProcessing

Unit

MainMemory

Floppy Disk

Hard Disk

Na sekundarnim jedinicama memorije podaci se cuvaju na duze vrijeme

Informacija se prebacuje izmedju glavne i sekundarne memorije kada je to potrebno

Hard diskoviFloppy diskZIP disksWritable CDsWritable DVDsTrake (Tapes)

Page 8: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-8

Input/Output jedinice

CentralProcessing

Unit

MainMemory

Floppy Disk

Hard Disk

Monitor

Keyboard

I/O jedinice ubrzavajukorisnicku interakciju

Monitor screenKeyboardMouseJoystickBar code scannerTouch screen

Page 9: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-9

Kategorije softvera

• Operacioni sistem kontrola svih aktivnosti masine obezbjedjuje interfejs korisnika i racunara upravlja resursima kao sto su CPU i memorija Windows XP, Unix, Linux, Mac OS

• Aplikacioni programi genericki termin za svaku drugu vrstu softvera Procesiranje teksta, sistemi kontrole raketa, igre

• Operacioni sistemi i aplikacioni programi cesto imaju Graphical User Interface (GUI)

Page 10: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-10

Analogno i digitalno

• Postoje dva osnovna nacina za cuvanje i upravljanje podacima:

• Analogno neprekidan, direktno proporcionalan predstavljenim

podacima muzika na plocama – igla ide po rubovima rupa cije su

dimenzije direktno proporcionalne voltazi koja se salje na zvucnik

• Digitalno informacija je usitnjena u dijelove, a svaki se dio

predstavlja posebno Muzika na kompakt disku - disk cuva brojeve koji

predstavljaju specificne nivoe voltaze samplirane u specificnom intervalu vremena

Page 11: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-11

Digitalna informacija

• Racunari cuvaju sve informacije digitalno: brojeve tekst grafiku i slike video audio programske instrukcije (komande)

• U neku ruku, svaka informacija je digitalizovana – razbijena u manje komade i predstavljena pomocu brojeva

Page 12: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-12

Digitalno predstavljanje teksta

• Na primjer, svaki karakter se cuva kao broj, ukljucujuci razmake, cifre, i punktuaciju

• Odgovarajuca velika i mala slova su posebni karakteri

H i , H e a t h e r .

72 105 44 32 72 101 97 116 104 101 114 46

Page 13: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-13

Binarni brojevi

• Nakon sto je informacija digitalizovana, predstavlja se i cuva u memoriji pomocu binarnog brojnog sistema

• Binarna cifra (0 ili 1) naziva se bit

• Uredjaji koji cuvaju i premjestaju informaciju su jeftiniji i pouzdaniji kada predstavljaju samo dva stanja

• Jedan bit moze predstaviti dva moguca stanja, kao sto je baterija koja je upaljena (1) ili ugasena (0)

• Permutacije bita koriste se za cuvanje vrijednosti

Page 14: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-14

Permutacije bitova

1 bit

01

2 bita

00011011

3 bita

000001010011100101110111

4 bita

00000001001000110100010101100111

10001001101010111100110111101111

Svaki dodatni bit duplira broj mogucih permutacija

Page 15: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-15

Permutacije bitova

• Svaka permutacija predstavlja poseban dogadjaj

• Postoji 2N permutacija od N bitova

• Dakle, N bitova su potrebni za predstavljanje 2N jedinstvenih dogadjaja

21 = 2 dogadjaja

22 = 4 dogadjaja

23 = 8 dogadjaja

24 = 16 dogadjaja

25 = 32 dogadjaja

1 bit ?

2 bita ?

3 bita ?

4 bita ?

5 bita ?

Koliko dogadjaja moze

biti predstavljeno sa

Page 16: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-16

Pregled

Racunarska obrada

Hardverske komponente

Mreze

Programski jezik Java

Razvoj programa

Objektno-Orientisano Programiranje

Page 17: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-17

Specifikacija racunara

• Razmotrimo sljedecu specifikaciju personalnog racunara:

2.8 GHz Pentium 4 Processor 512 MB RAM 80 GB Hard Disk 48x CD-RW / DVD-ROM Combo Drive 17” Video Display with 1280 x 1024 resolution 56 Kb/s Modem

• Sta to znaci?

Page 18: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-18

Memorija

Glavna (unutrasnja) memorija je podijeljena u vise memorijskih lokacija (celija)

927892799280928192829283928492859286

Svaka celija memorije ima numericku adresu, koja je identifikuje na jedinstven nacin

Page 19: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-19

Cuvanje informacije

927892799280928192829283928492859286

Velike vrijednosti se cuvajuU uzastopnim celijskim Memorijskim lokacijama

1001101010011010Svaka memorijska celija cuva jedan broj bitova (obicno 8 bitova, ili jedan byte)

Page 20: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-20

Memorija i kapacitet

• Svaka memorijska jedinica daje informaciju o broju bita koje sadrzi

• Kapaciteti se predstavljaju u raznim jedinicama:

KB 210 = 1024

MB 220 (preko 1 milion)

GB 230 (preko 1 bilion)

TB 240 (preko 1 trilion)

Jedinica Simbol Broj byte-ova

kilobyte

megabyte

gigabyte

terabyte

Page 21: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-21

Memorija

• Glavna memorija je volatilna - cuvana informacija se gubi ako se iskljuci elektricna struja

• Jedinice sekundarne memorije su nevolatilne

• Glavna memorija i diskovi su jedinice sa direktnim pristupom – informacija moze biti dobivena direktno

• Termini direct access i random access cesto se koriste kao sinonimi

• Magnetska traka je jedinica sa sekvencijalnim pristupom posto su podaci aranzirani u linearnom poretku - mora se ici redom da bi se dobila trazena informacija

Page 22: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-22

RAM i ROM

• RAM - Random Access Memory (direktan pristup)

• ROM - Read-Only Memory

• Termini RAM i glavna memorija su u osnovi sinonimi

• ROM moze biti skup cipova, ili posebna jedinica, kao sto je CD ROM

• Oba RAM i ROM su jedinice sa random (direktnim) pristupom!

• RAM uglavnom mozemo smatrati Read-Write Memorijom

Page 23: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-23

Kompakt diskovi

• CD-ROM je prenosiva read-only memorija

• Mikroskopski pit (rupa, progorelina) na CD predstavlja binarno 1 a glatka povrsina predstavllja binarno 0

• Laser malog intenziteta jako se reflektuje od glatke povrsine i slabo od progorele

• CD-Recordable (CD-R) drajv moze biti koristen za pisanje informacije na CD jednom

• CD-Rewritable (CD-RW) moze biti brisan i reupotrebljavan

• Brzina CD drajva indicira koliko brzo (max) informacija moze biti pisana i citana sa CD

Page 24: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-24

DVD

• DVD je istih dimenzija kao i CD, ali moze cuvati mnogo vise informacija

• Format DVD cuva vise bita po kvadratnom incu

• CD moze cuvati 650 MB, dok standardan DVD moze cuvati 4.7 GB double sided DVD moze cuvati 9.4 GB

druge napredne tehnike mogu povecati kapacitet do 17.0 GB

• Slicno CDu, postoje DVD-R i DVD-RW diskovi

Page 25: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-25

Centralna procesorska jedinica

• CPU je cip koji zovemo mikroprocesor

• On kontinualno slijedi fetch-decode-execute ciklus:

fetch

Uzimanje instrukcije iz glavne memorije

decode

Prepoznavanje instrukcije

execute

Izvodjenjeinstrukcije

Page 26: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-26

Centralna procesorska jedinica

• CPU sadrzi:

Arithmetic/Logic Unit

Registers

Control Unit

Male oblasti memorije

Izvodi racunanja i donosi odluke

Koordinira radprocesora

Page 27: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-27

Centralna procesorska jedinica

• Brzinu CPU kontrolise system clock

• Sat (system clock) generise electronske impulse u regularnim intervalima

• Impulsi koordiniraju aktivnost CPU

• Brzina se obicno mjeri u gigahertz-ima (GHz)

Page 28: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-28

Monitor

• Velicina monitora je (17") mjereno po dijagonali, slicno TV ekranu

• Vecina danasnjih monitora dozvoljava multimedia osobine: text, grafika, video, itd.

• Monitor ima neku maksimalnu rezoluciju, koja oznacava broj elemenata slike, zvanih pikseli, koje moze prikazati (kao 1280 x 1024)

• Vise rezolucije (vise piksela) daju ostriju sliku

Page 29: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-29

Modem

• Jedinice za transfer podataka dozvoljavaju da saljemo i primamo informaciju preko kompjutera

• Mnogi kompjuteri sadrze modulator-demodulator ili modem, koji dozvoljava da informacija bude prenesena preko telefonske linije

• Jedinice transfera podataka karakterisu se maksimalnim opsegom transfera podataka

• Modem, na primjer, moze imati opseg od 56,000 bits per second (bps)

Page 30: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-30

Pregled

Racunarska obrada

Hardverske komponente

Mreze

Programski jezik Java

Razvoj programa

Objektno-Orijentisano Programiranje

Page 31: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-31

Mreze

• Mreza se sastoji od dva ili vise kompjutera koji su spojeni tako da mogu dijeliti resurse

• Vecina kompjutera su spojeni u neku vrstu mreze

• Svaki kompjuter ima svoju vlastitu adresu u mrezi, po kojoj moze biti identifikovan medju drugim

• File server je kompjuter u mrezi posvecen cuvanju programa i podataka dijeljenih medju korisnicima mreze

Page 32: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-32

Povezivanje u mrezu

• Svaki racunar u mrezi moze biti direktno povezan sa ostalim racunarima mreze

• To se naziva point-to-point povezivanje

Ova tehnikanije prakticna ako imamoveci broj racunara

Dodavanje novog racunara zahtijeva novu liniju do svakog racunara u mrezi

Page 33: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-33

Povezivanje u mrezu

• Vise mreza dijele jednu komunikacionu liniju

• Dodavanje novog racunara u mrezu je relativno jednostavno

Promet u mrezi koristi liniju, stouzrokuje kasnjenje

Cesto je informacija podijeljena u dijelove, zvane paketi,koji se salju prijemnom racunaru, a ovaj ih sastavlja

Page 34: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-34

Local-Area Networks

LAN

Local-Area Network(LAN) pokriva malurazdaljinu i mali broj kompjutera

LAN cesto povezuje masineU jednoj sobi ili jednoj zgradi

Page 35: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-35

Wide-Area Networks

LAN

Wide-Area Network (WAN)spaja dvije ili vise LAN-ova,cesto na dugim razdaljinama

LAN je obicno vlasnistvojedne organizacije, aliWAN cesto povezujegrupe u raznim drzavama

LAN

Page 36: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-36

Internet

• Internet je WAN koji spaja cijelu planetu

• Rijec Internet dolazi od termina internetworking

• Poceo je kao projekat vlade USA, sponzorisan od Advanced Research Projects Agency (ARPA) – originalno je bio nazivan ARPANET

• Internet je rastao brzo u 1980-im i 90-im

Page 37: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-37

TCP/IP

• Protokol je skup pravila koja odredjuju kako moduli komuniciraju medjusobom

• Software koji upravlja Internet komunikacijama slijedi skup protokola zvani TCP/IP

• Internet Protocol (IP) odredjuje format u kojem ce informacija biti transferovana

• Transmission Control Protocol (TCP) diktira kako se poruke reasembliraju i upravlja izgubljenom informacijom

Page 38: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-38

IP i internet adrese

• Svaki racunar na Internetu ima jedinstvenu IP adresu, kao sto je:

204.192.116.2

• Vecina racunara takodje ima jedinstveno Internet ime, koje je takodje referisano kao Internet adresa:

pmf.bgd.ac.yu

kant.gestalt-llc.com

• Prvi dio indicira konkretni racunar (pmf)

• Ostatak je ime domena, odredjuje organizaciju (bgd.ac.yu)

Page 39: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-39

Imena domena

• Zadnji dio imena domena, zvani top-level domain (TLD), odredjuje tip organizacije:

educomorgnet

- edukaciona institucija- komercijalni entitet- non-profit organizacija

- organizacija zasnovana na mrezi

Ponekad sufiksoznacava drzavu: Nnedavno su dodati

novi TLD-ovi:

biz, info, tv, name

ukaucase

- United Kingdom- Australia- Canada- Sweden

Page 40: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-40

Imena domena

• Ime domena moze imati vise dijelova

• Jedinstvenost imena domena znaci da vise mjesta mogu imati individualne racunare sa istim lokalnim imenom

• Pri koristenju, Internet adresa se prevodi u IP adresu softverom koji se zove Domain Name System (DNS)

• Ne postoji 1 - 1 korespondencija izmedju sekcija IP adrese i sekcija Internet adrese

Page 41: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-41

World Wide Web

• World Wide Web dopusta pristup na vise raznih tipova informacije koristeci zajednicki interfejs

• Browser je program koji pristupa informaciji i prezentuje informaciju

tekst, grafika, video, zvuk, ekzekutabilni programi

• Web document obicno sadrzi linkove na druge Web dokumente, kreirajuci hypermedia okruzenje

• Termin Web dolazi od cinjenice da informacija nije organizovana linearno

Page 42: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-42

World Wide Web

• Web dokumenti su cesto definisani koristeci HyperText Markup Language (HTML)

• Informacija na Web se trazi koristeci Uniform Resource Locator (URL):

http://www.lycos.com

http://www.villanova.edu/webinfo/domains.html

ftp://java.sun.com/applets/animation.zip

• URL oznacava protocol (http), domain, i moguce specifican dokument

Page 43: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-43

Pregled

Racunarska obrada

Komponente hardvera

Mreze

Programski jezik Java

Razvoj programa

Objektno-Orijentisano Programiranje

Page 44: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-44

Java

• Programski jezik specificira rijeci i simbole koje mozemo koristiti u pisanju programa

• Programski jezik koristi skup pravila koja diktiraju nacin na koji rijeci i simboli mogu da se sloze zajedno kako bi cinili pravilne programske komande (program statements)

• Programski jezik Java kreiran je u Sun Microsystems, Inc.

• Uveden je 1995 i njegova popularnost od tada brzo raste

Page 45: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-45

Struktura Java programa

• U programskom jeziku Java: Program je napravljen od jedne ili vise klasa Klasa sadrzi jednu ili vise metoda Metod sadrzi komande programa

• Ovi termini ce biti detaljno objasnjeni u toku kursa

• Java aplikacija uvijek sadrzi metod zvani main

• Vidi Lincoln.java (str. 28)

Page 46: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-46

Struktura Java programa

public class MyProgram

{

}

// komentari o klasi

Naslov klase

Tijelo klase

Komentari mogu biti stavljeni gotovo svuda

Page 47: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-47

Struktura Java programa

public class MyProgram

{

}

// komentari o klasi

public static void main (String[] args)

{

}

// komentari o metodi

naslov metodetijelo metode

Page 48: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-48

Komentari• Komentare u programu nazivamo inline

dokumentacija

• Oni se ukljucuju da objasne ciljeve programa i opisu korake u programu

• Oni ne uticu na rad programa

• Java komentari mogu biti u tri forme:

// ovaj komentar ide do kraja linije

/* ovaj komentar ide do oznake za kraj Komentara, cak i preko prekida linija */

/** ovo je javadoc komentar */

Page 49: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-49

Identifikatori

• Identifikatori su rijeci koje programer koristi u programu

• Identifikator moze biti napravljen od slova, brojeva, podvlake ( _ ), i znaka dolara

• Identifikatori ne mogu pocinjati cifrom

• Java je case sensitive – Total, total, i TOTAL su razliciti identifikatori

• Po dogovoru, programeri koriste razne case stilove za razne identifikatore, kao sto su slova naslova za imena klasa - Lincoln

velika slova za konstante - MAXIMUM

Page 50: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-50

Identifikatori

• Neke identifikatore biramo sami (kao Lincoln)

• Nekada koristimo kod drugih programera i njihove oznake (kao println)

• Cesto koristimo specijalne identifikatore zvane rezervisane rijeci (reserved words) koje vec imaju predefinisano znacenje u jeziku

• Rezervisana rijec ne moze biti koristena na drugi nacin, razlicit od predefinissanog

Page 51: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-51

Rezervisane rijeci

• Rezervisane rijeci u jeziku Java:

abstractbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodouble

elseenumextendsfalsefinalfinallyfloatforgotoifimplementsimportinstanceof

intinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstatic

strictfpsuperswitchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhile

Page 52: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-52

Razmaci (white spaces)

• Razmaci, prazne linije, i tabovi nazivaju se white space

• White space se koriste za razdvajanje rijeci i simbola u programu

• Ekstra white space se ignorise

• Validan Java program moze biti formatiran na vise nacina

• Programi trebaju biti formatirani da bi se povecala citljivost, koristeci konzistentnu indentaciju (uvlacenje pasusa)

• Vidi Lincoln2.java (str. 34)

• Vidi Lincoln3.java (str. 35)

Page 53: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-53

Pregled

Racunarska obrada

Komponente hardvera

Mreze

Programski jezik Java

Razvoj programa

Objektno-Orijentisano Programiranje

Page 54: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-54

Razvoj programa

• Razvojna mehanika programa ukljucuje vise aktivnosti

pisanje programa u nekom specificnom programskom jeziku

Prevodjenje programa u formu koju kompjuter moze izvesti

Pronalazenje i ispravljanje raznih gresaka koje mogu nastupiti

• Softverski alati mogu biti koristeni za pomoc u svim fazama ovog procesa

Page 55: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-55

Nivoi jezika

• Postoje cetiri nivoa programskih jezika: Masinski jezik Jezik asemblera Jezici visokog nivoa Jezici cetvrte generacije

• Svaki CPU ima svoj specifican masinski jezik

• Ostali nivoi su kreirani da ucine covjeku jednostavnijim citanje i pisanje programa

Page 56: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-56

Programski jezici

• Svaki tip CPU izvodi samo partikularan masinski jezik

• Program mora biti preveden u masinski jezik prije nego sto ga izvedemo

• Kompajler je softverski alat koji prevodi izvorni kod u specifican ciljni jezik

• Cesto, taj target (ciljni) jezik je masinski jezik za partikularni CPU tip

• Java pristup je nesto drugaciji

Page 57: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-57

Prevod Jave

• Java kompajler prevodi Java izvorni kod u specijalni kod zvani bytecode

• Java bytecode nije masinski kod ni za koji tradicionalni CPU

• Drugi softverski alat, zvani interpreter, prevodi bytecode u masinski jezik i izvodi ga

• Prema tome Java kompajler nije specijalno vezan ni za jednu masinu

• Java se smatra programskim jezikom nezavisnim od arhitekture

Page 58: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-58

Prevod Jave

Java sourcecode

Machinecode

Javabytecode

Bytecodeinterpreter

Bytecodecompiler

Javacompiler

Page 59: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-59

Razvojno okruzenje

• Postoji puno programa koji podrzavaju razvoj Java softvera, ukljucujuci:

Sun Java Development Kit (JDK) Sun NetBeans IBM Eclipse Borland JBuilder MetroWerks CodeWarrior Monash BlueJ

• Iako se ova okruzenja razlikuju u detaljima, osnovna kompilacija i egzekucija su iste

Page 60: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-60

Sintaksa i semantika

• Sintaksna pravila jezika definisu nacin na koji mozemo staviti zajedno simbole, rezervisane rijeci, i identifikatore da bismo napravili korektne programe

• Semantika programske komande definise sta ta komanda znaci (njen cilj ili uloga u programu)

• Program koji je sintakticki korektan, nije obavezno i (logicki) semanticki korektan

• Program uvijek radi ono sto mu mi kazemo da radi, ne ono sto mi zelimo da radi

Page 61: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-61

Greske (Errors)

• Program moze imati tri tipa gresaka

• Kompajler ce naci sintaksne greske i ostale osnovne probleme (compile-time errors)

Ako postoje compile-time greske, izvodljiva verzija programa nece biti kreirana

• Problem se moze pojaviti u toku egzekucije, kao pokusaj dijeljenja nulom, sto uzrokuje abnormalnu terminaciju programa (run-time errors)

• Program se moze izvesti, ali daje nekorektan rezultat, mozda koristenjem nekorektne formule (logical errors)

Page 62: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-62

Osnovni razvoj programa

greske

greske

Editovati iZapisati program

Kompajlirati program

Izvesti program iOcijeniti rezultate

Page 63: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-63

Pregled

Racunarska obrada

Komponente hardvera

Mreze

Programski jezik Java

Razvoj programa

Objektno-Orijentisano Programiranje

Page 64: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-64

Rjesavanje problema

• Cilj pisanja programa je rjesavanje zadatka

• Rjesavanje zadatka sastoji se od vise aktivnosti:

Razumijevanje problema

Dizajn i rjesenje

Razmatranje alternativa i poboljsanje rjesenja

Implementacija rjesenja

Testiranje rjesenja

• Ove aktivnosti nisu linearne – one se prekrivaju i medjusobno reaguju

Page 65: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-65

Rjesavanje problema

• Osnovno u rjesavanju problema je razbijnje problema u manje razumljive dijelove

• Kada pisemo softver, mi dizajniramo odvojene dijelove koji odgovaraju za posebne dijelove rjesenja

• Objektno-orijentisani pristup ukljucuje ovu vrstu dekompozicije

• Mi razbijamo nase rjesenje u dijelove koje zovemo objekti i klase

Page 66: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-66

Objektno-Orientisano programiranje• Java je objektno orijentisan jezik

• Objekat je osnovni pojam u Java programu

• Objekti mogu biti efektno iskoristeni za predstavljanje realnog svijeta

• Na primjer, objekat moze predstavljati jednog radnika kompanije

• Svaki objekat-radnik upravlja podacima i procesima odredjenog radnika kompanije

Page 67: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-67

Objekti

• Objekt ima:

stanje - deskriptivne karakteristike

ponasanje - sta moze uraditi (ili sta se sa njim moze uraditi)

• Stanje bankovnog racuna ukljucuje tekuci saldo

• Ponasanje pridruzeno bankovnom racunu ukljucuje mogucnost ulaganja i podizanja novca sa racuna

• Ponasanje objekta moze izmijeniti stanje objekta

Page 68: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-68

Klase

• Neki objekat se definise preko klase

• Klasa je kalup za pravljenje objekata

• Klasa koristi metode za definisanje ponasanja objekata

• Klasa koja sadrzi main metodu Java programa predstavlja kompletan program

• Klasa predstavlja koncept, a objekt predstavlja realizaciju (instancijaciju) tog koncepta

• Mozemo kreirati razne objekte jedne iste klase

Page 69: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-69

Objekti i klase

Bankovni Racun

Klasa(koncept)

Stanje Dzonovog racuna: $5,257

Objekat(realizacija)

Stanje Bilovog racuna: $1,245,069

Stanje Marijinog racuna: $16,833

Razni objektiIz iste klase

Page 70: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-70

Nasljedjivanje (Inheritance)• Jedna klasa moze biti koristena za definisanje

druge preko nasljedjivanja

• Klase mogu biti organizovane u hijerarhije

Bankovni Racun

Racun

Tekuci Racun

Racun Orocene Stednje

Cekovni Racun

Page 71: Glava1 Uvod. 1-2 Ciljevi kursa Objektno-orijentisani razvoj softvera  Rjesavanje problema  Dizajn programa, implementacija i testiranje  Objektno-orijentisani

1-71

Sazetak

• U glavi 1 razmatrali smo:

Komponente kompjutera Kako komponente medjusobno inter-reaguju Kako kompjuter cuva i obradjuje informaciju Racunarske mreze Internet i World Wide Web Programiranje i programske jezike Uvod u programski jezik Java Pregled objektno-orijentisanih koncepta