# Wert in andere Klasse übergeben



## capri (21. Jul 2006)

verzeiht mir, dieses thema gab es sicherlichs chon so oft abe rich bin leider auf nichts gestoßen was mir nun weiterhelfen konnte und ich bin glaube ich ausserdem schon etwa szu lange wach  :roll: 

meine frage... ich habe eine klasse fertig geschrieben in der ich eine methode habe mit der ich einen vektor mit zufallswerten befülle, das läuft alles soweit. nun möchte ich aber in einer anderen klasse diese werte einlesen um sie in einem applet auszugeben. 

wie muss ich da vom grundsatz her vorgehen um die werte zu übergeben?

vielen dank schonmal


----------



## Oni (21. Jul 2006)

Moin,

die klasse die den vector bekommen soll, muss ein objekt halten von der klasse die den Vector erzeugt.
dann kannst du sowas in der art machen:

```
Vector v = meinObj.getVectorMitZufallswerten();
```

oder

du machst den vector static und schreibst in der klasse die den vector erzeugt eine statische methode.

in etwa:

```
public static Vector v = new Vector();   //  mit zufallszahlen

public static Vector getVector(){ 
  return v;
}
```

in der anderen Klasse schreibst du dann:


```
Vector v2 = KlasseDieVectorErzeugt.getVector();
```


Gruß


----------



## capri (21. Jul 2006)

hmm also in meiner ersten klasse steht nun

```
public static Vector tiere[][] = new Vector[50][50];
```
und die getVector Methode
aber das mit dem getVector will nicht klappen in der 2. klasse, irgendwo hängts da :/


----------



## SlaterB (21. Jul 2006)

falls das nicht nur ein Selbstgespräch war musst schon etwas mehr Code und Fehlermeldungen posten 

ein zweidimensionales Vector-Array ist recht kompliziert zu erzeugen und zu verwalten, 
brauchst du das wirklich?

wenn du dich, wie man annehmen kann, noch nicht so gut mit Vktoren und Arrays auskennst, 
empfiehlt es sich auf jeden Fall, erstmal innerhalb EINER Klasse zu testen, 
sobald das klappt kannst du zu mehreren Klassen wechseln

----------



```
import java.util.Vector;

public class Test {

    private int anz = 50;

    private Vector[][] tiere = new Vector[anz][anz];

    public Test() {
        for (int i = 0; i < anz; i++) {
            for (int j = 0; j < anz; j++) {
                this.tiere[i][j] = new Vector();
            }
        }

    }

    public Vector getVector(int ersteDimension, int zweiteDimension) {
        return this.tiere[ersteDimension][zweiteDimension];
    }



  //------- static -----


    public static void main(String[] args) throws Exception {
        Test test = new Test();
        p("start");
        test.getVector(25, 34).add("hello");
        p(test.getVector(25, 34));
        p("end");
    }

    private static void p(String st) {
        System.out.println(st);
    }

    private static void p(Object o) {
        p(o.toString());
    }

}
```

edit: leicht verbessert aber immer noch böse, bitte nicht davon beeinflussen lassen,
ungetestet da editiert


----------



## L-ectron-X (21. Jul 2006)

static ist "böse". :wink: 
Guck mal in die FAQ: http://www.java-forum.org/de/viewtopic.php?p=87333#87333


----------



## Gast (21. Jul 2006)

Der ganze Code ist böse.
Das ist doch kein Beispiel für Anfänger, dass könnten die ja ernst nehmen!
Sorry, aber erstmal benennt man jede Methode sinnvoll (p ist natürlich viel sagend). Dann wird schon mal nichts statisch gehalten (wenn es keinen Grund gibt). Zudem haben Arrays auch noch eine Eigenschaft, length, die ersetzt static final int Anzahl = ... 
Zudem werden Variablen immer qualifiziert (schadet bei Methoden auch nicht). Heißt bei nicht statischen Variablen/Methoden kommt ein this. vor, sonst ein KlassenName.  
Also gerade wenn man im Anfängerfragen Bereich postet finde ich, sollte man sich etwas mehr Mühe geben und/oder sagen, dass so ein Code ein schlechtes Beispiel ist


----------



## André Uhres (21. Jul 2006)

Gast hat gesagt.:
			
		

> ..Also gerade wenn man im Anfängerfragen Bereich postet finde ich, sollte man sich etwas mehr Mühe geben ..


 :applaus: 
Ich würde sogar noch mehr sagen: da sollte man sein Allerbestes geben, denn gerade dort kann
man am meisten Gutes bewirken  :!:


----------



## SlaterB (21. Jul 2006)

tjaja, 
schlechter Code schadet aber nie, er bildet 

das static habe ich doch offensichtlich von der Vorlage übernommen

und p statt System.out.println hat doch wirklich nur den Zweck kurz zu sein,
wer ruft denn da bitte nach qualifizierten Namen  

ich bin jeden Tag froh wenn ich diese extem häufige Buchstabenkombination mal nicht schreiben muss


----------



## André Uhres (21. Jul 2006)

@SlaterB: ich hab von mir aus dich in keiner Weise kritisieren wollen. Wollte eigentlich nur die Äusserung vom Gast im allgemeinen Sinn lobend hervorheben. 
Wäre übrigens nett von ihm, wenn er sich registrieren würde. Am Ende weiss sonst niemand mehr welcher Gast denn nun gemeint ist.


----------



## Gast (21. Jul 2006)

Als der gleiche Gast, der vorhin sehr wohl Kritik üben wollte, möchte ich nur darauf hinweisen, dass mir in dem Forum Dinge fehlen (weswegen ich mich auch nicht registrieren lassen möchte). 
Nichts gegen das Forum im Allgemeinen, aber zumindest mit Opera (hoffentlich liegt es am Browser!) gibt es hier einige Probleme. Gehört nicht hier hier her, aber das wäre ein anderer Punkt, mir fehlt ein wenig dass OT auch als solches markiert wird. Imho sind hier einige Threads sehr schnell völlig OT.

Was das schreiben von print statt p angeht, so sind ganze 4 Buchstaben mehr doch gerade noch schaffbar. 
[OT] 
Hab mal einen Lehrer kennengelernt, der hat sowas auch immer gerne gemacht. Erstmal schön globale Variablen angelegt (waren dort nicht nötig, aber egal). Denen hat er auch einen Aussagekräftigen Namen gegeben. Dann hat er lokal einfach mal einen "Kurznamen" (es waren meist 3 Buchstaben, selten oder nie Akronyme) eingeführt und hier einfach den Verweis entsprechend gesetzt. Damit war der Code echt super lesbar! Ok, klar anders als in einer IDE hat man hier keine Codevervollständigung, aber trotzdem.
[/genug OT]


----------



## André Uhres (21. Jul 2006)

Gast hat gesagt.:
			
		

> ..möchte ich nur darauf hinweisen, dass mir in dem Forum Dinge fehlen (weswegen ich mich auch nicht registrieren lassen möchte)..


Wir haben hier mal Tage- und Nächtelang um ein neues Logo gekämpft, ohne auch nur den geringsten Erfolg,
nicht mal ein einziger Strich wurde verändert. 
Glaube ja nicht, dass du mit deiner Art Hungerstreik hier irgendetwas verändern kannst.
Also kannst du dich eh registrieren, ist auch einfacher für jeden  :wink:


----------

