Output von ArrayList

Diskutiere Output von ArrayList im Allgemeine Java-Themen Bereich.
X

xheinz

Hey Leute! Ich habe diese Oberklasse:
Code:
package tiergen;

public abstract class Zootier {
   
    protected static int id = 1056;
    private int nummer;
    protected String familie;
    protected String art;
    protected String futter;
   
    public Zootier() {
        nummer = id++;
    }
   

}
Sowie diese beiden Unterklassen:
Code:
public abstract class Feloidea extends Zootier {
   
    public Feloidea() {
        super();
        familie = "Feloidea";
    }

}

public abstract class Canoidea extends Zootier {
   
    public Canoidea() {
        super();
        familie = "Canoidea";
    }

}
Und dann noch verschiedene Unterklassen davon wie z.B :
Code:
public class MaineCoon extends Feloidea implements HaustierIF{

    protected String name;
    protected String laut = "Miau";
    
    public MaineCoon() {
        super();
        art="Maine-Coon";
        futter="Katzenfutter";
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public void setName(String name) {
        this.name = name;
    }

    @Override
    public void streicheln() {
        System.out.println(laut);
        
    }
}

   

}
Ebenso habe ich dieses Interface :
Code:
public interface HaustierIF {
   
    public String getName();
    public void setName(String name);
    public void streicheln();

}
Meine Main-Methode sieht so aus:
Code:
package tiergen;
import java.util.Random;
import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
import java.io.*;

public class Main
{

   
    public static void main(String[] args) throws Exception
    {
        List<Feloidea>katzen=new ArrayList<Feloidea>();
        List<Canoidea>hunde=new ArrayList<Canoidea>();
        List<Feloidea>erdmaennchen = new ArrayList<Feloidea>();
        List<Canoidea>baer = new ArrayList<Canoidea>();
        List<HaustierIF>streichelzoo = new ArrayList<HaustierIF>();
        String [] knamen = {"Max" , "Sally" , "Fred" , "Mopsi" , "Bernd" , "Flecki" };
        //Pfad anpassen!
        File f = new File(".\\Daten\\Tiere.txt");
        OutputStream ostream = new FileOutputStream(f);
       
        PrintWriter writer = new PrintWriter(ostream);
        Random zufall = new Random();
        Scanner reader = new Scanner(System.in);
       
        System.out.print("Anzahl > ");
        int anzahl = reader.nextInt();
       
        for(int i = 0; i < anzahl; i++){
            switch(zufall.nextInt(8)){
                case 0:
                    writer.println("Amurtiger");
                    katzen.add(new Amurtiger());    
                    break;
                case 1:
                    writer.println("Maine-Coon");                  
                    katzen.add(new MaineCoon());  
                    break;
                case 2:
                    writer.println("Beagle");                  
                    hunde.add(new Beagle());  
                    break;
                case 3:
                    writer.println("Erdmaennchen");  
                    erdmaennchen.add(new Erdmaennchen());
                   
                    break;
                case 4:
                    writer.println("Wolf");      
                    hunde.add(new Wolf());
                    break;
                case 5:
                    writer.println("Tuerkisch Van");
                    katzen.add(new TuerkischVan());
                    break;
                case 6:
                    writer.println("Bernhardiner");  
                    hunde.add(new Bernhardiner());
                    break;
                case 7:
                    writer.println("Kodiakbaer");  
                    baer.add(new Koadiakbaer());
                   
                    break;
                default:
            }
        }
       
        reader.close();
        writer.close();
       
        System.out.println("Alle Katzen: ");
        System.out.println(katzen.toString());
        System.out.println("Alle Hunde: ");
        System.out.println(hunde.toString());
        System.out.println("Alle Baeren: ");
        System.out.println(baer.toString());
        System.out.println("Alle Erdmaennchen: ");
        System.out.println(erdmaennchen.toString());
       
        for(Feloidea k: katzen) {
            if(k instanceof HaustierIF) {
                ((HaustierIF)k).setName(knamen[zufall.nextInt(knamen.length)]);
                streichelzoo.add((HaustierIF)k);
            }
       
        }
       
        for(Canoidea h: hunde) {
            if(h instanceof HaustierIF) {
                ((HaustierIF) h).setName(knamen[zufall.nextInt(knamen.length)]);
                streichelzoo.add((HaustierIF)h);
            }
        }
       
        System.out.println("Alle Tiere aus dem Streichelzoo: ");
        for(HaustierIF s: streichelzoo) {
            System.out.println(s);
        }
    }

}
Ich möchte nun alle Tiere aus der Liste der Katzen ausgeben und bekomme jeweils nur z.B. "[email protected]". Obwohl ich doch die toString() - Methode verwendet habe. Ich hoffe mir kann jemand weiterhelfen!
 
L

LimDul

Die toString Methode wird immer verwendet, wenn du ein Objekt einfach ausgibst - du musst die auch implementieren, ansonsten erhälst du die Default-Implementierung.

Das heißt, deine Tierklassen müssen eine public String toString() Methode implementieren.
 
X

xheinz

Die toString Methode wird immer verwendet, wenn du ein Objekt einfach ausgibst - du musst die auch implementieren, ansonsten erhälst du die Default-Implementierung.

Das heißt, deine Tierklassen müssen eine public String toString() Methode implementieren.
stimmt danke !
 
Thema: 

Output von ArrayList

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben