[Java] Frage zu Objekterzeugung in externer Methode und call by reference

topfklao

Christoph N.
ID: 118468
L
20 April 2006
885
17
Hallo!!!!!

Ich habe ein Frage zu folgendem Code:

Main.java mit main-Methode:

PHP:
package test;


public class Main {
    
    /** Creates a new instance of Main */
    public Main() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
                Testklasse testobjekt = null;
                System.out.println(test (testobjekt));
                System.out.println (testobjekt);
    }
    
    public static String test (Testklasse neuesMachen) {
        neuesMachen = new Testklasse (123);
        return "blabla";
    }

Und die Testklasse von der ein Objekt erzeugt wird:

PHP:
package test;

/**
 *
 * @author neumuell
 */
public class Testklasse {
    
    int lala;
    
    /** Creates a new instance of Testklasse */
    public Testklasse(int lala) {
        this.lala = lala;
    }
    
}

Dazu meine Frage: Ist es möglich, dass während ich die void test(Testklasse xx) Methode aufrufe, dort ein Testklasse Objekt erzeuge?
Weil als Ausgabe erhalte ich "null" und keinen Speicherbereich.
Auch möchte ich nicht Testklasse als Rückgabewert der Methode haben - deshalb frage ich ja nach :biggrin:

Danke natürlich schon im Voraus für die Antworten!
 
Was du machen möchtest (sage ich mal vereinfacht) geht nicht, es gibt Wege dies umzusetzen, aber i.R. gibt es bessere Lösungen, denn alleine schon der Ansatz ist - neija :roll:

Warum funktioniert dies nicht?
Du übergibst der test-Methode nicht einen Speicherbereich oder so (dies ist kein C) sondern den aktuellen Wert von testobjekt, und dieser ist momentan null.

Aber es gibt eigentlich nichts was gegen das Zurückgeben des Objektes spricht, irgendwo hast du vermute ich einen kleinen Denkfehler oder dich in eine Struktur verrannt, bei der das nun nur so mit Gewalt umgesetzt werden kann.
 
Dazu meine Frage: Ist es möglich, dass während ich die void test(Testklasse xx) Methode aufrufe, dort ein Testklasse Objekt erzeuge?
Weil als Ausgabe erhalte ich "null" und keinen Speicherbereich.
Auch möchte ich nicht Testklasse als Rückgabewert der Methode haben - deshalb frage ich ja nach :biggrin:

Danke natürlich schon im Voraus für die Antworten!
Meiner Meinung nach darfst Du testobjekt nicht innerhalb von main() deklarieren, sondern Du mußt das außerhalb deklarieren. Außerdem brauchst Du dann für test() auch keinerlei Argument.
PHP:
package test;


public class Main {

    public static Testklasse testobjekt = null;
    
    /** Creates a new instance of Main */
    public Main() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
                test ();
                System.out.println (testobjekt);
    }
    
    public static void test () {
        testobjekt = new Testklasse (123);
        return;
    }
}