Click here to load reader

Objektno orijentisano programiranje

  • View
    55

  • Download
    2

Embed Size (px)

DESCRIPTION

Java, 1. čas. Objektno orijentisano programiranje. Osnovni pojmovi. Objektno orijentisano programiranje je zasnovano na konceptu objekta Objekti su strukture podataka sa pridruženim skupom procedura i funkcija koje se nazivaju metodi i služe za operisanje podacima koji čine objekat - PowerPoint PPT Presentation

Text of Objektno orijentisano programiranje

  • Objektno orijentisano programiranje

    Java, 1. as

  • Osnovni pojmoviObjektno orijentisano programiranje je zasnovano na konceptu objektaObjekti su strukture podataka sa pridruenim skupom procedura i funkcija koje se nazivaju metodi i slue za operisanje podacima koji ine objekatU pravim OO programskim jezicima, metodi su jedini nain operisanja podacima koji su sadrani u objektimaSvaki objekat predstavlja primerak (instancu) neke klase. Definisanjem klase definie se kako sadraj objekata te klase, tako i skup metoda

  • Osnovni pojmoviKlase se mogu formirati na osnovu postojeih postupkom nasleivanja, ime se omoguuje kreiranje hijerarhije klasaVANO: U objektno orijentisanoj terminologiji, sintaksa programskog jezika ne ukljuuje pozive metoda, ve slanje poruka objektima da je potrebno da izvre odreenu aktivnost!

  • Malo istorijeJezik Simula67 smatra se prvim programskim jezikom koji u sebi ima elemente OO programiranja, dok se programski jezik Smalltalk obino smatra prvim OO programskim jezikom ( sve programske strukture se svode na slanje poruka objektima )1986. C++, Bjarn StrostrupAT&T Bell Laboratorieshibrid klasinog proceduralnog i objektno orijentisanog programskog jezika ( izbegnuta je implementacija prostih tipova upotrebom klasa i zadrane su C-ovske kontrolne strukture )

  • Malo istorijeTokom devedesetih godina nagli razvoj komunikacionih sistema doprineo je poveanju upotrebe raunarskih mrea i Internet-a.Posledica je bila poveana potreba za alatom za razvoj klijent-server aplikacija koje bi radile na Internet-u. Dopunski zahtevi su bili standardizovanje alata tako da bude nezavisan od platforme i da radi na bilo kom raunarskom sistemuSun Microsystems je 1995. godine priveo kraju razvoj programskog jezika Java koji zadovoljava veinu novonastalih zahteva

  • JavaPo svom spoljnom izgledu, Java veoma podsea na C++, ijom modifikacijom je i nastala, ali u svojoj unutranjosti mnogo vie podsea na SmalltalkU najee oblasti primene objektno orijentisanih programskih jezika spadaju simulacije, grafika korisnika okruenja, komunikacije i multimedijalne aplikacijeJava je veoma dobro reenje za pisanje klijent aplikacija koje ne vre veliku obradu podataka, ve to preputaju serveru, kao i za pisanje manjih programa ( apleta ) koji ine elemente multimedijalnih prezentacija na Internet-u

  • Java okruenjepii jednom izvravaj bilo gdeJava programi mogu da rade na svakoj platformi koja podrava Javu zahvaljujui sledeem:Java program se ne izvrava direktno na raunaru, ve na standardizovanom okruenju, tzv. Java platformiJava platforma se sastoji od 2 elementa:Java Virtual Machine ( JVM ) - softverska implementacija hipotetikog raunaraJava Application Programming Interface ( Java API ) - skup softverskih komponenata koje obezbeuju pisanje interaktivnih aplikacijaJava kompajler prevodi Java izvorni kod u tzv. byte kod koji predstavlja mainske instrukcije za Java virtualnu mainu.Kada se izvrava Java program, program koji se zove Java interpreter tumai bytecode i zatim izvrava akcije koje bytecode specificira unutar Java VM.

  • Jo malo o bytecodePoto se Java program sastoji od bytecode, a ne od pravih mainskih instrukcija, on je potpuno nezavisan od hardvera na kome se izvrava. Svaki raunar koji ima implementirano Java okruenje izvrie taj program podjednako dobro kao i svaki drugi, a Java interpreter, koji se nalazi izmeu programa i fizike maine spreie neautorizovane akcije programa.

  • Instalacija JDKPotrebno je dodati putanju dojdk1.5.0_01\bin (taan naziv direktorijuma zavisi od verzije) direktorijuma u PATH environment promenljivuNa taj nain kompajler i interpreter se mogu pokretati bilo gde, bez da se navodi putanja do njihsrc.zip izvorni kod biblioteke klasa

  • Kompajliranje programaJava izvorni kod se uvek uva u fajlovima sa ekstenzijom .java U fajlu moe da bude i vie klasa, ali najvie jedna javna ( public ) klasa. Ime javne klase mora da bude jednako imenu fajla. Uobiajeno je da se svaka klasa stavlja u poseban fajl.Da bi se izvorni kod procesuirao kompilatorom koji dolazi sa JDK, u komandnom prozoru pree se u direktorijum koji sadri fajl sa izvornim kodom, npr. Zdravo.java i kuca komanda:javac Zdravo.javajavac je ime Java kompajlera

  • Hello world primerpublic class Zdravo {public static void main ( String[] args ) {System.out.println(Zdravo, svete!\n);}}Ako program ne sadri greke, kompajler generie bytecode program koji je ekvivalent source kodu. On se smeta u fajl sa istim imenom i ekstenzijom .class Prevod svake klase se smeta u zaseban fajl sa ekstenzijom .class i imenom istim kao ime klase

  • Izvravanje java aplikacijeDa bismo izvrili bytecode program iz .class fajla Java interpreterom u JDK, kucamo komandu:java ZdravoGreka je: java Zdravo.class !!!Interpreter oekuje ime klase, a ne ime fajlaJava je case-sensitive ( razlikuje mala i velika slova ) !

    Komentari: /* kao u C-u, u vie redova */ // pa do kraja reda, jednoredni

  • Java programiPostoje dve osnovne vrste programa koji se mogu pisati u Javi:Aplikacija to je samostalni program za reavanje jednog ili skupa problema, koji sadri metod main() i jednu ili vie klasaAplet to je dinamiki interaktivni program koji se moe izvravati u okviru WEB stranice, a posredstvom nekog od browser-a ( itaa )

  • Objektno orijentisano programiranje u JaviSve se predstavlja preko objekataObjekat je integralna celina podataka i procedura za rad sa njima U objektno orijentisanom programiranju, glavne obrade se zasnivaju na manipulisanju objektimaMetod je funkcija koja je sastavni deo objekta, tj. postupak kojim se realizuje poruka upuena objektuPoruka je skup informacija koje jedan objekat alje drugom. Sastoji se iz adrese objekta primaoca poruke i saoptenja tj. onog to treba da se uradi

  • Objektno orijentisano programiranje u JaviKlasa je skup objekata sa zajednikim svojstvima koji se ponaaju na isti nain. Ona definie ablon za kreiranje instanci, tj. konkretnih objekata klaseKlasa omoguuje da se zadaju opta svojstva, a njihovim konkretizovanjem dobijamo instancuPrimer:class Krug { klasa Krugint x, y;float r;}Krug k = new Krug(10,20,5); instanca klase KrugInstanca je konkretan objekat klase. Svi metodi definisani u klasi mogu se primeniti na instancu

  • Atributi klasePromenljive iz definicije klase nazivaju se atributi klase ili instancne promenljive ili lanovi klaseKlasom je definisan njihov tip, a za svaku instancu instancna promenljiva ima konkretnu vrednost.U prethodnom primeru,x, y i r su instancne promenljive koje u instanci k imaju redom vrednosti 10, 20 i 5Instancne promenljive mogu biti nekog od primitivnih, ali takoe i klasnih tipova

  • Objektno orijentisano programiranje u Javi, nasleivanjeKlasa B je potklasa klase A ako su svi primerci klase B istovremeno i primerci klase A. Za takvu klasu A kaemo da je natklasa klase B. Potklase nastaju dodavanjem novih svojstava ( metoda i podataka ) postojeoj klasi.Nasleivanje je mehanizam za kreiranje novih klasa iz postojeih. Nasleivanjem se formiraju relacije izmeu jedne i vie drugih klasa.U Javi imamo klasu Object koja je natklasa svih klasa i itav niz unapred kreiranih klasa koje moemo da koristimo u svojim aplikacijama.

  • Nasleivanje u JaviNain nasleivanja gde svaka potklasa ima samo jednu natklasu naziva se jednostruko nasleivanjePostoji i viestruko nasleivanje kada potklasa nasleuje dve ili vie klasaU Javi je mogue samo jednostruko nasleivanjePrimer: ivo bie

    ivotinja Biljka

    Sisar Ptica

  • EnkapsulacijaEnkapsulacija se odnosi na skrivanje atributa i metoda unutar objekta, to se postie navoenjem private kljune rei ispred njihovih deklaracija unutar definicije klase. Takvim atributima direktno mogu pristupati i menjati njihove vrednosti samo metodi koji pripadaju istoj klasi kao i posmatrani atributi.Dakle, jedini nain da se promeni vrednost private atributa jeste pozivom odgovarajueg metoda koji to radi

  • EnkapsulacijaEnkapsulacija je bitna za bezbednost i integritet objekataTakoe, zahvaljujui enkapsulaciji, mogue je sakriti implementaciju klase i menjati nain na koji je ta implementacija izvrena bez dodatnih izmena programa koji koriste klasu sve dok se metodi koji se mogu pozivati izvan klase mogu pozivati na isti nain kao i ranije

  • Javina biblioteka klasaJava je jezik sa hijerarhijskom stukturom klasa. Sve one su potklase klase Object, to je preuzeto iz Smalltalk-aPrua mogunosti rada sa interfejsima skup imenovanih metoda koji nisu nasleeni od natklase, niti definisani u samoj klasi, a koji odreuju neka dodatna svojstva klase. Ovo predstavlja zamenu za viestruko nasleivanje. Nain rada sa njima je slian nainu rada sa klasamaBiblioteka u Javi je kolekcija klasa i interfejsa.

  • Biblioteka i paketiBiblioteka se sastoji od fajlova, pri emu svaki fajl sadri definiciju odgovarajue klase. Klase su grupisane u tzv. pakete, a svaki paket je smeten u posebnom direktorijumu. Klasa iz paketa moe pristupati proizvoljnoj klasi iz istog paketa. Klase iz drugih paketa mogu, a ne moraju biti dostupne.Ime paketa bazirano je na putanji do direktorijuma u kome su smetene odgovarajue klase tog paketaI mi moemo sami praviti nae pakete koji e sadrati nae klase koje elimo ponovo da koristimo u razliitim kontekstima

  • Paketi Javine bibliotekeJava raspolae ogromnim brojem standardnih paketa, a najkorieniji su:java.lang osnovne karakteristike jezika, rad sa nizovima i stringovima. Klase iz ovog paketa su uvek dostupne naem programu automatski se ukljuuje u na program ( klase Integer, String, Math ... )java.io klase za ulazno/izlazne operacijejava.util klasa Vector (uopteni niz), Stack, Scanner, klase za rad sa datumim

Search related