Methodenaufruf innerhalb einer Klasse - static vs. this

wizdom

Mitglied
Moin!

Wollte mal fragen, wie ich einen Methodenaufruf innerhalb einer Klasse mache.
Im Rahmen eines Codebeispiels:

Java:
class InternerMethodenAufruf {

   public InternerMethodenAufruf(String name) {
      this.name = name;
   }

   public String createSth () {
   ...
   return stuff
   }

   public void createSthElse () {
   ...
   String otherStuff = this.createSth();
   }
}

Mir kommt es hier insbesondere auf Zeile 14 an. Funktioniert das so? Worin läge der Unterschied, wenn ich das mit public static String createSth () machen würde und dann in der zweiten Methode InternerMethodenAufruf.createSth() aufrufen würde?

Danke schon mal.
 

tagedieb

Top Contributor
Days erste ware ein Instanz aufruf, das andere ein statischer Aufruf. Beides funktioniert!!
Es hängt von deinem Design ab ob welche Methode du verwendest... statische Methoden können auch nur auf statische Variablen zugreifen!

Generel gesagt sollte man auf statische Methoden verzichten, außer man baut eine Library wie z.B. java.lang.Math.
Instanzmethoden sind auch einfacher zu testen als statische Methoden.
 

greatergood

Mitglied
Der Unterschied (static / kein static), wir an deinem Beispiel jetzt vielleicht nicht so ganz klar, denn in beiden Fällen (egal ob nun static, oder nicht) landet der gleiche String in deinem "String otherStuff".

Trotzdem ne Erklärung:
Wenn du in einer anderen Klasse ein Objekt vom Typ InternerMethodenAufruf erstellst (sei dieses Objekt "intMethObj" genannt, dann wirst du in deiner Zeile 14 (bei Benutzung von "this.createSth()"), den String bekommen, den du "über das Objekt" in createSth() erstellt hast.

Im anderen Fall, erstellst du eben auch einen String in createSth(), aber wenn du das als statische Methode machst, so passiert das unabhängig von deinem Objekt "intMethObj"...

Besseres Beispiel:
1. Fall.) Stell dir vor du hast in deiner Klasse eine Variable "public String name". Beim erstellen eines Objekts deiner Klasse in einer anderen Klasse z.b. rufst du deinen definierten Konstruktor auf: InternerMethodenAufruf intMethObj = new InternetMethodenAufruf("Heinz"); Jetzt stelle dir vor anstatt von deinem "createSth()" hast du eine andere Methode "getName()"... diese returned den Namen. Dann hast du bei einem Aufruf von Typ 14... mit this.getName() den String "Heinz".

2.Fall.) Sei der public static String name; nun als "static" definiert. Dann kannst du in einer anderen Klasse z.b. sagen "InternerMethodenAufruf.name = "Herbert", und das ohne irgendein Objekt. Wenn du nun noch deine Methode "static getName()" definierst, dann bekommste in Zeile 14 mit dem code: "InternerMethodenAufruf.getName()" den String "Herbert" zurück und der landet in "String otherStuff" gespeichert - und du hast kein Objekt erstellen müssen :).

Ansonsten siehe auch:
http://www.java-forum.org/stichwort-static/1353-bedeutet-static.html
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Methodenaufruf mit geänderten Argumenten Java Basics - Anfänger-Themen 10
S Methoden Methodenaufruf rekursiv zählen Java Basics - Anfänger-Themen 4
N methodenaufruf for each geht nicht Java Basics - Anfänger-Themen 2
K Methodenaufruf /-ausgabe Java Basics - Anfänger-Themen 5
O Methodenaufruf Java Basics - Anfänger-Themen 5
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
Queiser Methodenaufruf Java Basics - Anfänger-Themen 2
J Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 11
I Java Methodenaufruf Java Basics - Anfänger-Themen 9
A OOP Methodenaufruf in einer anderen Klasse Java Basics - Anfänger-Themen 2
G Methoden Probleme beim Methodenaufruf Java Basics - Anfänger-Themen 2
M Methodenaufruf über SQL UPDATE Java Basics - Anfänger-Themen 8
M Methodenaufruf in der Main Datei funzt nicht Java Basics - Anfänger-Themen 13
BadBat Klassen instanz als variable + methodenaufruf Java Basics - Anfänger-Themen 4
M Methodenaufruf in Methode Java Basics - Anfänger-Themen 6
M Objekt Name für MethodenAufruf nachträglich zuweisen? Java Basics - Anfänger-Themen 2
J if() mit Methodenaufruf kombiniert (Pixelerkennung) Java Basics - Anfänger-Themen 3
A Probleme beim Methodenaufruf von Object[] ! Java Basics - Anfänger-Themen 12
A Probleme beim Methodenaufruf von char[] ! Java Basics - Anfänger-Themen 10
T Rekursiver Methodenaufruf funktioniert nicht Java Basics - Anfänger-Themen 7
D Methoden g.setColor funktioniert nicht bei Methodenaufruf in anderer Klasse Java Basics - Anfänger-Themen 1
M Methoden Methodenaufruf allgemein Java Basics - Anfänger-Themen 3
H Ist Math.Random() eine Methode oder ein Methodenaufruf (Klausurfrage) Java Basics - Anfänger-Themen 4
O Methodenaufruf Java Basics - Anfänger-Themen 6
F Methodenaufruf Java Basics - Anfänger-Themen 1
F Erste Schritte Label Text vor Methodenaufruf setzen Java Basics - Anfänger-Themen 17
J Array mit Methodenaufruf Java Basics - Anfänger-Themen 2
S Problem bei Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 3
OnDemand Methodenaufruf Java Basics - Anfänger-Themen 3
A Methoden Benutzerdefinierter Methodenaufruf Java Basics - Anfänger-Themen 4
O Methodenaufruf - Inhaltsveränderung Java Basics - Anfänger-Themen 23
G Methodenaufruf anderer Klasse Java Basics - Anfänger-Themen 18
L Einfacher Methodenaufruf vs. Objekt Java Basics - Anfänger-Themen 4
O Methodenaufruf im Konstruktor Java Basics - Anfänger-Themen 6
G was ist ein Methodenaufruf mit (){}? Java Basics - Anfänger-Themen 6
S Methoden Klassen Definition - Methodenaufruf Java Basics - Anfänger-Themen 7
K Methoden Methodenaufruf für BufferedWriter .. Java Basics - Anfänger-Themen 5
feardorcha Methodenaufruf Übergabe- und Rückgabewert Java Basics - Anfänger-Themen 5
A Problem bei Methodenaufruf Java Basics - Anfänger-Themen 6
B Parameterausführung bei Methodenaufruf Java Basics - Anfänger-Themen 8
A Methodenaufruf Java Basics - Anfänger-Themen 4
P Vererbung Methodenaufruf funktioniert aber Wertzuweisung von Variablen nicht Java Basics - Anfänger-Themen 9
S methodenaufruf Java Basics - Anfänger-Themen 8
G Erste Schritte Methodenaufruf, Variablen-Deklaration Java Basics - Anfänger-Themen 6
L Methodenaufruf in main() Java Basics - Anfänger-Themen 3
M Methodenaufruf in for-Schleife - nur 1 mal ausgegeben Java Basics - Anfänger-Themen 3
I Externer Methodenaufruf, Punkt-Notation Java Basics - Anfänger-Themen 11
I Methoden Rückverfolgung Methodenaufruf Java Basics - Anfänger-Themen 15
E Methoden Wie kann ich eine Methode so schreiben, dass Methodenaufruf polymorph erfolgen kann? Java Basics - Anfänger-Themen 8
M Methoden Methodenaufruf mit .class. Java Basics - Anfänger-Themen 2
J rekursiver Methodenaufruf Java Basics - Anfänger-Themen 12
K Klassen this-Referenz und Klassen/Methodenaufruf Syntax Java Basics - Anfänger-Themen 3
T Java mehrfacher Methodenaufruf Java Basics - Anfänger-Themen 15
L Methodenaufruf aus anderer Klasse Java Basics - Anfänger-Themen 5
B Quicksort --> Methodenaufruf Java Basics - Anfänger-Themen 10
O Methodenaufruf Java Basics - Anfänger-Themen 4
A nullPointerException bei Methodenaufruf Java Basics - Anfänger-Themen 16
J Vererbung, Methodenaufruf Java Basics - Anfänger-Themen 4
M Problem bei Methodenaufruf aus ActionListener Java Basics - Anfänger-Themen 5
G Methodenaufruf aus der Kommandozeile Java Basics - Anfänger-Themen 28
N Methodenaufruf funtioniert nicht Java Basics - Anfänger-Themen 3
C Methodenaufruf mit Variablen die gesetzt werden Java Basics - Anfänger-Themen 10
Antoras mit ActionListener/Methodenaufruf Textfelder zeichnen Java Basics - Anfänger-Themen 4
G Dynamischer Methodenaufruf Java Basics - Anfänger-Themen 3
G Methodenaufruf über ein Objekt einer anderen Klasse Java Basics - Anfänger-Themen 7
H ungültige methodenaufruf Java Basics - Anfänger-Themen 16
G Methodenaufruf Java Basics - Anfänger-Themen 3
G Frage zu Oberklasse bei Methodenaufruf Java Basics - Anfänger-Themen 2
V Dynamischer Klassen bzw. Methodenaufruf Java Basics - Anfänger-Themen 6
V Wie und wieso geht dieser Methodenaufruf? Java Basics - Anfänger-Themen 2
S Methodenaufruf Java Basics - Anfänger-Themen 6
G Methodenaufruf in der for-Schleife mit Array Java Basics - Anfänger-Themen 7
L hsqldb Methodenaufruf Java Basics - Anfänger-Themen 10
K synchron und asynchroner Methodenaufruf Java Basics - Anfänger-Themen 17
R Fehler bei Methodenaufruf Java Basics - Anfänger-Themen 2
G Methodenaufruf Java Basics - Anfänger-Themen 3
T NullPointerException bei Methodenaufruf Java Basics - Anfänger-Themen 2
G Methodenaufruf Java Basics - Anfänger-Themen 10
K Klassenübergriefendes Methodenaufruf Problem Java Basics - Anfänger-Themen 6
S methodenaufruf. Java Basics - Anfänger-Themen 16
G methodenaufruf Java Basics - Anfänger-Themen 4
E Methodenaufruf mittels variable? kA Java Basics - Anfänger-Themen 5
G methodenaufruf Java Basics - Anfänger-Themen 3
G methodenaufruf Java Basics - Anfänger-Themen 5
W Überschreiben und Methodenaufruf Java Basics - Anfänger-Themen 3
L Methodenaufruf zwischen Klassen Java Basics - Anfänger-Themen 3
C Methodenaufruf mit throws IOException Java Basics - Anfänger-Themen 2
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
F wie kann ich die Position des letzten Vokals innerhalb einer Zeichenkette ermitteln? Java Basics - Anfänger-Themen 5
J int innerhalb einer Datei ändern Java Basics - Anfänger-Themen 1
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
I Variable innerhalb Methode: Local variable test defined in an enclosing scope must be final or effectively final Java Basics - Anfänger-Themen 3
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
I ArrayList erstellen innerhalb einer Zeile? Java Basics - Anfänger-Themen 3
Z Erste Schritte Indexe innerhalb eines Arrays zusammensählen Java Basics - Anfänger-Themen 14
B Summe von Property innerhalb einer Liste via Lambda Java Basics - Anfänger-Themen 1
M Auf einen Array innerhalb eines Objekts zugreifen Java Basics - Anfänger-Themen 5
B Enum innerhalb einer Klasse / anderes Konzept Java Basics - Anfänger-Themen 8
dapzoo Innerhalb eines Jahres intensivem Java-Selbststudium zur Anstellung? Java Basics - Anfänger-Themen 37

Ähnliche Java Themen

Neue Themen


Oben