BlueJ Objektinteraktion

werweiß

Mitglied
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 (wahrscheinlich nicht wirklich sinnvoll), für die Klasse "Wochentag" :
Java:
public class Wochentag
{
    public int maxspielzeit;
    public String film1;
    public String film2;
    public String wochentag;


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


public Wochentag ()
{
  this.maxspielzeit = 180;
  this.film1 = "Matrix";
  this.film2 = "Verblendung";
  this.wochentag = "Montag";
  
}

public int getmaxspielzeit()
{
    return maxspielzeit;
   
}
public void spielfilmzuordnen()

}

und für die Klasse "Film":

Java:
public class film
{
    public String titel;
    public int spieldauer;
    
 
public film (String titel, int spieldauer)
{
    this.titel = titel;
    this.spieldauer = spieldauer;
    
}    

 public film ()
 { 
     this.titel = "Matrix";
     this.spieldauer = 120;
     
     
    }
    
}

kann mir jemand sagen, was ich hierdran verändern muss und was ich noch machen muss?
 
Zuletzt bearbeitet von einem Moderator:

Marco13

Top Contributor
Klang eher so, also sollten die Filme, die im Wochentrag gespeichert werden, nicht Strings sein, sondern Film-Objekte (Film, nicht film)
 

werweiß

Mitglied
Ja, das habe ich auch schon gedacht, aber was kommt dann anstatt

Java:
public String film1;
    public String film2;
    public String wochentag;

dahin? Also ist das ja eigtl. alles falsch, aber was baut man stattdessen ein?
 
Zuletzt bearbeitet:

turtle

Top Contributor
Java:
public Film film1;
public Film film2;
public Wochentag wochentag;

Die Klassen Film und Wochentag musst Du natürlich noch schreiben;)
 

werweiß

Mitglied
Achso, also könnte man das dann so machen:

Java:
public class Wochentag
{
    public int maxspielzeit;
    public Film film1;
    public Film film2;
    public Wochentag wochentag;
 

werweiß

Mitglied
Also sieht das dann so aus?
Java:
public class Wochentag
{
    public int maxspielzeit;
    public Film film1;
    public Film film2;
    
public Wochentag (int maxspielzeit, Film film1, Film film2)
{   
    this.maxspielzeit = maxspielzeit;
    this.film1 = film1;
    this.film2 = film2;
}
}

Sry, das ich hier jeden Schritt machen muss, aber ich hab leider nicht so die Ahnung vom Programmieren..
 
Zuletzt bearbeitet:

timbeau

Gesperrter Benutzer
Sieht nicht schlecht aus. Damit hast du dann ein Objekt "wochentag" = eine Instanz der Klasse Wochentag.

Du könntest für Wochentag noch eine Variable wie du sie am Anfang schon geplant hast einzubauen. "Montag", "Dienstag" etc nur nenn diese NICHT wochentag. Eher wochentagBez oder sowas.

Und überleg dir mal eine Möglichkeit die Filme usw noch zu ändern später. Alles was im KOnstruktor passiert geschieht pro Instanz nur 1x.
 

werweiß

Mitglied
Ja jetzt hab ich das bis hierhin mal gemacht.. Aber jetzt weiß ich leider nicht mehr, wie es weiter geht oder ob das überhaupt so ok ist. WIe kann man jetzt z.B. festlegen, was für ein Wochentag es sein soll?

Java:
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;
}
}
 

werweiß

Mitglied
Also bis jetzt habe ich es so gemacht , jetzt müssten die Klassen ja noch miteinander interagieren.. , da die max. Spieldauer überschritten wird..

Klasse Wochentag:

Java:
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;
}

}

Klasse Film

Java:
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;
    
 
  }
  
}
 
Zuletzt bearbeitet:

werweiß

Mitglied
Wie kann ich das denn jetzt machen, dass ein Fehler angezeigt wird, da die maxspielzeit ja überschritten wird? Dann müssen die Klassen ja i.wie miteinander verbunden werden..
 

Marco13

Top Contributor
Warum sind die Filme jetzt wieder Strings? Wo und wann soll der Fehler denn angezeigt werden? Poste auch mal den Code, wo du die Objekte erstellst (vermutlich die main...)
 

Neue Themen


Oben