Witam. Mam takie zadanie do zrobienia z javy. nie jest to nic trudnego ale utknąłem w jednym momencie.
Chodzi o stworzenie tabeli "las" z wcześniej utworzonymi drzewami.
Tresc zadania:
Utwórz klasę Drzewo z polami boolean wiecznieZielone, int wysokosc oraz String
przekrojDrzewa, następnie zaimplementuj konstruktory inicjujące pola i metodę
String toString() wypisującą na konsoli informacje o drzewie.
To jest łatwe:
public class Drzewo {
boolean wiecznieZielone;
int wysokosc;
String przekrojDrzewa;
Drzewo(boolean wiecznieZielone, int wysokosc, String przekrojDrzewa){
this.wiecznieZielone = wiecznieZielone;
this.wysokosc = wysokosc;
this.przekrojDrzewa = przekrojDrzewa;
}
public String toString(){
return "Informacja czy drzewo jest wiecznie zielone: " + wiecznieZielone +
"\nInformacja o wysokości drzewa: " + wysokosc +
"\nInformacja o przekroju drzewa: " + przekrojDrzewa;
}
}
Utwórz klasę DrzewoIglaste dziedziczącą po klasie Drzewo, oraz definiująca pola int
iloscIgiel i double dlugscSzyszki. Następnie przygotuj konstruktor inicjujący
wszystkie pola oraz metodę String toString() wypisującą na konsoli informacje o
drzewie wraz z wartościami pól opisujących drzewo iglaste.
public class DrzewoIglaste extends Drzewo{
int iloscIgiel;
double dlugscSzyszki;
DrzewoIglaste(boolean wiecznieZielone, int wysokosc, String przekrojDrzewa, int iloscIgiel, double dlugoscSzyszki){
super(wiecznieZielone, wysokosc, przekrojDrzewa);
this.iloscIgiel = iloscIgiel;
this.dlugscSzyszki = dlugoscSzyszki;
}
public String toString(){
return super.toString() +
"\nInformacja o ilosci igiel: " +iloscIgiel +
"\nInformacja o dlugisci szyszki: " +dlugscSzyszki;
}
}
Utwórz klasę DrzewoLisciaste dziedziczącą po klasie Drzewo, oraz definiująca pole
int ksztaltLiscia i metodę String toString() wypisującą na konsoli wszystkie
informacje o drzewie.
public class DrzewoLisciaste extends Drzewo{
int ksztaltLiscia;
DrzewoLisciaste(boolean wiecznieZielone, int wysokosc, String przekrojDrzewa, int ksztaltLiscia){
super(wiecznieZielone, wysokosc, przekrojDrzewa);
this.ksztaltLiscia = ksztaltLiscia;
}
public String toString(){
return super.toString() +
"\nInformacja o ksztalcie liscia: " + ksztaltLiscia;
}
}
Utwórz klasę DrzewoOwocowe dziedziczącą po klasie DrzewoLisciaste, oraz definiująca
pole String nazwaOwoca, podobnie jak w poprzednich zadaniach uzupełnij klasę
o konstruktor i funkcjonalną metodę toString.
public class DrzewoOwocowe extends DrzewoLisciaste{
String nazwaOwoca;
DrzewoOwocowe(boolean wiecznieZielone, int wysokosc, String przekrojDrzewa, int ksztaltLiscia, String nazwaOwoca){
super(wiecznieZielone, wysokosc, przekrojDrzewa, ksztaltLiscia);
this.nazwaOwoca = nazwaOwoca;
}
public String toString(){
return super.toString() +
"\nInformacja o owocach: " + nazwaOwoca;
}
}
I to z czym juz sobie nieporadzilem:
Na koniec utwórz program, który wypełni tablicę Drzewo[] las drzewami takimi
jak: sosny, modrzewie, dęby, osiki, morelowce czy śliwy. Wykorzystując mechanizm
polimorfizmu wyświetl wszystkie informacje o wszystkich drzewach
moje pytanie jak utworzyć ten las?
Zakładam że aby wypełnić ta tablice musze zastosować pętlę która będzie używała konstruktorów. Bo ręczne tworzenie nowego objektu/drzewa w lesie wydaje mi sie pracochłonne i chyba nie o to chodzi w zadaniu.
Może któs coś mi zaproponować?
to co mam do tej pory to:
public class DrzewoTest {
public static void main(String[] args) {
Drzewo drzewo = new Drzewo (false, 150, "Poprzeczny");
DrzewoIglaste drzewoIgl = new DrzewoIglaste (true, 340, "Poprzeczny",14325754,10);
DrzewoLisciaste drzewolisc = new DrzewoLisciaste (false, 540, "Poprzeczny",10);
DrzewoOwocowe drzewoOwoc = new DrzewoOwocowe (false, 540, "Poprzeczny",10, "Jabłko");
Drzewo [] las = new Drzewo[6];
System.out.print(drzewo.toString());
}
}