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

proleće/leto 2009 PowerPoint PPT Presentation


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

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.

Download Presentation

proleće/leto 2009

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


Prole e leto 2009

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


Prole e leto 2009

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


Prole e leto 2009

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


Prole e leto 2009

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


Prole e leto 2009

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


  • Login