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:

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.

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.