Java - cwiczenie z kursu

Dyskusje na temat Javy.
szyjek
Nowicjusz
Posty: 3
Dołączył(a): sobota, 30 stycznia 2016, 18:38

Java - cwiczenie z kursu

Post 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?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Java - cwiczenie z kursu

Post przez Morfidon »

Hej może nie nadpisałeś metody toString?
szyjek
Nowicjusz
Posty: 3
Dołączył(a): sobota, 30 stycznia 2016, 18:38

Re: Java - cwiczenie z kursu

Post 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]);
}


(....)
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Java - cwiczenie z kursu

Post 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:

Code: Zaznacz cały

System.out.println(butelka[i]);
?

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.
szyjek
Nowicjusz
Posty: 3
Dołączył(a): sobota, 30 stycznia 2016, 18:38

Re: Java - cwiczenie z kursu

Post przez szyjek »

Super, dzięki za wskazówki :) fajnie jakbyś gdzieś zamieszczał rozwiązania ćwiczeń.

Pozdrawiam.
Post Reply