Freundesliste erstellen

max514

Bekanntes Mitglied
hey leute ich bin relativ neu in Java und muss folgende aufgabe erledigen:
In der Klasse Kartei sollen die Freunde verwaltet werden. Es sollen Methoden zum Hinzufügen, zum Ändern, zum Löschen von Freunde geben. Auch möchte man nach Freunde in der Kartei suchen können (z. B. nach dem Nachnamen oder dem Schlüssel) und die Gesamtanzahl der Freunde, die gespeichert sind, ausgeben können. Berücksichtigen Sie auch mögliche Fehler, die auftreten können und behandeln Sie diese Anwender gerecht.
mein code sieht folgendermaßen aus ;
Java:
package assignment;
import java.util.ArrayList;


public class Kartei {
  
  
   public ArrayList<Freunde> liste;
  
   public Kartei() {
        liste = new ArrayList<Freunde>();
    }


    public void anlegen(Freunde f) {
        liste.add(f);
    }

    public void anlegen(String vN, String nN, String gD, long tN, long hN,
           String e, long PLZ, String o, String s,int schlüssel) {
        Freunde f = new Freunde(vN, nN, gD, tN, hN, e, PLZ, o, s, schlüssel);
        liste.add(f);
    }
  
    public void löschen (Freunde fe) {
       liste.remove(fe);
    }
  
    public void löschen (String nN, String vN) {
       Freunde fe = null;
        for (Freunde f : liste) {
                   if (f.getnachName().equals(nN) || f.getvorName().equals(vN)) {
                       fe = f;
                       break;
                   }
               }
       if(fe!=null)
       liste.remove(fe);
    }
  
    public void finde (Freunde f) {
       liste.toString();
    }
  
    public String finde(String nN, String vN) {
        for (Freunde f : liste) {
            if (f.getnachName().equals(nN) || f.getvorName().equals(vN)) {
                return f.toString();
            }
        }
        return null;
    }
  
  
}
jetzt meine Frage ob der code so wie er bisher ist richtig ist (also mal so von der Struktur) und wie ich mir die Gesamtanzahl ausgeben kann (durch aufruf im Main natürlich)
 
Zuletzt bearbeitet von einem Moderator:

Robat

Top Contributor
Wenn du eine Liste von Freunden hast, dann ist die Gesamtanzahl deiner Freunde die Größe der Liste. Mach dir dafür einfach auch eine entsprechende Methode.

BTW: Code bitte in [code=Java]Your Code[/code]-Tags
 

temi

Top Contributor
Ein paar Sachen die mir spontan aufgefallen sind:
  • Vermeide deutsche Umlaute in Methoden-/Variablennamen
  • Vermeide kryptische Kürzel in deinen Methodenparametern.
  • "Freunde" sollte ggf. eher "Freund" bennannt werden. Die dazugehörige Liste ist dann List<Freund> freunde.
 

max514

Bekanntes Mitglied
ok änder ich =)
ich hab jetzt die methode entwickelte aber mir wird gesagt das sie undefiniert ist ??
Java:
public void gesamtanzahl (Freunde f) {
       liste.gesamtanzahl();
    }
  
    public String gesamtanzahl (String ga) {
       for (Freunde f: liste) {
           gesamtanzahl++;
       }
       return f.gesamtanzahl();
    }
ich hab auch irgendwie des gefühl die ist falsch aber iwie steh ich aufm schlauch =)
 
Zuletzt bearbeitet von einem Moderator:

Javinner

Top Contributor
Ein paar Sachen die mir spontan aufgefallen sind:
  • Vermeide deutsche Umlaute in Methoden-/Variablennamen
  • Vermeide kryptische Kürzel in deinen Methodenparametern.
  • "Freunde" sollte ggf. eher "Freund" bennannt werden. Die dazugehörige Liste ist dann List<Freund> freunde.
Zudem fehlt dir jeweils die Überprüfung beim Hinzufügen so wie beim Entfernen der Freunde aus der Liste, ob dieser bereits vorhanden ist oder nicht.
 

Javinner

Top Contributor
ok änder ich =)
ich hab jetzt die methode entwickelte aber mir wird gesagt das sie undefiniert ist ??
public void gesamtanzahl (Freunde f) {
liste.gesamtanzahl();
}

public String gesamtanzahl (String ga) {
for (Freunde f: liste) {
gesamtanzahl++;
}
return f.gesamtanzahl();
}

ich hab auch irgendwie des gefühl die ist falsch aber iwie steh ich aufm schlauch =)
Oder einfach nur liste.size() ;)
 

temi

Top Contributor
Die einfache Lösung hat die Javinner ja schon geschrieben, aber dennoch der Vollständigkeit halber:
Java:
public void gesamtanzahl (Freunde f) { // der Parameter wird nicht verwendet und kann auch weggelassen werden
    liste.gesamtanzahl(); // die Methode "gesamtzahl" definiert einen Parameter und du rufst ohne Parameter auf
}

Java:
public String gesamtanzahl (String ga) { // der Stringparameter wird ebenfalls nicht verwendet...
    for (Freunde f: liste) {
        gesamtanzahl++; // hier inkrementierst du die Variable "gesamtzahl"
    }
    return f.gesamtanzahl(); // und hier versuchst du das Ergebnis eines Methodenaufrufs zurückzugeben
}
 

max514

Bekanntes Mitglied
hey leute ich hab schon wieder ein problem =( es heißt das mir für Freunde f = new (auskommentierte stelle) der konstruktor fehlt ?? weiß jemand warum ??

Java:
package assignment;
import java.util.ArrayList;




public class Kartei {
 
 
   public ArrayList<Freunde> liste;
 
   public Kartei() {
        liste = new ArrayList<Freunde>();
    }


    public void anlegen(Freunde f) {
        liste.add(f);
    }

    public void anlegen(String vorName, String nachName, String geburtsDatum, long telefonNummer, long handyNummer,
           String email, long postleitZahl, String ort, String strasse,int key, int gesamtanzahl) {
        /*Freunde f = new Freunde (vorName, nachName, geburtsDatum, telefonNummer, handyNummer, email, postleitZahl,
               ort, strasse, key, gesamtanzahl);*/
        liste.add(f);
    }
 
    public void aendern () {
     
    }
 
    public void aendern(String vorName, String nachName, String geburtsDatum, long telefonNummer, long handyNummer,
           String email, long postleitZahl, String ort, String strasse,int key, int gesamtanzahl) {
       for (Freunde f : liste) {
           if (f.gethandyNummer()==handyNummer) {
             
           }
       }
    }
 
    public void loeschen (Freunde fe) {
       liste.remove(fe);
    }
 
    public void loeschen (String nachName, String vorName) {
       Freunde fe = null;
        for (Freunde f : liste) {
                   if (f.getnachName().equals(nachName) || f.getvorName().equals(vorName)) {
                       fe = f;
                       break;
                   }
               }
       if(fe!=null)
       liste.remove(fe);
    }
 
    public void finde (Freunde f) {
       liste.toString();
    }
 
    public String finde(String nachName, String vorName) {
        for (Freunde f : liste) {
            if (f.getnachName().equals(nachName) || f.getvorName().equals(vorName)) {
                return f.toString();
            }
        }
        return null;
    }
 
    public void gesamtanzahl (Freunde f) {
       liste.size();
    }
 
    public String gesamtanzahl(String gesamtanzahl) {
       for (Freunde f : liste) { 
       return f.gesamtanzahl();  
       }
       return null;
     
    }
 
 

}
// Freunde
Java:
package assignment;


public class Freunde {
 
   private String vorName;
   private String nachName;
   private String geburtsDatum;
   private long telefonNummer;
   private long handyNummer;
   private String email;
   private long postleitZahl;
   private String ort;
   private String strasse;
   private int key;
   private int gesamtanzahl;
 
public Freunde (String vorName, String nachName, String geburtsDatum, long telefonNummer, long handyNummer,
       String email, long postleitZahl, String ort, String strasse,int key, int gesamtanzahl) {
   this.vorName = vorName;
   this.nachName = nachName;
   this.geburtsDatum = geburtsDatum;
   this.telefonNummer = telefonNummer;
   this.handyNummer = handyNummer;
   this.email = email;
   this.postleitZahl = postleitZahl;
   this.ort = ort;
   this.strasse = strasse;
   this.key = key;
   this.gesamtanzahl = gesamtanzahl;
   }


   public String getvorName(){
        return vorName;
    }

    public String getnachName(){
            return nachName;
    }
 
    public String getgeburtsDatum() {
           return geburtsDatum;
    }
 
    public long gettelefonNummer() {
       return telefonNummer;
    }
 
    public long gethandyNummer() {
       return handyNummer;
    }
 
    public String getemail() {
       return email;
    }
 
    public long getpostleitZahl() {
       return postleitZahl;
    }
 
    public String getort() {
       return ort;
    }
 
    public String getstrasse() {
       return strasse;
    }
 
    public int getgesamtanzahl() {
       return gesamtanzahl;
    }
 
Zuletzt bearbeitet von einem Moderator:

mihe7

Top Contributor
Das einzige, das bemängelt wird, ist dass Freunde keine Methode gesamtanzahl() hat. Die Methode Kartei#gesamtanzahl ist auch leicht unsinnig, oder?
 

Neue Themen


Oben