Vezbe 03 - Static Atribut, Niz Kao Parametar Klase

download Vezbe 03 - Static Atribut, Niz Kao Parametar Klase

of 8

Transcript of Vezbe 03 - Static Atribut, Niz Kao Parametar Klase

  • 7/25/2019 Vezbe 03 - Static Atribut, Niz Kao Parametar Klase

    1/8

    VEBE 03 STATIC ATRIBUT, NIZ KAO PARAMETAR KLASE

    STATIC ATRIBUT

    Svaka klasa moe imati atribut koji je zajedniki za sve instance te klase. Definie se kljunom rei static Promena tog atributa u bilo kojoj instanci klase menja taj atribut svim njenim instancama Vrednost atributa se dohvata preko imenaklasea i preko njene instance Sa sai!atributom se moe raditi samo u okviru sai!metoda

    ZA"ATAK # $ Definisati klasu rug da ima! Privatna Polja! %, &"koordinate centra kruga# ! integer Privatno polje '"poluprenik kruga# ! integer

    $avno sai!polje! (')*,privatnog set svojstva! integer

    Set i %et metode $avni podrazemevani konstruktor koji inicijalizuje vrednosti polja &' z i r na (' $avni parametarizovani konstruktor za parametre ")' *' +#

    ,-P/0,-! u okviru oba konstruktora podesiti polje (')* tako da predstavlja broj kreiranihinstanci klase rug u glavnom delu programa.

    $avnu metodu! +)'sina-. $ double' koja rauna povrinu

    verride metode )S'in/-.za ispis na ekranu poruke sede1eg formata! 2Povrsina krugaparametara X = 1, Y = 2, R = 3 je: 28.263

    4 glavnom delu programa "main# ! 5spisati vrednost polja (')* reirati instacu klase rug ! a,pomo1u podrazumevanog konstruktora 5spisati vrednost polja (')* reirati instacu klase rug ! (,pomo1u parametarizovanog konstruktora 5spisati vrednost polja (')* Dodeliti vrednosti poljima objekta apreko kreiranih svojstava.

    Demostrirati poziv metode +)'sina na ispisu povrina rugova ai (

    oje 1e vrednosti ispisivati na monitoru prilikom ispisa vrednosti polja (')* u prethodnodefinisanim trenutcima./ogu li slede1i kodovi izvriti u okviru maindela programa "objasniti#!

    Krug.broj = 5;

    a.broj = 5;

    6

  • 7/25/2019 Vezbe 03 - Static Atribut, Niz Kao Parametar Klase

    2/8

    +070,$0!

    publicclassKrug {

    privateintx,y,r;

    publicstaticintbroj;

    publicKrug(){x= y= r= 1;

    //uvecavanje static atributa

    ++broj;

    }

    publicKrug(intx, inty, intr){

    this.x= x;

    this.y= y;

    this.r= r;

    //uvecavanje static atributa

    ++broj;

    }

    publicvoidsetX(intx) {

    this.x= x;

    }

    publicvoidsetY(inty) {

    this.y= y;

    }

    publicvoidsetR(intr) {

    this.r= r;

    }

    publicdouble!vrsina(){

    returnr"r"#at$.PI;}

    %&verri'e

    publictring t!tring() {

    return(*!vrsina ruga araetara X = +x+, Y = +y+, R =

    +r+ je- +!vrsina());

    }

    }

    8

  • 7/25/2019 Vezbe 03 - Static Atribut, Niz Kao Parametar Klase

    3/8

    publicclassavna {

    publicstaticvoidain(tring0 args) {

    yste.out.rintn(static br!j = + Krug.broj); // 2

    Krug a, b = newKrug(3, 4, 5);

    yste.out.rintn(static br!j = + Krug.broj); // 1

    a = newKrug();

    a.setX(1);

    a.setY(6);

    a.setR(3);

    yste.out.rintn(static br!j = + Krug.broj); // 6

    yste.out.rintn(a);

    //*!vrsina ruga araetara X = 1, Y = 6, R = 3 je- 67.658333776327137

    yste.out.rintn(b);

    //*!vrsina ruga araetara X = 3, Y = 4, R = 5 je- 143.93728226479974

    Krug.broj= 4; // &K- atribut je ubic

    a.broj= 4; // &K- ristua se re! instance ase

    }

    }

    VEBA$promeniti da sai!atribut (')*bude +'iae

    ZA"ATAK $Definisati klasu Proizvod da ima!

    Private Polja! na1i ! string Private Polja! k)li!ina ! int Private Polja! !ena ! int Public parametarizovani konstruktor "string' int' int# Public int metodu ukupnaVrednost"#! vraca proizvod cene i kolicine Set i get metode po potrebi

    4 glavnom delu programa "main# ! reirati globalnu funkciju double ukupno"Proizvod9:#! vraca ukupnu vrednost svih

    proizvoda

    reirati globalnu funkciju double srvr"Proizvod9:#! vraca srednju vrednost svih proizvoda reirati globalnu funkciju double brProizvoda"Proizvod9:#! vraca broj proizvoda Definisati nekoliko instanci klase proizvod preko parametarizovanog konstruktora reirati niz Proizvoda od kreiranih instanci klase Proizvod 5stestirati pozive globalnih funkcija.

    +070,$0 6!

    ;

  • 7/25/2019 Vezbe 03 - Static Atribut, Niz Kao Parametar Klase

    4/8

    publicclass*r!i:v!' {

    privatetring na:iv;

    privateint!icina;

    privateintcena;

    public*r!i:v!'(){}

    public*r!i:v!'(tring n, int, intc){

    na:iv= n;

    !icina= ;

    cena= c;

    }

    publicintuunare'n!st(){

    returncena"!icina;

    }

    publicintgetK!icina() {

    return!icina;}

    }

    publicclassavna {

    publicstaticdoubleuun!(*r!i:v!'0 ni:){

    doubles = 2;

    for(*r!i:v!' - ni:)

    s += .uunare'n!st();

    returns;

    }

    publicstaticdoublesrvr(*r!i:v!'0 ni:){

    doublesrvr = 2;

    intbr = 2;

    for(*r!i:v!' - ni:){

    srvr += .uunare'n!st();

    br += .getK!icina();

    }

    returnsrvr/br;

    }

    publicstaticdoublebr*r!i:v!'a(*r!i:v!'0 ni:){

    intbr = 2;

    for(*r!i:v!' - ni:){

    br += .getK!icina();

    }

    returnbr;

    }

    }

  • 7/25/2019 Vezbe 03 - Static Atribut, Niz Kao Parametar Klase

    5/8

    publicstaticvoidain(tring0 args) {

    *r!i:v!' = new*r!i:v!' (ur! Kre, 12, 422);

    *r!i:v!' i = new*r!i:v!' (?egr!, 62, 42);

    *r!i:v!' : = new*r!i:v!' (!i, 42, 64);

    *r!i:v!'0 ni: = {,r,!,i,:};

    yste.out.rintn(@un! - + ukupno(ni:));

    yste.out.rintn(re'nja vre'n!st - + srvr(ni:));

    yste.out.rintn(Ar!j r!i:v!'a - + brProizvoda(ni:));

    }

    +070,$0 8!

    packagers1;

    publicclass*r!i:v!' {

    privatetring na:iv;

    privateint!icina, cena;

    public*r!i:v!'(tring na:iv, int!icina, intcena) {

    super();

    this.na:iv= na:iv;

    this.!icina= !icina;

    this.cena= cena;

    }

    public*r!i:v!'() {

    super();

    }

    publicintuunare'n!st(){

    returncena"!icina;

    }

    %&verri'e

    publictring t!tring() {

    returnna:iv+Bt+!icina+Bt+cena+Bt=+uunare'n!st();

    }

    }

    packagers1;

    publicclassavna {

    publicstaticintuun!(*r!i:v!'0 a){ints=2;

    for(*r!i:v!' r!i:v!' - a) {

    if(r!i:v!'C=null) //provera da li postoji proizvod

    s+= r!i:v!'.uunare'n!st();

    }

    returns;

    }

    publicstaticdoublesrvr(*r!i:v!'0 a){

    ints=2, br=2;

    =

  • 7/25/2019 Vezbe 03 - Static Atribut, Niz Kao Parametar Klase

    6/8

    for(*r!i:v!' r!i:v!' - a) {

    if(r!i:v!'C=null){ //provera da li postoji proizvod

    br++;

    s+= r!i:v!'.uunare'n!st();

    }

    }

    return(double)s/br;

    }

    publicstaticintbr!j(*r!i:v!'0 a){

    intbr = 2;

    for(*r!i:v!' r!i:v!' - a) { //provera da li postoji proizvod

    if(r!i:v!'C=null)

    br++;

    }

    returnbr;

    }

    publicstaticvoidain(tring0 args) {

    // TODODut!Egenerate' et$!' stub*r!i:v!' 0 a = new*r!i:v!'03;

    *r!i:v!' 1 = new*r!i:v!'(a:a, 42, 72);

    *r!i:v!' 6 = new*r!i:v!'(s!i, 122, 32);

    *r!i:v!' 3 = new*r!i:v!'(re, 64, 422);

    a02 = 1;

    a01 = 6;

    //a06 = 3; //probati sa i bez a[2

    for(*r!i:v!' r!i:v!' - a) {

    yste.out.rintn(r!i:v!');

    }

    yste.out.rintn(@una vre'n!st-+ukupno(a));

    yste.out.rintn(re'nja vre'n!st-+srvr(a));

    yste.out.rintn(Ar!j -+broj(a));

    }

    }

    ZAKL2UAK!,iz je kreiran u glavnom programu.%lobalne metode su kreirane u glavnoj klasi.%lobalne metode nisu vezane za instancu klase Proizvod' ali imaju niz proizvoda kao parametar

    metode.4koliko svi elementi niza nisu inicijalizovani onda je u metodama potrebno proveravati da li surazliciti od n4ll.

    >

  • 7/25/2019 Vezbe 03 - Static Atribut, Niz Kao Parametar Klase

    7/8

    ZA"ATAK 3 $ /odifikovati zadatak 8 da ima klasu P')5ani!a sa ni1)m P')i1)5aDefinisati klasu Proizvod da ima!

    Private Polja! na1i ! string Private Polja! k)li!ina ! int Private Polja! !ena ! int Public parametarizovani konstruktor "double' int' int# Public int metodu ukupnaVrednost"#! vraca proizvod cene i kolicine Set i get metode po potrebi

    Definisati klasu Prodavnica da ima! Private polje! proizvodi! Proizvod9: Public metodu double ukupno"#! vraca ukupnu vrednost svih proizvoda Public metodu double srvr"#! vraca srednju vrednost svih proizvoda Public metodu double brProizvoda"#! vraca broj proizvoda Public parametarizovani konstruktor "Proizvod9:#

    4 glavnom delu programa "main# ! Definisati nekoliko instanci klase proizvod preko parametarizovanog konstruktora reirati niz Proizvoda od kreiranih instanci klase Proizvod reirati instancu klase Prodavnica preko niza proizvoda 5stestirati pozive metoda klase Prodavnica.

    +070,$0!

    // asa *r!i:v!' je ista

    publicclass*r!'avnica {

    private*r!i:v!'0 r!i:v!'i;

    public*r!'avnica(*r!i:v!'0 ni:){

    r!i:v!'i= new*r!i:v!'0ni:.engt$;

    for(inti=2; i F ni:.engt$; i++){

    r!i:v!'i0i = ni:0i;

    }

    }

    publicdoubleuun!(){doubles = 2;

    for(*r!i:v!' - r!i:v!'i)

    s += .uunare'n!st();

    returns;

    }

    publicdoublesrvr(){

    doublesrvr = 2;

    ?

  • 7/25/2019 Vezbe 03 - Static Atribut, Niz Kao Parametar Klase

    8/8

    intbr = 2;

    for(*r!i:v!' - r!i:v!'i){

    srvr += .uunare'n!st();

    br += .getK!icina();

    }

    returnsrvr/br;

    }

    publicdoublebr*r!i:v!'a(){

    intbr = 2;

    for(*r!i:v!' - r!i:v!'i){

    br += .getK!icina();

    }

    returnbr;

    }

    }

    publicclassavna {

    publicstaticvoidain(tring0 args) {

    *r!i:v!' = new*r!i:v!' (ur! Kre, 12, 422);

    *r!i:v!' i = new*r!i:v!' (?egr!, 62, 42);

    *r!i:v!' : = new*r!i:v!' (!i, 42, 64);

    *r!i:v!'0 ni: = {,r,!,i,:};

    *r!'avnicapr= new*r!'avnica(niz);

    yste.out.rintn(@un! - +pr.uun!());

    yste.out.rintn(re'nja vre'n!st - +pr.srvr());

    yste.out.rintn(Ar!j r!i:v!'a - +pr.br*r!i:v!'a());

    }

    }

    @-A$4B-!lasa Prodavnica ima niz proizvoda kao parameter./etode su definisane unutar klase Prodavnica.Poto se nalaze unutar iste klase metode nemaju niz proizvoda kao pamarametar funkcije' jer imje niz dostupan za rad.

    C