Programare orientată pe obiecte în Java

Orice discutie care nu se isi are locul in alt forum. Zona off-topic.

Moderatori: cristi, icsfails, Moderatori

salierimorella
New Member
Mesaje: 1
Membru din: Vin Ian 01, 2016 12:09 am

Programare orientată pe obiecte în Java

Mesajde salierimorella » Sâm Ian 02, 2016 11:30 am

Incerc sa rezolv un cod Java si am nevoie de ajutor:

//Clasa Produs
public abstract class Product {
//Declararea variabilelor

String barcode;
String name;
float price;
public abstract double countPrice();

public Product(String barcode, String name, float price) {

}
public String getBarcode(){
return barcode;
}

public String getName(){
return name;
}

public float getPrice(){
return price;
}
public void setBarcode(String barcode){
this.barcode = barcode;
}
public void setName(String name){
this.name = name;
}
public void setPrice(float price){
this.price = price;
}



//Suprascrierea metodei toString
@Override
public String toString() {
//Fiindcă se execută concatenarea stringului, cea mai eficientă variantă este folosirea clasei StringBuilder
StringBuilder output = new StringBuilder();
//Se adaugă date despre produs. this.name va fi atribuită constructorului.
//De asemenea, şi preţul va fi atribuit în constructor, însă acesta nu se scrie direct,
//ci se procesează prim metoda calculare preţ
//(această metodă va fi scrisă mai târziu la nivelul clasei copil,
//deoarece fiecare clasă copil are propria cotă de impozitare)
output.append("Produs: ");
output.append(this.barcode).append(", ");
output.append(this.name).append(", ");
output.append("preţ: ").append(countPrice()).append(", ");
return output.toString();
}




}


//Clasa Chocolate clasa Produs
public class Chocolate extends Product {

private float WheightChocolate;


public Chocolate(String barcode, String name, float price, float WeightChocolate)
{
//Se atribuie parametrii prin constructor
super(barcode, name, price);
this.WheightChocolate=WheightChocolate;
}
@Override
public String toString(){


return super.toString() +", WheighChocolate: " + this.WheightChocolate;
}




private final static float Taxes_VAT= 0.2f;

public static float getTaxes_VAT() {

return Taxes_VAT;

}





@Override
public final double countPrice() {
//Se calculează preţul produsului cu taxa de 20%
return 0.2*this.price + this.price;
}
}

public class Wine extends Product{
private float VolumeWine;

public Wine(String barcode, String name, float price, float VolumeWine)
{
//Se atribuie parametrii prin constructor
super(barcode, name, price);
this.VolumeWine=VolumeWine;
}


@Override
public String toString(){


return super.toString() +", VolumeWine: " + this.VolumeWine;
}
@Override
public final double countPrice() {
//Se calculează preţul produsului cu taxa TVA de 20% plus taxa suplimentara de 10% din TVA
return this.price + this.price*0.2 + 0.1*(this.price*0.2);
}

private final static float Taxes_VAT=0.2f;

public static float getTaxes_VAT() {

return Taxes_VAT;

}

private final static float Taxes_ADD=0.1f;
public static float getTaxes_ADD() {

return Taxes_ADD;

}

}

Am aplicat-o comform acestui exercitiu:

Imaginaţivă
că trebuie să modelaţi un sistem informaţional al unui magazin. Trebuie să creaţi clasa Product, care
va reprezenta baza pentru moştenirea ce urmează şi care nu se va putea instanţia. Această clasă trebuie moştenită
de două clase care reprezintă grupuri concrete de produse: Chocolate şi Wine. Această ierarhie, reprezentată prin
diagrama de mai jos, arată astfel:Imagine
Fiecare produs trebuie să posede anumite caracteristici precum:
denumirea produsului,
codul de bare,
preţul de bază,
taxa.
De asemenea, fiecare produs posedă şi o metodă pentru calcularea preţului, metodă care se calculează atunci
când preţul de bază se măreşte cu suma taxei. Taxa (TVA) pentru fiecare produs este de 20% şi aceasta este o dată
constantă care nu se va modifica.
Produsele din grupul de vinuri au o taxă suplimentară, fiindcă intră în categoria băuturilor alcoolice, aşadar această
taxă suplimentară este de 10% din preţul cu TVA. Şi această dată este constantă şi nu se va modifica.
Din motivele menţionate, este necesar să redefinim metoda pentru calcularea preţurilor în cadrul clasei Wine.
În afară de aceasta, clasa Wine trebuie să posede un atribut care va defini volumul sticlei, iar clasa Chocolate
trebuie să aibă atributul care va defini greutatea.
În clasele Chocolate şi Wine, trebuie creaţi constructori parametrizaţi pentru crearea obiectelor.
De asemenea, în clase trebuie redefinită metoda to String pentru afişarea informaţiilor despre obiect.
În cele din urmă, trebuie creat câte un obiect pentru fiecare dintre aceste clase, iar la ieşire trebuie afişate
informaţiile despre produse, precum şi preţul final, definit prin metoda pentru calcularea preţului. Ca preţ de bază
luaţi o sumă arbitrară.



nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: Programare orientată pe obiecte în Java

Mesajde nevvermind » Sâm Ian 02, 2016 11:13 pm

a) asta-i phpromania, nu?
b) suntem in 2016. foloseste taguri pt cod sau pastebin, ca nimeni nu sta sa citeasca atat plain text.
c) nu spui clar unde-i problema.
d) ai scris prea mult
e) fa-ti temele singur, omule
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/


Înapoi la “Discuţii generale”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 27 vizitatori