Kurze dumme Frage:
Sagen wir, ich habe eine Klasse A, in deren Main Methode eben ein A Objekt erzeugt wird, typische nicht-statische Methoden und Attribute hat.
Wie man halt so ein Objekt benutzt.
Hat auch alle möglichen Attribute, (primitive Datentypen wie auch nicht-primitive)
Und dann eine Klasse B, die im Prinzip nur als Lagerraum für Methoden dienen soll und sprichwörtlich nur aus static Methoden besteht.
Kann ich nun hingehen und in A eine Methode aus B aufrufen und Attribute aus A als Argumente übergeben, sodass die Attribute von der B Klassenmethode geändert werden?
Weil ich habe ziemlich viele Methoden in A, die alles mögliche tun und dabei auch die Attribute verändern (sowohl bei ints den zahlenwert verändern als auch bei Arrays die Elemente überschreiben).
Die würde ich gerne "auslagern" in die B Klasse und der entsprechenden b methode halt die Verweise auf die Attibute soweit übergeben wie nötig.
Also wenn A bspw. die Attribute
hat, das ich dann irgendwo in A eben
und diese blabla funktion aus B eben die 2 übergebenen Attribute des A Objekts anpasst.
Bei Referenzsachen wie String, Array und Co. würde ich auf Anhieb vermuten dass es geht, aber wie macht man das bei primitiven ints?
können die auch durch eine statische Mathode einer anderen Klasse verändert werden?
Edit: Oder, im 2. Gedankengang, müsste ich gar womöglich das Ganze Objekt (bzw. die Referenz darauf) an die Methode der anderen klasse übergeben?
Aber das wird ja vermutlich schwierig da ich bspw. in der Klasse A die Methode 1 habe, die die methode 2 aufruft. Und in der Methode 2 wird dann die methode B.blabla(Objektreferenz); aufgerufen.
Hat denn diese untermethode dann überhaupt zugriff auf das objekt um es der B Klassenmethode zu übergeben?
Oder würde man da ein ganz klassisches B.blabla(this); benutzen?
Ich steige da nicht ganz durch wie ich systematisch und easy die fertigen methoden aus A in andere Klassen auslagern kann ohne überall an Zugriffsproblemen zu scheitern bzw. fehlenden "Änderungsrechten" sozusagen :-/
Sagen wir, ich habe eine Klasse A, in deren Main Methode eben ein A Objekt erzeugt wird, typische nicht-statische Methoden und Attribute hat.
Wie man halt so ein Objekt benutzt.
Hat auch alle möglichen Attribute, (primitive Datentypen wie auch nicht-primitive)
Und dann eine Klasse B, die im Prinzip nur als Lagerraum für Methoden dienen soll und sprichwörtlich nur aus static Methoden besteht.
Kann ich nun hingehen und in A eine Methode aus B aufrufen und Attribute aus A als Argumente übergeben, sodass die Attribute von der B Klassenmethode geändert werden?
Weil ich habe ziemlich viele Methoden in A, die alles mögliche tun und dabei auch die Attribute verändern (sowohl bei ints den zahlenwert verändern als auch bei Arrays die Elemente überschreiben).
Die würde ich gerne "auslagern" in die B Klasse und der entsprechenden b methode halt die Verweise auf die Attibute soweit übergeben wie nötig.
Also wenn A bspw. die Attribute
Java:
int zahl=5;
int[] arb={1,2,3,4,5};
hat, das ich dann irgendwo in A eben
Code:
B.blabla(zahl,arb);
Bei Referenzsachen wie String, Array und Co. würde ich auf Anhieb vermuten dass es geht, aber wie macht man das bei primitiven ints?
können die auch durch eine statische Mathode einer anderen Klasse verändert werden?
Edit: Oder, im 2. Gedankengang, müsste ich gar womöglich das Ganze Objekt (bzw. die Referenz darauf) an die Methode der anderen klasse übergeben?
Aber das wird ja vermutlich schwierig da ich bspw. in der Klasse A die Methode 1 habe, die die methode 2 aufruft. Und in der Methode 2 wird dann die methode B.blabla(Objektreferenz); aufgerufen.
Hat denn diese untermethode dann überhaupt zugriff auf das objekt um es der B Klassenmethode zu übergeben?
Oder würde man da ein ganz klassisches B.blabla(this); benutzen?
Ich steige da nicht ganz durch wie ich systematisch und easy die fertigen methoden aus A in andere Klassen auslagern kann ohne überall an Zugriffsproblemen zu scheitern bzw. fehlenden "Änderungsrechten" sozusagen :-/