Hallo, vorab. ich bin blutiger Anfänger, daher bitte ich um Nachsicht.
In meiner Aufgabenstellung soll ich ein Karteisystem (Inhalt Freunde) erstellen. Ohne Interface, einfach nur statisch. Ein Teil der Aufgabe ist es die Freunde auszugeben. Bei dieser kleinen Anforderung habe ich auf die Sichtbarkeiten vorerst verzichtet. Somit habe ich auch keine get- und set-Methoden eingebaut. Der Rahmen der Ausarbeitung ist leider sehr begrenzt.
Ich habe nun Folgendes gemacht.
Klasse Freund erstellt:
In der Main-Methode habe ich ein paar Beispielobjekte erzeugt. Die Objekte habe ich aufgrund der Aufgabenstellung in einer Array Liste eingebracht, es ist vorher nicht bekannt wie viel Freund-Objekte instanziert werden sollen.
Ich habe jetzt hier die Methode an zwei Stellen angebracht. Die Methode, die ich mit den // deaktiviert habe würde richtigerweise einzelne Freunde ausgeben können. Aber die andere freundAusgeben Methode verstehe ich einfach nicht. Wenn ich freund1.freundAusgeben() ausführe werden alle Freunde in dem richtigen Format ausgegeben. Wenn ich nun freund2.freundAusgeben() ausführe wird vier mal Bernd Maier ausgegeben. Warum ist das so?
Wie würdet ihr alle Freunde ausgeben? mit meiner Methode freund1.freundAusgeben() ist das ja eher irreführend.
Eine Weitere Anforderung der Arbeit ist jedem Freund ein eineindeutiges Erkennungsmerkmal zu verpassen. Ich habe mir darüber auch Gedanken gemacht. Über die Array Liste hätte jedes Objekt eine Position in dem Array aber das Problem ist, wenn ich bsw. liste.remove(1) eingebe um den freund2 Bernd rauszunehmen, würde die Position ja einfach neu vergeben werden. Habt ihr da eine Idee wie ich das besser lösen könnte?
Danke schon mal im Voraus
MfG
In meiner Aufgabenstellung soll ich ein Karteisystem (Inhalt Freunde) erstellen. Ohne Interface, einfach nur statisch. Ein Teil der Aufgabe ist es die Freunde auszugeben. Bei dieser kleinen Anforderung habe ich auf die Sichtbarkeiten vorerst verzichtet. Somit habe ich auch keine get- und set-Methoden eingebaut. Der Rahmen der Ausarbeitung ist leider sehr begrenzt.
Ich habe nun Folgendes gemacht.
Klasse Freund erstellt:
Java:
class Freund {
String name;
String vorname;
String geburtsdatum; //localDate habe ich auch erstmal raus gelassen. Wenn ich später noch platz habe werde ich das auch noch einbauen
String telefonnummer;
String mobil;
String email;
int plz;
String ort;
String strasse;
int hausnummer;
String zusatz;
//Konstruktor
Freund(String name, String vorname, String geburtsdatum, String telefonnummer, String mobil,
String email, int plz,String ort, String strasse, int hausnummer, String zusatz){
this.name = name;
this.vorname = vorname;
this.geburtsdatum = geburtsdatum;
this.telefonnummer = telefonnummer;
this.mobil = mobil;
this.email = email;
this.plz = plz;
this.ort = ort;
this.strasse = strasse;
this.hausnummer = hausnummer;
this.zusatz = zusatz;
}
//Methode zur Ausgabe von Freunden
void freundAusgeben() {
System.out.println("Name: " + name);
System.out.println("Vorname " + vorname);
System.out.println("Geboren am: " + geburtsdatum);
System.out.println("Telefonnummer: " + telefonnummer);
System.out.println("-----");
}
}
In der Main-Methode habe ich ein paar Beispielobjekte erzeugt. Die Objekte habe ich aufgrund der Aufgabenstellung in einer Array Liste eingebracht, es ist vorher nicht bekannt wie viel Freund-Objekte instanziert werden sollen.
Java:
import java.util.ArrayList;
import java.util.List;
public class Kartei {
public static void main(String [] args) {
Freund freund1 = new Freund("Müller", "Daniel", "01.02.1990", "0228-33540", "0170-5406548", "daniel@mueller.de", 53113, "Bonn", "Hauptstraße", 159, "a");
Freund freund2 = new Freund("Maier", "Bernd", "05.08.1950", "0228-558743", "0164-8650333", "bernd@maier.de", 53119, "Bonn", "Quantiusstraße", 123, "");
Freund freund3 = new Freund("Thull" ,"Diana", "19.11.1982", "0221-1233098", "0165-3334789", "diana@thull.de", 50676, "Köln", "Industriestraße", 337, "c");
Freund freund4 = new Freund("Riel" ,"Sabine", "03.11.1979", "0221-7998035", "0164-9163455", "sabine@Riel.de", 50676, "Köln", "Am Neumarkt", 5, "");
List<Freund> liste = new ArrayList<Freund>();
liste.add(freund1);
liste.add(freund2);
liste.add(freund3);
liste.add(freund4);
for (int i = 0; i < liste.size(); i++){
freund1 = liste.get(i);
//Methode um die Position der Freunde abzurufen
//System.out.println("An der Stelle "+i + " ist Freund " +freund1.vorname);
freund1.freundAusgeben(); //diese Methode verstehe ich nicht!
}
//freund1.freundAusgeben();
}
}
Ich habe jetzt hier die Methode an zwei Stellen angebracht. Die Methode, die ich mit den // deaktiviert habe würde richtigerweise einzelne Freunde ausgeben können. Aber die andere freundAusgeben Methode verstehe ich einfach nicht. Wenn ich freund1.freundAusgeben() ausführe werden alle Freunde in dem richtigen Format ausgegeben. Wenn ich nun freund2.freundAusgeben() ausführe wird vier mal Bernd Maier ausgegeben. Warum ist das so?
Wie würdet ihr alle Freunde ausgeben? mit meiner Methode freund1.freundAusgeben() ist das ja eher irreführend.
Eine Weitere Anforderung der Arbeit ist jedem Freund ein eineindeutiges Erkennungsmerkmal zu verpassen. Ich habe mir darüber auch Gedanken gemacht. Über die Array Liste hätte jedes Objekt eine Position in dem Array aber das Problem ist, wenn ich bsw. liste.remove(1) eingebe um den freund2 Bernd rauszunehmen, würde die Position ja einfach neu vergeben werden. Habt ihr da eine Idee wie ich das besser lösen könnte?
Danke schon mal im Voraus
MfG