[java]Tworzenie klasy i jej składowych

Tillo
Użytkownik
Użytkownik
Posty: 66
Rejestracja: 23 kwie 2009, o 14:00
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 10 razy
Pomógł: 4 razy

[java]Tworzenie klasy i jej składowych

Post autor: Tillo »

Witam. Dopiero rozpoczynam przygodę z javą i w ogóle z programowaniem obiektowym.
Na pierwszej liście zadań dostałem takie oto polecenie:

Stworzyć klasę Samochod:
• z atrybutem iloscPaliwa,
• z atrybutem statycznym licznikSamochodu,
• z konstruktorem bezargumentowym (domyślnym) Samochod,
• z konstruktorem Samochod ,
• z metodą zatankujPaliwo,
• z metodą sprawdzPaliwo,
• z metodą statyczną podajLicznikSamochodu.

Ponieważ nie mam jak skonsultowac tego zadania z prowadzącym proszę o zweryfikowanie mojego kodu i Wasze uwagi na ten temat Z góry dzięki i pozdrawiam

Kod: Zaznacz cały

public class Samochod
{
   Samochod()
   {
   }
   Samochod(int i)
   {
   }
   double iloscPaliwa;
   static double licznikSamochodu;
   void zatankujPaliwo()
   {
   }
   void sprawdzPaliwo()
   {
   }
   static void podajLicznikSamochodu()
   {
   }
}
Ostatnio zmieniony 15 paź 2010, o 21:28 przez Tillo, łącznie zmieniany 1 raz.
woser
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 13 paź 2010, o 08:04
Płeć: Mężczyzna
Lokalizacja: Wrocław

[java]Tworzenie klasy i jej składowych

Post autor: woser »

Jest ok, ale dobrym zwyczajem jest umieszczanie atrybutow na gorze klasy
Tillo
Użytkownik
Użytkownik
Posty: 66
Rejestracja: 23 kwie 2009, o 14:00
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 10 razy
Pomógł: 4 razy

[java]Tworzenie klasy i jej składowych

Post autor: Tillo »

Już to przestawiłem w moim kodzie. No to jeżeli wszystko jest ok, to wysyłam to do oceny
Laurearel

[java]Tworzenie klasy i jej składowych

Post autor: Laurearel »

Okey, ale generalnie kod do dupy :
1) gdzie masz napisane jakie argumenty mają być przyjęte w konstruktorze bezargumentowym ? ; > Skoro ma to być paliwo (bo tak wychodzi) to i zmienna i i ta od paliwa w klasie najlepiej jakby tutaj były tego samego typu, albo jak chcesz uzyskać możliwość zapełnianiami pełnymi wartościami całkowitymi - okey, ale potem rzutuj do double przed przypisaniem
2) H E R M E T Y Z A C J A !!! Nie upubliczniaj składowych, a jak chcesz mieć do nich dostęp napisz odpowiednie metody.
3) Czy licznik samochodowy powinien być dostępny z zewnątrz ? No na logike nie koniecznie, więc warto zmienić jego zakres (chyba że masz konkretny powód do zrobienia publicznego), Ty ustawiłeś zakres pakietowy, jeżeli taki był zamiar to okey, ale pamiętaj o tym.
4) Tankujesz paliwo, to musisz podać ile, albo przez argumenty, albo stałą wartością w metodzie. Rozważ to wcześniej.
5) Jak sprawdzasz paliwo warto zwrócić wartość, stąd lepiej zrobić double sprawdzPaliwo() { return iloscPaliwa ; }
6) Trzeba jednoznacznie wyznaczyć czym jest podajLicznikSamochodu ? Ma zmieniać, czy ma zwracać ile wynosi ? tak czy siak oznacza to, że zmienną licznik samochodu warto zrobić prywatnym/chronionym by mieć do niego tylko z tej funkcji dostęp, a ją w zależności od potrzeby. Skoro licznik zazwyczaj jest w liczbach naturalnych podany, to po co na zmiennoprzecinkowych robić ?

przykładowo :

Kod: Zaznacz cały

public class Samochod
{
   Samochod()
   {
        iloscPaliwa = 0 ;
   }
   Samochod(int i)                   // i - ilość paliwa ? 
   {
        iloscPaliwa = (double)i ;
   }

   private double iloscPaliwa;
   private static int licznikSamochodu;

   void zatankujPaliwo(double paliwo)
   {
         iloscPaliwa+=paliwo ;
   }
   double sprawdzPaliwo()
   {
       return iloscPaliwa ;
   }
   static int  podajLicznikSamochodu()
   {
        return licznikSamochodu ;
   }
}
ODPOWIEDZ