vezbe 03 - static atribut, niz kao parametar klase
Post on 25-Feb-2018
228 Views
Preview:
TRANSCRIPT
-
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
top related