pheo dakujem:-) skusal som to. kolekcie sme este nebrali, my sa zatial motame iba okolo konstruktorov, interface-ov, dedicnosti atd. niesom si isty ktory parameter dat do tejto metody
Kód: Vybrať všetko
vlak.pocitajMiesto();
// neskor som v triede Vlak zmenil
List<Vagon> vozne = new ArrayList<Vagon>();
na
ArrayList<Vagon> vozne = new ArrayList<Vagon>();
// a v maine volal metodu
vlak.pocitajMiesto(vlak.vozne);
len neviem ci toto riesenie je spravne a neminulo sa ucinku co si mi chcel vysvetlit
mirak2 skusal som to v triede napisat konstruktor pre rusen
Kód: Vybrať všetko
public Rusen(boolean engine, int pocetMiest){
this.engine = engine;
this.pocetMiest = pocetMiest;
}
// dostal som chybovu hlasku o tom ze Vagon.pocetMiest (vagon je rodicovska trieda )nieje ukazany/nevidi ho
pridam sem aj kod vsetkych tried , prosim o vysvetlenie chyb,teda ak sa to bude chciet niekomu citat, viem ze su to zaciatocnicke chyby len ked mi to niekto vysvetli tak to najrychlejsie pochopim
Kód: Vybrať všetko
public class Hlavna {
public static void main(String[] args){
Vlak vlak = new Vlak();
Rusen r = new Rusen();
r.setEngine(true);
r.setPocetMiest(0);
vlak.pridaj(r);
Vozen v1 = new Vozen();
v1.setPocetMiest(80);
v1.setPocetKupeciek(10);
v1.setObsadenych(32);
vlak.pridaj(v1);
Vozen v2 = new Vozen();
v2.setPocetMiest(80);
v2.setPocetKupeciek(10);
v2.setObsadenych(12);
vlak.pridaj(v2);
Vozen v3 = new Vozen();
v3.setPocetMiest(80);
v3.setPocetKupeciek(10);
v3.setObsadenych(60);
vlak.pridaj(v3);
Vozen v4 = new Vozen();
v4.setPocetMiest(80);
v4.setPocetKupeciek(10);
v4.setObsadenych(43);
vlak.pridaj(v4);
JedalenskyVozen j1 = new JedalenskyVozen(10);
j1.setPocetMiest(40);
j1.setObsadenych(35);
vlak.pridaj(j1);
PostovyVozen p1 = new PostovyVozen();
p1.setPocetMiest(0);
p1.setCielZasielok("Praha");
vlak.pridaj(p1);
SpaciVozen s1 = new SpaciVozen();
s1.setPocetMiest(40);
s1.setPocetPosteli(40);
s1.setObsadenych(13);
vlak.pridaj(s1);
PostovyVozen p2 = new PostovyVozen();
p2.setPocetMiest(0);
p2.setCielZasielok("Blava");
vlak.pridaj(p2);
vlak.pocitajMiesto(vlak.vozne);
vlak.miestoVoVlaku(vlak.vozne);
}
}
---------------------------------------------------------------------------------------------------------------------------------
import java.util.ArrayList;
//import java.util.List;
import java.util.Iterator;
public class Vlak implements Iterable<Vagon>{
ArrayList<Vagon> vozne = new ArrayList<Vagon>();
public boolean pridaj(Vagon e) {
return vozne.add(e);
}
public Iterator<Vagon> iterator() {
return vozne.iterator();
}
protected void pocitajMiesto(ArrayList<Vagon>vl){
motor(vl);
for(int i = 0; i < vl.size();i++){
vl.get(i).vypisObsadene (vl.get(i).getObsadenych());
vl.get(i).vypisVolne((vl.get(i).getPocetMiest())-(vl.get(i).getObsadenych()));
}
cielZasielok(vl);
}
private void motor(ArrayList<Vagon>v){
for (Vagon vag : v){
if (vag instanceof Rusen){
Rusen rusen = (Rusen)vag;//pretipovanie
if(rusen.isEngine() == true){
rusen.vypisObsadene();
rusen.vypisVolne();
}
}
}
}
private void cielZasielok(ArrayList<Vagon>v){
for (Vagon vag : v){
if (vag instanceof PostovyVozen){
PostovyVozen pv = (PostovyVozen)vag;
System.out.print("V postovom vozni sa nevezu ziadni cestujuci, ");
System.out.println("ciel zasielok je mesto "+ pv.getCielZasielok() + ".");
}
}
}
protected void miestoVoVlaku(ArrayList<Vagon>v){
int pocet = 0;
int pocetObsadenychMiest = 0;
for(int i = 0; i< v.size();i++){
pocet += v.get(i).getPocetMiest();
}
for(int j = 0; j< v.size();j++){
pocetObsadenychMiest += v.get(j).getObsadenych();
}
System.out.println("Pocet miest vo vlaku " + pocet + " zostava volnych este "
+ (pocet - pocetObsadenychMiest) + " miest.");
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------
public abstract class Vagon implements Vypis{
private int pocetMiest;
private int obsadenych;
public abstract void vypisVolne(int x);
public abstract void vypisObsadene(int x);
public int getPocetMiest() {
return pocetMiest;
}
public void setPocetMiest(int pocetMiest) {
this.pocetMiest = pocetMiest;
}
public int getObsadenych() {
return obsadenych;
}
public void setObsadenych(int obsadenych) {
this.obsadenych = obsadenych;
}
}
-----------------------------------------------------------------------------------------------------------------------------
public interface Vypis {
void vypisVolne(int x);
void vypisObsadene(int x);
}
----------------------------------------------------------------------------------------------------------------------------
public class Vozen extends Vagon{
private int pocetKupeciek;
public Vozen(){
}
//konstruktor
public Vozen(int pocetkupeciek){
super(); //volanie konstruktora rodica
this.pocetKupeciek = pocetkupeciek;
}
public int getPocetKupeciek() {
return pocetKupeciek;
}
public void setPocetKupeciek(int pocetKupeciek) {
this.pocetKupeciek = pocetKupeciek;
}
public void vypisVolne(int x) {
System.out.println(",zostava este " + x + " volnych miest.");
}
public void vypisObsadene(int x) {
System.out.print("V tomto vozni je " + x + " obsadenych miest");
}
}
-----------------------------------------------------------------------------------------------------------------------------
public class Rusen extends Vagon{
private boolean engine = true;
public Rusen(){
}
public Rusen(boolean engine){
this.engine = engine;
}
public boolean isEngine() {
return engine;
}
public void setEngine(boolean engine) {
this.engine = engine;
}
public void vypisVolne() {
System.out.println(" v rusni sa vezie motor.");
}
public void vypisObsadene() {
System.out.print("V rusni sa nevezu ziadni cestujuci.");
}
@Override
public void vypisVolne(int x) {
// TODO Auto-generated method stub
}
@Override
public void vypisObsadene(int x) {
// TODO Auto-generated method stub
}
}
---------------------------------------------------------------------------------------------------------------------------------------------
public class SpaciVozen extends Vagon{
private int pocetPosteli;
public SpaciVozen() {
}
public SpaciVozen(int postele){
pocetPosteli = postele;
}
public int getPocetPosteli() {
return pocetPosteli;
}
public void setPocetPosteli(int pocetPosteli) {
this.pocetPosteli = pocetPosteli;
}
@Override
public void vypisVolne(int x) {
// TODO Auto-generated method stub
System.out.println("zostava este "+ x +" volnych posteli.");
}
@Override
public void vypisObsadene(int x) {
// TODO Auto-generated method stub
System.out.print("Spaci vozen ma obsadenych " + x +" posteli,");
}
}
---------------------------------------------------------------------------------------------------------------------------------
public class JedalenskyVozen extends Vagon {
private int pocetStolov;
public JedalenskyVozen(int pocetStolov){
this.pocetStolov = pocetStolov;
}
public int getPocetStolov() {
return pocetStolov;
}
public void setPocetStolov(int pocetStolov) {
this.pocetStolov = pocetStolov;
}
public void vypisVolne(int x) {
System.out.println(" zostava este "+ x + " volnych miest." );
}
public void vypisObsadene(int x) {
System.out.print("Jedalensky vozen ma obsadenych "+ x + " miest," );
}
}
----------------------------------------------------------------------------------------------------------------------------------
public class PostovyVozen extends Vagon{
private String cielZasielok;
public PostovyVozen(){
}
public PostovyVozen(String cielZasielok){
this.cielZasielok = cielZasielok;
}
public String getCielZasielok() {
return cielZasielok;
}
public void setCielZasielok(String cielZasielok) {
this.cielZasielok = cielZasielok;
}
@Override
public void vypisVolne(int x) {
// TODO Auto-generated method stub
}
@Override
public void vypisObsadene(int x) {
// TODO Auto-generated method stub
}
}