[Java] Variablen außerhalb der Funtion speichern

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von steiny, 20. März 2009 .

  1. 20. März 2009
    Variablen außerhalb der Funtion speichern

    Hi,

    bin noch ein ziemlicher Noob in Java und ich weiß gar nicht ob des mit Java überhaupt geht.
    Habe aber scheinbar ein einfaches problem.

    Habe 2 Funktionen, die erste produziert als nebenprodukt einen Wert. Dieser Wert soll "zwischengespeichert" werden, denn die 2 Funktion, die zeitlich irgendwann später aufgerufen wird, braucht diesen Wert nochmal. Wie kann ich diesen Wert zwischenspeichern. Geht dies überhaupt?


    Vielen Dank!






    Code:
    public class test_variablen {
    
     /**
     * @param args
     */
     
     static String s = new String();
     
     public static void main(String[] args) {
     // TODO Auto-generated method stub
     
     erzeuger (); 
     annehmer(); 
    
     }
    
     public static void erzeuger() {
     String s = "asdasda"; // Im Erzeuger wird als "Nebenprodukt ein Wert erzeugt, denn dann die Funktion annehmer() bekommen soll. 
     
    
     
     
     }
     
     public static void annehmer() {
     
     
     System.out.println("annehmer:"+s);
     
     }
    
    
    }
     
  2. 20. März 2009
    AW: Variablen außerhalb der Funtion speichern

    Änderungen in rot

    Entweder so:
    Code:
    public class test_variablen {
    
     /**
     * @param args
     */
     
     static String s = new String();
     
     public static void main(String[] args) {
     // TODO Auto-generated method stub
     
     erzeuger (); 
     annehmer(); 
    
     }
    
     public static void erzeuger() {
     [color=red] s = "asdasda"; [/color]// Im Erzeuger wird als "Nebenprodukt ein Wert erzeugt, denn dann die Funktion annehmer() bekommen soll. 
     
    
     
     
     }
     
     public static void annehmer() {
     
     
     System.out.println("annehmer:"+s);
     
     }
    
    
    }
    Dann ist der string s ne globale Variable
    oder so:


    Code:
    public class test_variablen {
    
     /**
     * @param args
     */
     
     
     
     public static void main(String[] args) {
     // TODO Auto-generated method stub
     
     [color=red]string retval = erzeuger (); 
     annehmer(retval); [/color]
    
     }
    
     [color=red]public static string erzeuger() [/color]{
     string s = "asdasda";// Im Erzeuger wird als "Nebenprodukt ein Wert erzeugt, denn dann die Funktion annehmer() bekommen soll. 
     return s;
    
     
     
     }
     
     [color=red]public static void annehmer(string s) [/color]{
     
     
     System.out.println("annehmer:"+s);
     
     }
    
    
    }
    dann hast de den string als rückgabewert der ersten funktion und übergibst diesen der 2.
    greetz Jojo
     
  3. 20. März 2009
    AW: Variablen außerhalb der Funtion speichern

    return muss aber rein...

    Code:
    public class test_variablen {
    
     /**
     * @param args
     */
     
     
     
     public static void main(String[] args) {
     // TODO Auto-generated method stub
     
     string retval = erzeuger (); 
     annehmer(retval); 
    
     }
    
     public static string erzeuger() {
     string s = "asdasda";// Im Erzeuger wird als "Nebenprodukt ein Wert erzeugt, denn dann die Funktion annehmer() bekommen soll.
     [COLOR="Red"]return s;[/COLOR]
     
    
     
     
     }
     
     public static void annehmer(string s) {
     
     
     System.out.println("annehmer:"+s);
     
     }
    
    
     
  4. 20. März 2009
    AW: Variablen außerhalb der Funtion speichern

    sollen diese klassenfunktionen und variablen sein oder willst du später objekte erstellen?
    da gibt es das nette wort datenkapselung.

    dem entsprechend machst das so:

    Code:
    public class MeineKlasse
    {
     private String meinString;
    
    
     public String getMeinString() { return meinString; }
    
     public void setMeinString(String aMeinString)
     {
     meinString = aMeinString;
     }
    }
    die variable kannst somit ganz normal in den funktionen verwenden. zusätzlich kannst die variable mit den getter und setter von außen handlen.
     
  5. 20. März 2009
    AW: Variablen außerhalb der Funtion speichern

    jepp hatte ich vergessen
     
  6. 20. März 2009
    AW: Variablen außerhalb der Funtion speichern

    #

    Würde auch diese Lösung vorschlagen.
    Private Variablen am besten mit "get" und "set" Methoden ansprechen.
     
  7. 20. März 2009
    AW: Variablen außerhalb der Funtion speichern

    Sicher, wenn ich sie in verschiedenen Klassen benutze.
    Aber in seinem Fall ist es eine Klasse und da sind getter und setter methoden schwachsinn.
     
  8. 20. März 2009
    AW: Variablen außerhalb der Funtion speichern

    dann lässt die getter und setter weg, aber die variable trotzdem als private deklarieren. einfach für sauberes programmieren! :]
     
  9. 21. März 2009
    AW: Variablen außerhalb der Funtion speichern

    hi....erstmal danke für die Antwort.

    Die erste lösung ist klar, erfüllt aber nicht mein problem. Ich will ja nicht nur s returnen , sondern was anderes . Sprich die Funktion hat 2 Ergebnisse:

    so in etwa:

    Code:
    public class test_variablen {
    
     /**
     * @param args
     */
     
     
     
     public static void main(String[] args) {
     // TODO Auto-generated method stub
     
     string retval = erzeuger (); 
     annehmer(retval); 
    
     }
    
     public static string erzeuger() {
     string s = "asdasda";// Im Erzeuger wird als "Nebenprodukt ein Wert erzeugt, denn dann die Funktion annehmer() bekommen soll.
    
    
    
    
     string t = "Der eigentliche teil der Ausgabefunktion";
     return t ;
     
    
     
     
     }
     
     public static void annehmer(string s) {
     
     
     System.out.println("annehmer:"+s);
     
     }
     
  10. 21. März 2009
    AW: Variablen außerhalb der Funtion speichern

    Hie rmal nen bsp wie man man es machen könnte wenn ich dein problem richtig verstanden habe:

    PHP:
    public class  test_variablen  {

        

        
    private static  String variable1  "" ;
        
        public static 
    void main ( String []  args ) {
            
    System . out . println ( "Du kannst deinen variable einfach global in der klasse definieren und dann wann immer du willst von jeder funktion ider der klasse drauf zugreifen!" );
            
    tuewas ();
            
    System . out . println ( "Auch von hier kann der wert geändert werden!" );
            
    variable1  +=  " " ;
            
    System . out . println ( "Und dann auch noch aus der zweiten funktion!" );
            
    tuewasanderes ();
            
    System . out . println ( "Und so hast du deine variable gespeichert und kannst sie zeitlich unabhängig und von der funktion der klasse ändern so das sie am ende so aussieht: "  variable1 );

        }
        
        public static 
    void tuewas (){
            
    variable1  "Hallo" ;
        }
        
        public static 
    void tuewasanderes (){
            
    variable1  +=  "Welt!" ;
        }

    }
    Mit den beispielen solltest die lösung uach selber hin bekommen

    Knusperkeks
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.