• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Dziedziczenie

Object Storage Arubacloud
0 głosów
128 wizyt
pytanie zadane 7 września 2017 w Java przez acsp Nowicjusz (220 p.)
zamknięte 7 września 2017 przez acsp

class Box {
	private double width;
	private double height;
	private double depth;
	
	Box(Box obiekt){
		width=obiekt.width;
		height=obiekt.height;
		depth=obiekt.depth;
	}
	
	Box(double w, double h, double d){
		w=width;
		h=height;
		d=depth;
	}
	
	Box(){
		width=-1;
		height=-1;
		depth=-1;
	}
	
	Box(double len){
		width=height=depth=len;
	}
	
	double volume() {
		return width*height*depth;
	}
}

class BoxWeight extends Box{
	double weight;
	
	BoxWeight(BoxWeight obiekt){
		super(obiekt);
		weight=obiekt.weight;
	}
	
	BoxWeight(double w, double h, double d, double m){
		super(w,h,d);
		weight=m;
	}
	
	BoxWeight(double len, double m){
		super(len);
		weight=m;
	}
	
	BoxWeight(){
		super();
		weight=-1;
	}
}

class Shipment extends BoxWeight{
	double cost;
	
	Shipment(Shipment obiekt){
		super(obiekt);
		cost=obiekt.cost;
	}
	
	Shipment(double w, double h, double d, double m, double c){
		super(w,h,d,m);
		cost=m;
	}
	
	Shipment(double len, double m, double c){
		super(len, m);
		cost=c;
	}
	
	Shipment(){
		super();
		cost=-1;
	}
}




public class DemoShipment {

	public static void main(String[] args) {
		double vol;
		
		Shipment shipment1=new Shipment(10, 20, 15, 10, 3.14);
		Shipment shipment2=new Shipment(2, 3, 4, 0.76, 1.28);
		
		vol=shipment1.volume();
		System.out.println("Objętość shipment1: "+vol);
		System.out.println("Ciężar shipment1: "+shipment1.weight);
		System.out.println("Koszt przesyłki w złotówkach:" +shipment1.cost);
		
		
		vol=shipment2.volume();
		System.out.println("Objętość shipment2: "+vol);
		System.out.println("Ciężar shipment1: "+shipment2.weight);
		System.out.println("Koszt przesyłki w złotówkach:" +shipment2.cost);
		
	}

}

Nie wiem gdzie zrobiłem błąd ale otrzymuję złe wyniki. Zgadza się tylko ciężar. Objętość i koszt w obu przypakach pokazuję jako ciężar
Objętość shipment1: 0.0
Ciężar shipment1: 10.0
Koszt przesyłki w złotówkach:10.0
Objętość shipment2: 0.0
Ciężar shipment1: 0.76
Koszt przesyłki w złotówkach:0.76

komentarz zamknięcia: Znalazłem rozwiązanie
komentarz 7 września 2017 przez criss Mędrzec (172,590 p.)
    Shipment(double w, double h, double d, double m, double c){
        super(w,h,d,m);
        cost=m;
    }

?
Btw. wypadałoby troche więcej mówiące nazwy zmiennych dać niż pojedynczne litery.

komentarz 7 września 2017 przez acsp Nowicjusz (220 p.)
Ok, teraz faktycznie pokazuję mi poprawnie koszt, nadal objętość w obu przypadkach pokazuję 0.
komentarz 7 września 2017 przez criss Mędrzec (172,590 p.)
No to poprawnie czy niepoprawnie? Anyway - strzelam, że taki sam błąd zrobiłeś gdzie indziej.
komentarz 7 września 2017 przez acsp Nowicjusz (220 p.)
Koszt i ciężar teraz pokazuję poprawnie. Objętość nadal źle.

1 odpowiedź

+1 głos
odpowiedź 7 września 2017 przez Mateusz51 Nałogowiec (28,180 p.)
 Box(double w, double h, double d){
        w=width;
        h=height;
        d=depth;
    }

Masz tutaj bład. Przypisujesz do zmiennych które dostałeś wartości z pól klasy. A z tego co wiem to w konstruktorze powinieneś robić na odwrót. 

komentarz 7 września 2017 przez acsp Nowicjusz (220 p.)
Dzięki wielkie, już wszystko śmiga. :)

Podobne pytania

0 głosów
2 odpowiedzi 349 wizyt
pytanie zadane 6 grudnia 2018 w Java przez klestdrsv Nowicjusz (180 p.)
0 głosów
1 odpowiedź 451 wizyt
pytanie zadane 13 maja 2018 w Java przez Adrian Paź Obywatel (1,270 p.)
0 głosów
1 odpowiedź 575 wizyt

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...