prole e leto 2009
Download
Skip this Video
Download Presentation
proleće/leto 2009

Loading in 2 Seconds...

play fullscreen
1 / 26

proleće/leto 2009 - PowerPoint PPT Presentation


  • 140 Views
  • Uploaded on

Programski jezici. proleće/leto 2009. Metodi. Metod u Javi ≈ funkcija u C-u Metod je samostalni blok Java koda (deklaracije i naredbe) koji ima ime i koji se može koristiti (pozvati) u drugom delu koda Gotovi metodi i programerski definisani metodi Pozivanje metoda = slanje poruke. Metodi.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' proleće/leto 2009' - osma


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
prole e leto 2009

Programski jezici

proleće/leto 2009

metodi
Metodi
  • Metod u Javi ≈ funkcija u C-u
  • Metod je samostalni blok Java koda (deklaracije i naredbe) koji ima ime i koji se može koristiti (pozvati) u drugom delu koda
  • Gotovi metodi i programerski definisani metodi
  • Pozivanje metoda = slanje poruke

Programski jezici

metodi1
Metodi
  • Prednosti metoda
    • Manje delove programa (metode) je lakše napisati i testirati
    • Metodi se mogu nezavisno i paralelno pisati od strane više programera
    • Metodi se mogu više puta koristiti
    • Metodi smanjuju ukupnu veličinu programskog koda

Programski jezici

metodi2
Metodi

Java program (glavna klasa)

main(...)

...

metod1();

...

pozivi metoda

metod1(...)

metod2();

metod2(...)

Programski jezici

metodi3
Metodi
  • Izvršavanje metoda

main()

metod1(...)

metod2(...)

...

metod2();

metod1();

...

Programski jezici

definisanje metoda
Definisanje metoda
  • Format:

modifikatori tip-rezultata imeMetoda (lista-parametara) //zaglavlje

{

//telo (niz naredbi)

}

  • Primer:

public static void main (String[] args)

{

//Naredbe ...

}

Programski jezici

definisanje metoda1
Definisanje metoda
  • modifikatori dodatno opisuju metod (ko može da ga koristi, da li je instancni ili klasni, da li je apstraktni ili ne, ...)
  • Modifikator pristupa određuje ko može da koristi (poziva) metod
    • public (sve klase)
    • private (samo klasa u kojoj je metod definisan)
    • protected (klasa u kojoj je metod definisan i izvedene klase)
    • nije navedeno (samo klase iz istog paketa)

Programski jezici

definisanje metoda2
Definisanje metoda
  • tip-rezultata određuje tip vrednosti koju metod vraća kao rezultat
  • Metod može vratiti najviše jednu vrednost (objekat)
    • Ako metod ne vraća nijednu vrednost, tip rezultata je void
    • Ako metod vraća jednu vrednost, mora imati bar jednu naredbu oblika:

return izraz

Programski jezici

definisanje metoda3
Definisanje metoda
  • Naredba return izraz vraća rezultat izraza i kontrolu pozivajućoj metodi
  • Ukoliko je tip rezultata void, nareba return je opciona

Programski jezici

definisanje metoda4
Definisanje metoda
  • imeMetoda je identifikator (po konvenciji, sve reči osim prve počinju velikim slovom)
  • lista-parametarasadrži nula ili više parova, razdvojenih zarezima
  • Parovi su promenljive i njihov tip
  • Parametri metoda su promenljive koje prihvataju vrednosti argumenata prosleđenih metodu u trenutku njegovog pozivanja

Programski jezici

pozivanje metoda
Pozivanje metoda
  • Prilikom poziva metoda, na mesto formalnih parametara se navode stvarni argumenti
  • Kod navođenja formalnih parametara u definiciji metoda, za svaki parametar se mora navesti njegov tip, dok se prilikom poziva metoda navode samo stvarni argumenti, bez navođenja njihovog tipa

Programski jezici

pozivanje metoda1
Pozivanje metoda
  • Primer

public boolean prviJeVeci(int a, int b){

if(a >= b)

return true;

else

return false;

}

...

int x=20, y=10;

...

prviJeVeci(17, 23)

...

prviJeVeci(x, y)

Programski jezici

pozivanje metoda2
Pozivanje metoda
  • Objektni (instancni) metodi
    • Odnose se na pojedinačne objekte (instance ) i indirektno kao parametar imaju konkretni objekat klase u kojoj su objektni (instancni) metodi definisani
    • Pozivaju se samo preko odgovarajućeg konkretnog objekta korišćenjem tačka-notacije
    • Primer:

Programski jezici

slide14

public class Krug {

private int x, y; // centar

private double r; // poluprečnik

public double obim() {

return 2*Math.PI*r;

}

public double površina() {

return Math.PI*r*r;

}

public boolean tačkaUKrugu(int a, int b) {

double d;

d = Math.sqrt((x-a)*(x-a) + (y-b)*(y-b));

if (d < r)

return true;

else

return false;

}

Programski jezici

slide15

public static void main (String[] args) {

Krug k1 = new Krug();

k1.x = 4; k1.y = 4; k1.r = 5.2;

Krug k2 = new Krug();

k2.x = 0; k2.y = 0; k2.r = 2.0;

System.out.println("Povrsina kruga k1 je: " +

k1.površina());

System.out.println("Obim kruga k2 je: " + k2.obim());

System.out.println("Tačka (20,30) je u krugu k1: " +

k1.tačkaUKrugu(20,30));

}

}

Programski jezici

pozivanje metoda3
Pozivanje metoda
  • Klasni (statički) metodi
    • Odnose se na celu klasu, a ne na pojedinačne objekte klase
    • Sadrže modifikator static
    • Pozivaju se preko imena klase korišćenjem tačka-notacije (može i kao objektni metodi, ali se ne preporučuje)
    • Primer:

Programski jezici

slide17

public class Krug {

private int x, y; // centar

private double r; // poluprečnik

public double obim() {

return 2*Math.PI*r;

}

public double površina() {

return Math.PI*r*r;

}

public boolean tačkaUKrugu(int a, int b) {

double d;

d = Math.sqrt((x-a)*(x-a) + (y-b)*(y-b));

if (d < r)

return true;

else

return false;

}

Programski jezici

slide18

public static void verzija() {

System.out.println("Verzija koda je 1.0");

}

public static void main (String[] args) {

Krug k1 = new Krug();

k1.x = 4; k1.y = 4; k1.r = 5.2;

Krug k2 = new Krug();

k2.x = 0; k2.y = 0; k2.r = 2.0;

Krug.verzija();

System.out.println("Povrsina kruga k1 je: " +

k1.površina());

System.out.println("Obim kruga k2 je: " + k2.obim());

System.out.println("Tačka (20,30) je u krugu k1: " +

k1.tačkaUKrugu(20,30));

}

}

Programski jezici

potpis metoda
Potpis metoda
  • Klasa može imati više metoda sa istim imenom, ali svaki metod mora imati različiti potpis koji se sastoji od:
    • Imena metoda
    • Redosleda, broja i tipa parametara
  • Primer:

public void uradiNešto (int n, double x, boolean test)

{

// Naredbe ...

}

Programski jezici

potpis metoda1
Potpis metoda
  • Potpis za uradiNešto:

uradiNešto (int, double, boolean)

  • Drugi metod sa istim imenom:

uradiNešto (String s)

{

// Naredbe ...

}

Programski jezici

preoptere eni metodi
Preopterećeni metodi
  • Potpis dva metoda u klasi mora biti različit, kako bi kompajler mogao da odredi koji metod se poziva
  • Metodi sa istim imenom, ali različitim parametrima (različitim potpisom) se nazivaju preopterećeni (overloaded)
  • Primer:

Programski jezici

slide22

public class Knjiga {

private String naslov;

private String autor;

private int brojStrana;

private int godinaIzdanja;

. . .

public void prikažiKnjigu() {

System.out.println("Autor: " + autor);

System.out.println("Naslov: " + naslov);

System.out.println("Broj strana: " + brojStrana);

}

public void prikažiKnjigu(boolean saGodIzd) {

prikažiKnjigu();

if (saGodIzd)

System.out.println("Godina izdanja: " + godinaIzdanja);

}

. . .

}

Programski jezici

oblast va enja imena
Oblast važenja imena
  • Deo teksta programa u kojem se može koristiti definisano ime
  • Pravilo: ime (identifikator) važi u bloku u kome je definisano

Programski jezici

oblast va enja imena1
Oblast važenja imena
  • Primer:

public class IgraSaKartama {

String pobednik; // globalna promenljiva (polje)

...

void odigrajIgru() {

String pobednik; // lokalna promenljiva

// Ostale naredbe metoda ...

}

...

}

Programski jezici

oblast va enja imena2
Oblast važenja imena
  • Primer:

for (int i = 0; i < n; i++) {

// Telo petlje

}

if (i == n) // GREŠKA: ovde ne važi ime i

System.out.println("Završene sve iteracije");

Programski jezici

oblast va enja imena3
Oblast važenja imena
  • Primer:

void neispravanMetod(int n) {

int x;

while (n > 0) {

int x; // GREŠKA: ime x je već definisano

...

}

}

Programski jezici

ad