Strona 1 z 1
Java - cwiczenie z kursu
Napisane: sobota, 30 stycznia 2016, 18:47
przez szyjek
Hej,
właśnie zaczynam swoją przygodę z Java bazując na Videokursie i zatrzymałem się w miejscu ćwiczenia "Butelka" poniżej wklejam fragment kodu:
...
Butelka[] butelka = new Butelka [50];
for (int i=0; i<=butelka.length-1;i++)
{
butelka=new Butelka (5,10);
System.out.println(butelka);
}
...
i program wyrzuca mi te 50 butelek ale z wartościami "butelka.Butelka@66d3c617" itd. nie wiem czy jest to coś w stylu ścieżki? ale dlaczego? przecież przypisałem na sztywno wartość ileLitrow - 5 oraz pojemnosc - 10. Gdzie tu jest błąd?
Re: Java - cwiczenie z kursu
Napisane: sobota, 30 stycznia 2016, 20:36
przez Morfidon
Hej może nie nadpisałeś metody toString?
Re: Java - cwiczenie z kursu
Napisane: sobota, 30 stycznia 2016, 23:15
przez szyjek
nie rozumiem, na czym podlega nadpisanie i dlaczego musiałbym to wykonać?
Poniżej cały kod :
Code: Zaznacz cały
package butelka;
public class Butelka {
private double ileLitrow;
private double pojemnosc;
Butelka (double ileLitrow, double pojemnosc)
{
this.ileLitrow = ileLitrow;
this.pojemnosc = pojemnosc;
}
double getIleLitrow ()
{
return ileLitrow;
}
double getPojemnosc ()
{
return pojemnosc;
}
void wlej (double ilosc)
{
this.ileLitrow += ilosc;
}
boolean wylej (double ilosc)
{
if (ilosc <= ileLitrow)
this.ileLitrow -= ilosc;
else
return false;
return true;
}
void przelej (double ilosc, Butelka gdziePrzelac)
{
if (this.wylej(ilosc))
{
gdziePrzelac.wlej(ilosc);
}
else
System.out.println("Za malo");
}
public static void main(String[] args) {
Butelka[] butelka = new Butelka [50];
for (int i=0; i<=butelka.length-1;i++)
{
butelka[i]=new Butelka (5,10);
System.out.println(butelka[i]);
}
(....)
Re: Java - cwiczenie z kursu
Napisane: niedziela, 31 stycznia 2016, 01:00
przez Morfidon
W lekcji 44 mówię o metodzie toString.
Problem polega na tym, że Ty stworzyłeś obiekt. Skąd kompilator ma wiedzieć co chcesz wypisać pisząc:
?
Kiedy to jest Twój obiekt. Komputer nie wie co to jest 'butelka'. Musisz zdecydować o tym nadpisując metodę toString, więcej o tym masz we wspomnianej lekcji.
Na ten moment możesz jednak sobie poradzić inaczej. Tworzysz metodę np. getObjectInfo() i tam zwracasz co chcesz aby zostało wypisane i wywołujesz to tak:
Code: Zaznacz cały
System.out.println(butelka[i].getObjectInfo());
Korzystaj proszę ze znaczników code

poprawiłem w istniejących postach.
Re: Java - cwiczenie z kursu
Napisane: niedziela, 31 stycznia 2016, 09:28
przez szyjek
Super, dzięki za wskazówki

fajnie jakbyś gdzieś zamieszczał rozwiązania ćwiczeń.
Pozdrawiam.