BlueJ - Objektinteraktion

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • BlueJ - Objektinteraktion

    Könnte mir jemand bei dieser Aufgabe helfen:



    Es soll ein JAVA Programm geschrieben werden, in dem zwei Klassen
    vorkommen, die miteinander interargieren. Dies soll beinhalten:


    - Klassendiagramm

    - Zwei Klassen

    - Eine Klasse greift auf Methoden der anderern Klasse zu

    - Eine der beiden Klassen wird als Objektdatentyp deklariert. Dies kann
    beim Übergabeparameter einer Methode oder auch im Konstruktor
    angewendet werden.



    Das Thema lautet "Kino", die erste Klasse soll "Wochentag" (inkl.
    heutigerFilm1 und heutigerFilm2, inkl. Spielzeit maximal) heißen. Als
    zweite Klasse soll "Film" (inkl. Spieldauer) angegeben werden.

    Und dies soll getestet werden : Montag(max.180 min) -
    Film1="Verblendung"(100 min) und Film2="Matrix" (120 min) -> ?? (was
    passiert)



    bis jetzt habe ich folgendes, für die Klasse "Wochentag" :

    public class Wochentag
    {
    public int maxspielzeit;
    public Film film1;
    public Film film2;
    public String wochentagbez;

    public Wochentag (int maxspielzeit, Film film1, Film film2, String wochentagbez)
    {
    this.maxspielzeit = maxspielzeit;
    this.film1 = film1;
    this.film2 = film2;
    this.wochentagbez = wochentagbez;
    }
    public Wochentag ()
    {
    this.maxspielzeit = 180;
    }
    public int getmaxspielzeit ()
    {
    return maxspielzeit;
    }
    }



    jetzt wüsste ich gerne, was ich noch machen muss (bzw. ob es überhaupt richtig ist), weil ich irgendwie nicht weiterkomme..
  • Klassendiagramm

    Eine Klasse greift auf Methoden der anderern Klasse zu

    Die oben zitierten Dinge fehlen noch.

    Außerdem wäre es bestimmt schön, wenn man sich was ausgeben lassen könnte.
    Ich weiß nicht was du mit maxspielzeit willst, aber ich würde z.B. dem Film eine Länge in Minuten geben. Dann kannst du am Wochentag eine Methode schreiben, die dir die Gesammtspielzeit zurückgibt, indem sie die Längen der beiden Filme addiert. Damit hättest du auch schon einen der obigen Punkte erledigt.
  • Also es sieht jetzt so aus..

    public class Wochentag
    {
    public int maxspielzeit;
    public String film1;
    public String film2;
    public Wochentag (int maxspielzeit, String film1, String film2)
    {
    this.maxspielzeit = maxspielzeit;
    this.film1 = film1;
    this.film2 = film2;
    }

    public Wochentag ()
    {
    this.maxspielzeit = 180;
    }

    public int getmaxspielzeit ()
    {
    return maxspielzeit;
    }

    public String getfilm1 ()
    {
    return film1;
    }

    public String getfilm2 ()
    {
    return film2;
    }
    }


    und


    public class film
    {
    public String titel;
    public int spieldauer;



    public film (String titel, int spieldauer)
    {
    this.titel = titel;
    this.spieldauer = spieldauer;


    }

    public int getspieldauer ()
    {
    return spieldauer;
    }


    public String titel ()
    {
    return titel;


    }

    }




    Jetzt soll ja noch angezeigt werden, dass wenn die maxspielzeit von 180 überschritten wird ein Fehler auftritt. Aber wie macht man das? I.wie mit If ...
  • Quellcode

    1. public class Wochentag
    2. {
    3. public int maxspielzeit;
    4. public film film1;
    5. public film film2;
    6. public Wochentag (int maxspielzeit, film film1, String film2)
    7. {
    8. this.maxspielzeit = maxspielzeit;
    9. }
    10. public Wochentag ()
    11. {
    12. this.maxspielzeit = 180;
    13. }
    14. public int getmaxspielzeit ()
    15. {
    16. return maxspielzeit;
    17. }
    18. public int getGesammtspieldauer ()
    19. {
    20. return film1.getspieldauer() + film2.getspieldauer();
    21. }
    22. }
    Alles anzeigen


    So.. und was muss ich jetzt noch machen?
  • Gast schrieb:

    Quellcode

    1. public class Wochentag
    2. {
    3. public int maxspielzeit;
    4. public film film1;
    5. public film film2;
    6. public Wochentag (int maxspielzeit, film film1, film film2)
    7. {
    8. this.maxspielzeit = maxspielzeit;
    9. }
    10. public Wochentag ()
    11. {
    12. this.maxspielzeit = 180;
    13. }
    14. public int getmaxspielzeit ()
    15. {
    16. return maxspielzeit;
    17. }
    18. public int getGesammtspieldauer ()
    19. {
    20. return film1.getspieldauer() + film2.getspieldauer();
    21. }
    22. }
    Alles anzeigen


    So.. und was muss ich jetzt noch machen?
  • Gast schrieb:

    Gast schrieb:

    Quellcode

    1. public class Wochentag
    2. {
    3. public int maxspielzeit;
    4. public film film1;
    5. public film film2;
    6. public Wochentag (int maxspielzeit, film film1, film film2)
    7. {
    8. this.maxspielzeit = maxspielzeit;
    9. }
    10. public Wochentag ()
    11. {
    12. this.maxspielzeit = 180;
    13. }
    14. public int getmaxspielzeit ()
    15. {
    16. return maxspielzeit;
    17. }
    18. public int getGesammtspieldauer ()
    19. {
    20. return film1.getspieldauer() + film2.getspieldauer();
    21. }
    22. }
    Alles anzeigen


    Mh das funktioniert aber nicht, da man bei den objekten den filmnamen nicht eingeben kann.. dafür muss das ja string sein..
  • Den String für die Filmnamen hast du doch wahrscheinlich schon im Objekt Film, als
    Attribute oder nicht? Wenn ja kannst du doch einfach so machen:

    film1.titel='beispiel'; // bei public attributen
    film1.setTitel('bespiel'); //bei private attributen

    Gast schrieb:

    public class Wochentag
    {
    public int maxspielzeit;
    public film film1;
    public film film2;
    public Wochentag (int maxspielzeit, film film1, film film2)
    {
    this.maxspielzeit = maxspielzeit;
    }

    public Wochentag ()
    {
    this.maxspielzeit = 180;
    }

    public int getmaxspielzeit ()
    {
    return maxspielzeit;
    }
    public int getGesammtspieldauer ()
    {
    return film1.getspieldauer() + film2.getspieldauer();
    }
    }

    Nun setzt du für einen Wochentag eine maxspielzeit fest von 180, wobei ich mich frage wozu?
    Die Gesamtspieldauer ergibt sich doch aus den Filmen die an diesem jeweiligen Wochentag
    gezeigt werden. Wo ist der Zusammenhang/Abhängigkeit zwischen der maxspielzeit und der Gesamtspieldauer?
    Darf die Gesamtspiel dauer nicht größer sein als die maxspielzeit? Das ist mir noch etwas unklar.
    "Irren ist menschlich. Aber wer richtigen Mist bauen will, braucht einen Computer."