Übergaben in Java



  • Hallo

    Ist es möglich mit einer void-methode werte zurückzugeben.
    Ohne einer return anweisung.
    So wie in C++.

    danke!!



  • meinst du das in etwa so bei C++:

    void main(){
    
      int x = 5;
      f(&x);
    
      cout << x << endln;
      return 0;
    }
    
    void f(int *x){
      *x = 10;
    }
    

    Nein, so direkt nicht.
    Möglich ist dies nur, wenn Du eine Reference auf ein Objekt übergibst und dessen Inhalt dann veränderst.

    zB:

    public class test{
    
      public static int main(String[] args){
        XXX y = new XXX();
        y.x = 10;
        System.out.println(y.x);
      }
    
      public void f(XXX y){
        y.x = 33;
      }
    }
    
    class XXX{
      public int x;
    }
    

    Normalerweise würde man das "x" in der Klasse XXX in der OOP private machen und per getter und setter Methoden darauf zugreifen. Und nicht wie hier jetzt direkt verändern.



  • Danke,
    hast mir sehr geholfen.

    mfg luckiw



  • Man kann auch mit einem container arbeiten.

    int[] array = new int[] {0};
    
    public void function(int[] array) {
        array[0] = 5;
    }
    
    // main
    sysout(array[0]); // liefert '0'
    function(array);
    sysout(array[0]); // liefert '5'
    

Anmelden zum Antworten