Wie erstelle ich eine Instanz in einer Klasse für die ich die Instanz will?

Z. B. ich habe die Klasse hallo und will in einer Methode eine neue Instanz von hallo erstellen, weil ich eine Variable/ einen Array veränderen möcht eund zurückgeben will, aber ich möchte nicht die echte Variable verändern vond er Klasse, weshalb cih eien Instanz erstellen will.

Java:
class Hallo
{
  private int asd=0;
  public int est(){
    Hallo test= new Hallo();
    test.asd=10;
    return test.asd;
  }
}
Aber ich kann diese Instanz mit new nicht erschaffen warum? Fehlermeldung kommt
 
Zuletzt bearbeitet von einem Moderator:
Dein Code ergibt keinen Sinn, da die Instanz welche zu erzeugst nicht auszerhalb der Methode verwendet wird, daher wird diese sehr schnell wieder aufgeraeumt. Die Methode muss natuerlich die Instanz von Hallo zurueckgeben damit dies Sinn macht.

Java:
public class Hallo {
    private int asd = 0;
    
    public Hallo est() {
        Hallo test = new Hallo();
        test.asd = 10;
        return test;
    }
}

Wenn du auf eine andere Instanz wechseln willst, dann brauchst du quasi einen Wrapper. Aber ich glaube eher dass du hier ein Verstaendnisproblem hast. Was ist denn dein genauer Anwendungsfall?
 
Deinen Code könnte man kürzer schreiben:
Java:
class Hallo {
    private int asd=0;
      
    public int est() {
        return 10;
      }
}
 
Z. B. ich habe die Klasse hallo und will in einer Methode eine neue Instanz von hallo erstellen, weil ich eine Variable/ einen Array veränderen möcht eund zurückgeben will, aber ich möchte nicht die echte Variable verändern vond er Klasse, weshalb cih eien Instanz erstellen will.

Java:
class Hallo
{
  private int asd=0;
  public int est(){
    Hallo test= new Hallo();
    test.asd=10;
    return test.asd;
  }
}
Aber ich kann diese Instanz mit new nicht erschaffen warum? Fehlermeldung kommt
Die Instanz wird hier korrekt erstellt, ein Wert wird gesetzt. Nach dem Abschluss der Methode wird sie wieder aus dem Speicher gelöscht, da keine Instanzvariable mehr existiert, die darauf referenziert.

Die Fehlermeldung, die du kriegst, dürfte außerhalb dieser Methode ausgelöst worden sein. Poste mal den Aufruf und die Meldung.
 

Zurück
Oben