JAVA: ausgabe (referenz auf die objekte)

Diskutiere JAVA: ausgabe (referenz auf die objekte) im Developer Network Forum im Bereich Hardware & Software Forum; Hallo, ich habe folgende Methode geschrieben: public void hinzu(String vname, String name, String land) { Person p; p = new...
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #1
W

wsch

Aktives Mitglied
Dabei seit
18.12.2004
Beiträge
32
Reaktionspunkte
0
Hallo,

ich habe folgende Methode geschrieben:

public void hinzu(String vname, String name, String land) {
Person p;
p = new Person();
p.setzedaten(vname, name, land);
v.add(p); //v ist mein Vector
}

jetzt will ich eine rückgabe alle vorhandenen personen. zurückgegeben werden soll eine datenstrucktur, die die referenzen der personen-objekte enthält.

vielen dank
 
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #2
ZockerM

ZockerM

Verdienter Ex-Mod
Dabei seit
25.11.2000
Beiträge
2.722
Reaktionspunkte
0
Ort
/root
Hi,

du möchtest also mit der Methode "hinzu" ein neues Objekt der Klasse Person in dem Vektor v speichern?
Dann sollte deine Methode so aussehen:
public Vector hinzu(String vname, String name, String land, Vector v) {
Person p;
p = new Person();
p.setzedaten(vname, name, land);
v.add(p); //v ist mein Vector
return v;
}
Du übergibst den Vektor an die Methode und bekommst ihn, erweitert um das neue Objekt, zurück.

gruß ZockerM
 
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #3
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

das muss man nicht machen. Es genuegt, den Vector mit zu uebergeben. Die Methode kann weiterhin "void" als "Rueckgabewert" haben.
Also entweder einen Vector mit reingeben oder einen Vector erzeugen und als Rueckgabewert definieren. Alles Andere ist "doppelt gemoppelt".

Gruss, FFNB.
 
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #4
W

wsch

Aktives Mitglied
Dabei seit
18.12.2004
Beiträge
32
Reaktionspunkte
0
also praktisch
Vector ausgabe{
return v;
}

so kann man aber nicht auf die werte zugreifen (also die daten nicht lesen) da muss noch weiter mit dennen gemacht werden.
 
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #5
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

das kommt ganz darauf an, was Du machen willst. Klar kannst Du auf einem Vector mit Objekten drin arbeiten.

Erklaere doch mal genau, was Du vor hast.

Gruss, FFNB.

PS: Hatten wir das "Personenproblem" mit dem Vector nicht erst kuerzlich hier?
 
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #6
W

wsch

Aktives Mitglied
Dabei seit
18.12.2004
Beiträge
32
Reaktionspunkte
0
PS: Hatten wir das "Personenproblem" mit dem Vector nicht erst kuerzlich hier?

ja hatten wir.
wir haben auch so gelöst, dass ich toString überschreibe

und mit v.toString(); alles ausgeben kann.

was ist aber wenn ich in einer anderen methode nur vornamen ausgeben will, ich kann ja nur einmal toString überschrieben haben (zb. alles ausgeben)
aber anderes mal will ich nur zb. alle vornamen ausgeben - wie stelle ich das an?
 
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #7
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

Du erstellst in Deiner Personenklasse Methoden fuer die einzelnen Felder (z.B. getVorName(), getNachName() etc.), die Du dann aufrufst. Du musst die Klassen, die aus Deinem Vector kommen dann vorher natuerlich noch auf "Person" casten oder Du nimmst gleich etwas typisiertes (da kommt es wieder drauf an, welche Java Version Du benutzt - ich empfehle 1.5).

Gruss, FFNB.
 
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #8
W

wsch

Aktives Mitglied
Dabei seit
18.12.2004
Beiträge
32
Reaktionspunkte
0
meinst du so ungefähr?

public void ausgabe() {

for (int i = 0; i < v.size(); i++) {
Person p = (Person)(v.get(i));
System.out.println(p.getLand());
}
}

aber da wird ja kein objekt zurückgegeben?

(sorry mit dem text verstehe ich nicht so gut wie mit einem beispiel bzw. beispiel-methode )
 
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #9
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

hier das Beispiel vom letzten mal entsprechend erweitert:

Klasse "Main":
Code:
import java.util.Vector;

public class Main
{
    public static void main(String[] args)
    {
        Vector<Teilnehmer> myVector = new Vector<Teilnehmer>();
        
        Teilnehmer myTeilnehmer = new Teilnehmer("Horst", "Mueller");
        Teilnehmer myTeilnehmer2 = new Teilnehmer("Gerd", "Froebe");
        
        myVector.add(myTeilnehmer);
        myVector.add(myTeilnehmer2);
        
        int teilnehmerAnzahl = myVector.size();
        for(int i=0; i<teilnehmerAnzahl; i++)
        {
        	System.out.println("Vorname: "  + myVector.get(i).getVorname());
        	System.out.println("Nachname: " + myVector.get(i).getNachname());
        	System.out.println("---------");
        }        
    }
}

Klasse "Teilnehmer":
Code:
public class Teilnehmer extends Thread
{
    private String vorname = "";
    private String nachname = "";
    
    public Teilnehmer(String vorname, String nachname)
    {
        this.vorname = vorname;
        this.nachname = nachname;
    }
    
    public String getVorname()
    {
    	return vorname;
    }
    
    public String getNachname()
    {
    	return nachname;
    }
    
    public String toString()
    {
        return "Name: " + vorname + " " + nachname;
    }
}

Die Ausgabe ist:

Vorname: Horst
Nachname: Mueller
---------
Vorname: Gerd
Nachname: Froebe
---------

Da Du mein Frage, welche Java Version Du benutzt nicht beantwortet hast, bin ich mal von Java 5 ausgegangen. In frueheren Versionen wird der typisierte Vector angemeckert. Da musste dann eben Casten.

Ich bin uebrigens kein Freund von Vectoren. Wenn es also nicht gefordert ist, schau Dir mal andere Collections an.

Gruss, FFNB.
 
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #10
W

wsch

Aktives Mitglied
Dabei seit
18.12.2004
Beiträge
32
Reaktionspunkte
0
ok
was mache ich aber,
wenn ich in einer anderen klasse jetzt vorname i-ten person ausgeben will?

myVector wird ja nicht an die andere Klasse übergeben - wenn ich mir neuen erstelle ich klar dass ich da nicht auf die daten zugreifen kann.


bsp:
class Hessen
{
hier soll vorname des i-ten persons ausgeben werden.
}

hier kann ich nicht
System.out.println("Vorname: " + myVector.get(i).getVorname());
eingeben, da myVector nicht mehr erkannt wird
 
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #11
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

na dann musst Du der Klasse "Hessen" den Vector (z.B im Construktor) uebergeben.

Gruss, FFNB.
 
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #12
W

wsch

Aktives Mitglied
Dabei seit
18.12.2004
Beiträge
32
Reaktionspunkte
0
jetzt mal wieder dumme frage: wie wird das gemacht?

sorry, habe vieles ausprobiert und bei google lange gesucht - vielleicht ist es ganz einfach auch, ich kriege das aber nicht hin.
 
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #13
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

na dann das Beispiel mal noch um die Klasse "Hessen erweitert":

Klasse "Main":
Code:
import java.util.Vector;

public class Main
{
    public static void main(String[] args)
    {
        Vector<Teilnehmer> myVector = new Vector<Teilnehmer>();
        Hessen hessen = null;
        
        Teilnehmer myTeilnehmer = new Teilnehmer("Horst", "Mueller");
        Teilnehmer myTeilnehmer2 = new Teilnehmer("Gerd", "Froebe");
        
        myVector.add(myTeilnehmer);
        myVector.add(myTeilnehmer2);
        
        hessen = new Hessen(myVector);
        hessen.teilnehmerAusgeben();
    }
}

Klasse "Teilnehmer":
Code:
public class Teilnehmer extends Thread
{
    private String vorname = "";
    private String nachname = "";
    
    public Teilnehmer(String vorname, String nachname)
    {
        this.vorname = vorname;
        this.nachname = nachname;
    }
    
    public String getVorname()
    {
        return vorname;
    }
    
    public String getNachname()
    {
        return nachname;
    }
    
    public String toString()
    {
        return "Name: " + vorname + " " + nachname;
    }
}

Klasse "Hessen":
Code:
import java.util.Vector;

public class Hessen
{
    private Vector<Teilnehmer> teilnehmer = null;
    
    public Hessen(Vector<Teilnehmer> teilnehmer)
    {
        this.teilnehmer = teilnehmer;
    }
    
    public void teilnehmerAusgeben()
    {
        int teilnehmerAnzahl = teilnehmer.size();
        for(int i=0; i<teilnehmerAnzahl; i++)
        {
            System.out.println("Vorname: "  + teilnehmer.get(i).getVorname());
            System.out.println("Nachname: " + teilnehmer.get(i).getNachname());
            System.out.println("---------");
        }
    }
}

Die Ausgabe ist:

Vorname: Horst
Nachname: Mueller
---------
Vorname: Gerd
Nachname: Froebe
---------

Beachte Bitte: das ist nur ein Beispiel, wie es grundsaetzlich funktioniert. Ich weiss ja nicht, was Du vor hast.

Gruss, FFNB.
 
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #14
W

wsch

Aktives Mitglied
Dabei seit
18.12.2004
Beiträge
32
Reaktionspunkte
0
ok alles klar.
also ich muss den alten vector doch setzen damit ich später damit arbeiten kann

also ich hab in der klasse wo der alte vector (myVector) ist methode geschrieben:

PHP:
public void ausgabehessen(){
Hessen hessen = null;
hessen = new Hessen(myVector);
        hessen.teilnehmerAusgeben();
}

in der klasse hessen steht teilnehmerAusgeben() methode

und meine teilnehmer aus hessen kann ich jetzt in jeder klasse mit

mit objekt.ausgabehessen(); aufrufen.


also so ungefähr nochmal als zusammenfassung - nicht dass man da doch was kürzen machen könnte.
 
  • JAVA: ausgabe (referenz auf die objekte) Beitrag #15
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

wie schon geschrieben - da ich nicht weiss was Deine genaue Aufgabe ist, kann ich nur versuchen, an diesem Beispiel Grundlagen zu vermitteln.

Wenn es so funktioniert wie Du es derzeit implementiert hast, ist es ja erstmal ok. Wenn Du dann spaeter mal begriffen hast, "wie der Java Hase laeuft" ;) findest Du sicher ueberall noch Stellen zum Optimieren oder Redesignen...

Gruss, FFNB.
 
Thema:

JAVA: ausgabe (referenz auf die objekte)

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben