Objekt ausgeben

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Ich versuch mich grad auf mein abi vorzubereiten welchen nächstes jahr ansteht. Leider hab cih ne weile gepennt und hab einige aufzuholen. Also ne wahrscheinlich ziemlich simple frage. hab en kleines prog. was namen, telenummer und geb. datum, in ein objekt speichert. wie geb ich nun das objekt aus? und gleich nochwas, wenn ich nun viele leute mit name usw. speichern will was nehm ich da am besten: arraylist ? ...ohje ich seh schon ich hab viel aufzuholen wenn ich mein abi schaffen will. danke fürs lesen und antworten. gruß alois
 
zunächst mal musst du wissen, was denn in der Ausgabe stehen soll,
z.B. kann man einen String zusammenbauen
getName()+" "+getNumber();
und diesen dann mit System.out.println() ausgeben,

bei so einer Objektbeschreibung bietet es sich an,
getName()+" "+getNumber();
in der toString()-Operation des Objektes unterzubringen

-----------

ArrayList ist toll, ja
alternativ auch Array oder andere Listen,

bei solchen Fragen kannst du mit einer Komplettdurcharbeitung der Grundlagen von Java in einem Buch nix falsch machen,
 
schönen dank. ich arbeite mich mal weiter bis zur nächsten frage😛
 
wie geb ich denn ne arraylist aus ? also ich habs jetzt mit add, dass die objekte reingeschrieben werden, bzw. werden sollten. aber wie geb ich das alles aus. gruß
 
Hi,
du solltest hier nicht nur nach einer Lösung fragen, die würde dir wenig helfen (du sagst ja selbst, du möchtest etwas nachholen). Wichtig ist also die Herangehensweise (die ist für jedes Problem gleich).

Der erste und wichtigste Schritt ist immer, dass du dein Gesamtproblem zerlegst. Ihr habt vielleicht irgendwann mal über Divide and Conquer (Teile und Herrsche) gesprochen, ist immer gut! Wenn du ein großes Problem hast, dann gibt es viele Fragen und man verliert schnell den Überblick, Fehler schleichen sich ein, ...

Was du hier wissen willst ist erstmal ein größeres Problem, dass kannst du dir abstrakt überlegen. Du hast eine Liste (egal was für eine Liste oder wie die in Java aussieht!). Du hast eine Liste, da stehen Einträge drin, wie gibt man die aus?
Überleg dir hier einfach mal, wie du das machen würdest. Ich geb dir eine Liste (z.B. eine Datei) und du sollst die für mich auf ein Blatt Papier übertragen, wie machst du das? Bin da natürlich ein böser Arbeitgeber, Drucken darfst du nicht, du musst schreiben!

Ich würde doch mal sagen, dass du einfach die Liste durchgehst und jeden Eintrag aufschreibst. Erst die Nummer 1, dann die Nummer 2, ...

Das ganze sollte Java dann auch mit der Arraylist (oder jeder anderen Liste) machen. Du hast eine Menge von Einträgen und die gibst du aus, in dem du jeden einzelnen Eintrag ausgibst. Das heißt, du brauchst eine Schleife, die jeden Eintrag nimmt und eine Methode, die den aktuellen Eintrag ausgibt (2 kleinere Probleme).
Die Schleife ist dabei trivial, bleibt das Problem wie du nun einen Eintrag ausgibst.
Gut, auch dass kannst du jetzt weiter zerlegen, z.B. in die Ausgabe des Namen und des Vornamen,...

Irgendwann erreichst du Probleme, die du sehr einfach lösen kannst (ohne das Zerlegen noch Sinn macht), wie z.B. die Schleife und bist damit fertig.

Alles ganz einfach!

Gruß Der Anmeldeboykottierer
 
also bei nem array heißts ja name[0] um an die nullte stelle des arrays zu kommen. wie mach ich das denn bei ner arrylist? versuch jetzt mit ner schleife die erste, zweite...stelle der arrayliste rauszuholen und dann das an ne methode übergeben um dort name etc. rauszuholen. fehlen tun mir jetzt die befehle zum rausholen des objekts aus der arraylist und die genaue übergabe. also was kommt in die schnittstelle von der methode wenn sie ein objekt geschickt bekommt. gruß
 
ohne API geht gar nix, da steht alles zu ArrayList
http://java.sun.com/j2se/1.5/docs/api/

und wie man in einer beliebigen Klasse ein beliebiges Objekt als Parameter übergibt willst du nicht wirklich fragen oder?
schaue dir jedes Programm der Welt an,
nahezu überall dürfte das vorkommen 😉
 
joa. hab schon bei den javadocs geschaut. find aber irgentwie noch nix. naja nochmal genau schauen.

zu nummer 2. vergessts. 😀 bin grad etwas verwirrt 😛 is natürlich klar
 
bekomms irgentwie net gebacken das objekt aus der liste rauszuholen:/ find auch in den java docs keine methode dazu... gruß
 
get(int index)

die benutzen aber auch immer die unmöglichsten Namen 😉
 
so. ich hab irgent en logischen fehler drin den ich nicht seh. :/ danke fü den ders überblickt 😛
läuft soweit das prog. allerdings bei der ausgabe der leuten wird immer nur der letzt eingegebene 3 mal ausgegeben.
habs jetzt erstmal so einfach wie möglich was schleife etc. angeht. also noch nix mit size etc. aber mus sja erst ma so laufen. danke

Code:
import java.util.ArrayList;
public class Haupt
{
    private static ArrayList liste = new ArrayList(10); 
    private static Eintrag leut;
    private static int index =0;
    public static void menue()
    {
        System.out.println("--------------Telefon- und Geburtstagliste--------------");
        System.out.println("(1)Neuer Eintrag");
        System.out.println("(2)Eintrag löschen");
        System.out.println("(3)Eintrag ändern");
        System.out.println("(4)Liste ausgeben");
        System.out.println("(5)Ende");
        int boom=StdInE.intInput();
        
        switch(boom)
        {
            case 1: eingabe_Daten();         break;
            case 2:                          break;
            case 3:                          break;
            case 4:  ausgabe_Daten(leut);    break;
            case 5: System.exit(0);          break;

        }//switch
        menue();
    }
    
    public static void eingabe_Daten()
    {
         System.out.println("Namen:");
         String name = StdInE.stringInput();
         System.out.println("Nummer:");
         int nummer = StdInE.intInput();
         System.out.println("Geb.Datum tag/monat/jahr");
         String datum = StdInE.stringInput();
         leut = new Eintrag(name, nummer, datum);
         liste.add(index, leut);
         index++;
     }
    
    public static void ausgabe_Daten(Eintrag leut)
    {   
        
        for(int i = 0; i<=2; i++)
        {
        liste.get(i);
        System.out.println("Name: "+ leut.getName() );
        System.out.println("Nummer: "+ leut.getNummer());
        System.out.println("Geburtstag: "+ leut.getGeb());
        }
    }
   
    public static void main(String[]args)
    {
        menue();
    }
   
}


und class nummer 2


Code:
public class Eintrag
{
    private String name;
    private int nummer;
    private String geb;
    
    public Eintrag(String name, int nummer, String geb)
    {
        this.name = name;
        this.nummer = nummer ;
        this. geb = geb;
        }
    
    public String getName(){ return name;}
    public int getNummer(){ return nummer;}
    public String getGeb(){ return geb;}
       
}
 
Code:
 public static void ausgabe_Daten(Eintrag leut) 
    {    
        
        for(int i = 0; i<=2; i++) 
        { 
        liste.get(i); 
        System.out.println("Name: "+ leut.getName() ); 
        System.out.println("Nummer: "+ leut.getNummer()); 
        System.out.println("Geburtstag: "+ leut.getGeb()); 
        } 
    }
hier werden 3x die Daten von leut ausgegen,
der Aufruf von
liste.get(i);
hat keinen Einfluß,

vielleicht willst du stattdessen
leut = (Eintrag) liste.get(i);

dann kann man sich aber die Frage stellen, warum es überhaupt einen Parameter leut gibt
 
also so gehts danke. kann mir jemand die zeile

leut = (Eintrag) liste.get(i);

mal genau erklärn. mit dem (Eintrag) hab ich noch en versteh problem. danke
 
liste.get(i);
liefert das i-te Objekt,
da du eine ganz allgemeine Java-Hilfsklasse benutzt, kennt die Eintrag nicht und gibt ganz generell den Typ Object zurück,

damit du den Eintrag in der Object-Form in einer Eintrag-Variable speichern kannst,
musst du explizit angeben, dass es sich um einen Eintrag heißt,
also auf Eintrag casten,

------
'casten' wird dir jetzt vielleicht auch nix sagen,
ideales Stichwort, um 3-4 Stunden lang eine der wichtigsten Grundlagen von Java in einem Buch nachzulesen,
-------

du speicherst schließlich das Eintrag-Objekt in der Variablen leut,
um darauf in den nächsten drei Zeilen zuzugreifen
 
danke.
also casten sagt mir nichst aber (datentyp) kenn ich soweit zum umwandlen.
int zahl = 6;

byte zahl2 = (byte) zahl

sowas in der art. is das das ?
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben