Zadanie1
Zaprojektuj z użyciem koncepcji dziedziczenia hierarchię klas opisujących pojazdy komunikacji miejskiej. Wyraź w tej hierarchii następujące fakty:
1.wszystkie pojazdy komunikacji miejskiej (k. m.) są pojazdami,
2.komunikacja miejska używa tramwajów i autobusów,
3.pojazdy są garażowane w zajezdniach, odpowiednio tramwajowych i autobusowych,
4.każdy pojazd zna swoją szybkość maksymalną,
5.każdy pojazd k. m. zna swój numer,
6.każdy pojazd k. m. zna swoją zajezdnię,
7.każdy tramwaj jest zestawem 1 do 3 wagonów (i wie, z ilu wagonów się składa),
8.każdy autobus wie, ile zużył paliwa w bieżącym miesiącu,
9.każda zajezdnia zna swoją nazwę,
10.każda zajezdnia wie, jakie pojazdy do niej należą,
11.każda zajezdnia ma nazwę.
Każdy pojazd musi umieć podać swój opis w postaci napisu. Opis ma zawierać wszystkie informacje,które zna dany pojazd (np. numer, czy szybkość maksymalną). Opis zajezdni to nazwa zajezdni, jej typ i opisy poszczególnych pojazdów. Zajezdnia autobusowa podaje dodatkowo sumaryczne zużycie paliwa w bieżącym miesiącu, a tramwajowa ogólną liczbę wagonów.Napisz program w Javie, który utworzy kilka obiektów reprezentujących wszystkie pojazdy i dwie zajezdnie (autobusową i tramwajową), przydzieli pojazdy do zajezdni, a następnie wypisze opis obu zajezdni.
Oto co mi się udało napisać:
import java.util.*;
public class komunikacja {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
}
}
class pojazd
{
private String nazwa;
private int numer;
private int nastepnyNumer=0;
private int max;
public pojazd(String nazwa,int numer,int max)
{
this.nazwa=nazwa;
this.numer=numer;
this.max=max;
}
public String pobierzNazwa()
{
return nazwa;
}
public int maxPredkosc()
{
return max;
}
public int pobierzNr()
{
nastepnyNumer++;
numer=nastepnyNumer;
return numer;
}
}
class autobus extends pojazd
{
private String zajezdnia;
private int paliwo;
public autobus(String nazwa,int numer,int max,String zajezdnia,int paliwo)
{
super(nazwa,numer,max);
this.zajezdnia=zajezdnia;
this.paliwo=paliwo;
}
public int pobierzPaliwo()
{
Random zuzycie=new Random();
int aPaliwo=zuzycie.nextInt(500)+380;
return aPaliwo;
}
}
class tramwaj extends pojazd
{
private int wagon;
public tramwaj(String nazwa,int numer,int max,String zajezdnia,int wagon)
{
super(nazwa,numer,max);
this.wagon=wagon;
}
public int iloscWagon()
{
Random losujW=new Random();
wagon=losujW.nextInt(3)+1;
return wagon;
}
}
class zajedznia
{
String nazwaZ;
int [] pojazdy=new int[6];
public zajedznia(String nazwaZ,int pojazdy[])
{
this.nazwaZ=nazwaZ;
this.pojazdy=pojazdy;
}
public String pobierzNazweZ()
{
return nazwaZ;
}
}
Jakby ktoś mógłby mi pomóc i objaśnić to byłbym bardzo wdzięczny.