Filmsammlung erstellen

Diskutiere Filmsammlung erstellen im Java Basics - Anfänger-Themen Bereich.
E

Erika2401

Hallo Leute,
ich sollte für meine Teilleistung eine Filmsammlung erstellen, mit der Möglichkeit der Bestimmung, ob ein Film gesehen wurde oder nicht und dass man den Zustand von gesehen="Nein" zu gesehen="Ja" ändern kann. Könnte mich jemand beraten, was ich falsch gemacht habe?Wäre sehr dankbar.Grüße,Erika.
Mein Code sieht folgend aus:

public class Film{
public String name;
public int dauer;
public String gesehen = null;

public Film(String name, int dauer){
this.name=name;
this.dauer=dauer;
}
public String getName(){
return this.name;
}
public int getDauer(){
return this.dauer;
}
public boolean setZustand(String gesehen){
if(gesehen == null){
gesehen = name;
return true;
}
return false;
}
public static void gesehen(String gesehen){
int j = filme.gesehen();
if (i=0; i<j; i++){
String f = filme.get(i);
if (filme.gesehen() == "Nein"){
return System.out.println("Ja");
}
return gesehen;
}
}
public String toString(){
return "Film{Name="+this.name+",Dauer="+this.dauer+",Gesehen="+this.gesehen + "}";

public static void main(String[] args) {
ArrayList<Film> filme = new ArrayList<Film>();
Film film1 = new Film("A good film", 145, "Ja");
Film film2 = new Film("A very good film", 90, "Nein");
Film film3 = new Film("Das Leben in Bamberg", 60, "Ja");
filme.add(film1);
filme.add(film2);
filme.add(film3);
System.out.println(filme.toString());
}
}
}
 
Kirby_Sike

Kirby_Sike

Viel zu umständlich ;) Benutze einen boolean für filmgesehen :) Zudem ist in der variable „name“ nicht Ja oder Nein gespeichert sondern der Name des Films ;)
 
J

JustNobody

Ein Fehler der auffällt:
Code:
public boolean setZustand(String gesehen){
if(gesehen == null){
gesehen = name;
return true;
}
return false;
}
Du hast eine Instanzvariable und den Parameter mit gleichem Namen. Ich habe keine Ahnung, was du da aus welchem Grund setzen willst, aber gesehen=Name verändert den Parameter.

Tipp: mach Parameter generell final, dann verhindert der Compiler solche Konstrukte.

Und Setter einer Instanzvariable sollte die Instanzvariable auf den gegebenen Wert setzen. Du weist aber Name zu?
 
Kirby_Sike

Kirby_Sike

Also mit einem boolean könnte es wie folgt gelöst werden: Wenn du den film „anschaust“ dann negierst du die Variable durch ein ! Also in deinem Fall so !gesehen :) Dein getter zu der Instanzvariable gesehen würde dann z.B. So aussehen:


Java:
public boolean viewStatus(){
    return gesehen;
}
 
mihe7

mihe7

Java:
if (filme.gesehen() == "Nein"){
return System.out.println("Ja");
}
ROFL :)
 
Thema: 

Filmsammlung erstellen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben