Prole e leto 2008
Sponsored Links
This presentation is the property of its rightful owner.
1 / 28

proleće/leto 2008 PowerPoint PPT Presentation


  • 91 Views
  • Uploaded on
  • Presentation posted in: General

Programski jezici. proleće/leto 2008. Šta je objekat?. Promenljive (podaci). Metodi (ponašanje). Šta je objekat?. Auto. bela boja. ugasi. 4 vrata. upali. koči. brzina 90 km/s. promeni brzinu. Šta je objekat?. Enkapsulacija (učaurivanje )

Download Presentation

proleće/leto 2008

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Programski jezici

proleće/leto 2008


Šta je objekat?

Promenljive

(podaci)

Metodi

(ponašanje)

Programski jezici


Šta je objekat?

Auto

bela boja

ugasi

4 vrata

upali

koči

brzina 90 km/s

promeni

brzinu

Programski jezici


Šta je objekat?

  • Enkapsulacija (učaurivanje)

    • Podaci objekta su učaureni u centru objekta, a okružuju ih metodi koji ih skrivaju od drugih objekata

    • Pristup učaurenim podacima se vrši preko specijalnih metoda

    • Učaureni podaci su zaštićeni od neželjenih izmena spolja (izvan čaure)

Programski jezici


Šta je objekat?

  • Prednosti enkapsulacije

    • Modularnost

      • Izvorni kod za jedan objekat se može pisati nezavisno od drugih objekata

    • Skrivanje informacija

      • Objekat ima javni interfejs koji drugi objekti mogu koristiti za komunikaciju sa njim. Privatne promenljive i metodi objekta se mogu promeniti bez uticaja na druge objekte

Programski jezici


Šta je poruka?

  • Objekti komuniciraju slanjem poruka

promeniBrzinu(3)

bmw

Pera

Programski jezici


Šta je poruka?

  • Tri dela poruke

    • Objekat primalac poruke (bmw)

    • Ime metoda koji objekat primalac treba da izvrši (promeniBrzinu)

    • Dodatni parametri metoda koji su potrebni (3)

  • Poziv funkcije (procedure) kod proceduralnih jezika

Programski jezici


Šta je klasa?

  • Klasa je opis objekata sa zajedničkim svojstvima

  • Klasa definiše šablon za stvaranje objekata za zajedničkim svojstvima

  • Klasa definiše atribute i ponašanja koje poseduju svi objekti napravljeni na osnovu klase

Programski jezici


Šta je klasa?

  • Analogija

    • nacrt kuće na papiru = klasa

    • izgrađena kuća = objekat

    • na osnovu jednog nacrta kuće se može izgraditi više kuća = na osnovu jedne klase se može napraviti više objekata

Programski jezici


Šta je klasa?

  • U OOP se pišu klase, a objekti se ne opisuju nego se stvaraju na osnovu klasa

  • Instanca (primerak) klase = objekat

  • Stvaranje objekta = instanciranje odgovarajuće klase

  • Java programi se sastoje isključivo od klasa, pa se sve mora nalaziti unutar klasa (primer: Kuća.java)

Programski jezici


Šta je klasa?

public class Kuća {

private intbrojSpratova;

private String boja;

private String adresa;

...

public void dozidajSprat();

}

...

Kuća vila = new Kuća(...);

Kuća mojaKuća = new Kuća(...);

Kuća koliba = new Kuća(...);

Vila.dozidajSprat();

Programski jezici


brojSpratova=3

brojSpratova=1

brojSpratova=2

boja= "bela"

boja= "siva"

boja= "plava"

adresa= " ... "

adresa= " ... "

adresa= " ... "

dozidajSprat()

dozidajSprat()

dozidajSprat()

Šta je klasa?

vila

mojaKuća

koliba

Programski jezici


Šta je klasa?

  • Objektne (instancne) promenljive (polja): brojSpratova, boja, adresa

  • Objektni (instancni) metodi: dozidajSprat()

  • Svaki napravljeni objekat ima svoje kopije objektnih promenljivih

  • Objektni metodi se moraju pozivati uz objekat na koji se odnose

  • Klasne promenljive i metodi

Programski jezici


Šta je nasleđivanje?

  • Način za formiranje novih klasa od postojećih

  • Nasleđivanjem se uspostavlja hijerarhijska relacija između srodnih klasa

  • Nova klasa proširuje postojeći klasu i nasleđuje sve atribute i ponašanja postojeće klase

Programski jezici


Šta je nasleđivanje?

Kuća

PoslovnaKuća

StambenaKuća

Zgrada

Soliter

Dvorac

Programski jezici


Šta je nasleđivanje?

public class StambenaKuća extends Kuća {

private intbrojStanova;

...

public void okreči();

}

...

StambenaKuća k1 = new StambenaKuća(...);

StambenaKuća k2 = new StambenaKuća(...);

Programski jezici


k1

brojSpratova=5

boja= "žuta"

adresa= " ... "

dozidajSprat()

brojStanova=20

okreči()

Šta je nasleđivanje?

k2

brojSpratova=10

boja= "zelena"

adresa= " ... "

dozidajSprat()

brojStanova=50

okreči()

Programski jezici


Šta je nasleđivanje?

  • Terminologija

    • Bazna klasa — klasa koja se proširuje

    • Izvedena (proširena) klasa — nova klasa

  • Bazna klasa = natklasa, klasa-roditelj

  • Izvedena (proširena) klasa = potklasa, klasa-dete

Programski jezici


java.lang

java.util

java.io

java.net

java.awt

java.applet

Paketi

  • Klase su organizovane po paketima, analogno odnosu datoteka i direktorijuma u okviru fajl-sistema

  • Paket je kolekcija klasa koje čine srodnu celinu (namenjenih jednoj vrsti posla)

  • Paketi čine biblioteke klasa

  • Osnovni paketi:

Programski jezici


Paketi

  • Java platforma sadrži veliki broj klasa koje su grupisane u pakete

Programski jezici


Paketi

  • Paketi olakšavaju nalaženje i korišćenje klasa

  • Paketi sprečavaju konflikte imena klasa, jer različiti paketi mogu da sadrže klase sa istim imenom

  • Paketi omogućavaju kontrolu pristupa klasama

Programski jezici


Korišćenje paketa

  • Pri pisanju neke klase, mogu se jednostavno koristi samo klase iz istog paketa

  • Klase iz drugog paketa se mogu koristiti uz navođenje punog imena:

    java.util.Date v = new java.util.Date();

Programski jezici


Korišćenje paketa

  • Deklaracija import “uvozi” pojedine klase iz nekog paketa

  • Navodi se pre početka teksta klase

    import java.util.Date;

    class MojaKlasa {

    ...

    Date v = new Date();

    ...

    }

Programski jezici


Korišćenje paketa

  • Deklaracija import “uvozi” sve klase iz nekog paketa pomoću džoker-znaka *

  • Navodi se pre početka teksta klase

    import java.util.*;

    class MojaKlasa {

    ...

    Date v = new Date();

    ...

    }

  • Paket java.lang se automatski uvozi u sve programe

Programski jezici


Pravljenje paketa

  • Svaka klasa mora da pripada nekom paketu

  • Ako se ništa ne navede, klasa pripada podrazumevanom (anonimnom) paketu

  • Deklaracija package definiše paket kome pripada neka klasa

  • Navodi se na samom početku teksta klase (pre deklaracije import)

Programski jezici


Pravljenje paketa

package mojpaket;

import java.util.*;

class MojaKlasa { ... }

  • Datoteka MojaKlasa.javase mora nalaziti u direktorijumumojpaket koji se pravi u korenskom direktorijumu programa

  • Prevođenje klase MojaKlasa se mora obaviti iz korenskog direktorijumaprograma :

    “korenski direktorijum”>javac mojpaket\MojaKlasa.java

Programski jezici


Struktura Java programa

  • Java program se sastoji od jedne ili više klasa

  • Izvorni kod svake klase se piše u posebnoj datoteci čije je ime isto kao ime klase

  • Ekstenzija datoteke Java izvornog koda mora biti .java

Programski jezici


Struktura Java programa

javac MyProgram.java

...

javac Hat.java

java MyProgram

Programski jezici


  • Login