Was ist der Unterschied zwischen einer öffentlichen statischen Methode und einer öffentlichen Methode? Warum würden Sie eine öffentliche statische Methode verwenden?Öffentliche statische Methoden und öffentliche Methoden
Antwort
Die Methoden der Math-Klasse sind statisch. Also, tun
Math.round(average)
die Mathematik selbst ist unverändert von dem, was Sie getan haben - es gibt nur einen Wert oder wirkt auf den Wert, den Sie übergeben.
So - statische Methoden sind nützlich für Dienstprogramme. Dinge wie
StringUtils.removeWhitespaceFrom(textContent:String):String
oder
BrowserUtils.openInNewWindow(url:String):void
Es ist sehr ungewöhnlich, dass Sie eine statische Methode für etwas anderes verwenden würde. Verwenden Sie keine Statiken wie 'getInstance()', um Singletons zu erstellen - schauen Sie stattdessen in ein Framework für die Abhängigkeitsinjektion.
statische Methoden sind Methoden, die eine nicht spezifisch für jede Instanz einer Klasse (Objekt) sie sind Methoden, die nicht erlaubt sind diese Verweise zu enthalten und Sie können sie durch die Klasse direkt zugreifen (nicht die Objektinstanzen)
Um Ihr Konzept zu verdeutlichen: Wenn Sie wissen möchten, wie oft Ihre Klasse instanziiert wurde, verwenden Sie jedes Mal, wenn Ihr Objekt erstellt wird, einen statischen Variablenzähler in Ihrem Klassenbaustein.
Dann müssen Sie die statische Methode verwenden, um auf diese Daten zuzugreifen. Andernfalls können Sie Ihre Variable als public oder default deklarieren und mit Klassennamen darauf zugreifen, was jedoch gegen die OOP-Prinzipien verstößt. hier ist das kleine Beispiel
public class CAR {
private static var Counter: int = 0;
private Funktion CAR() {Counter ++; }
öffentliche statische Funktion ReturnTotalCarInstances(): int { Rückgabezähler; }
}
Statische Variablen haben ihren Nutzen ist, warum es in den meisten Programmiersprachen zur Verfügung gestellt. Das Zählen von Instanzen ist die geringe Verwendung von statischen Variablen. Sie werden in viel größerem Umfang verwendet. Der Hauptpunkt ist, dass Daten global unter allen Objekten der Klasse ausgetauscht werden.
Statische Methoden können als überladene Konstruktoren verwendet werden. ActionScript hat keine Funktionsüberladung, daher schreibe ich manchmal etwas wie:
public class Foo {
public static function fromBar(bar:Bar):Foo {
var foo:Foo = new Foo();
... //initializing foo object from bar
return foo;
}
public static function fromBaz(baz:Baz):Foo {
var foo:Foo = new Foo();
... //initializing foo object from baz
return foo;
}
}
- 1. JQuery - Widget öffentliche Methoden
- 2. Python öffentliche Methoden in Klassen?
- 3. Wann sollte ich öffentliche/private/statische Methoden verwenden?
- 4. Mocking nicht-öffentliche statische Methoden in abstrakten Klassen mit JMockit?
- 5. "öffentliche statische" oder "statische Öffentlichkeit"?
- 6. Zusätzliche öffentliche Methoden in abgeleiteten Klassen?
- 7. JavaScript-Komprimierung, die öffentliche Methoden bewahrt?
- 8. Öffentliche Methoden nur in IDEA Intellij anzeigen?
- 9. So finden Sie ungenutzte öffentliche Methoden/Eigenschaften
- 10. Warum öffentliche Methoden in JavaScript-Objekten verwenden?
- 11. Öffentliche Methoden in Benutzersteuerelement C# .net
- 12. Swift - statische Methoden überladen
- 13. MethodInfo nur für geschützte und öffentliche Methoden abrufen?
- 14. Vorteil von Set und erhalten Methoden vs öffentliche Variable
- 15. Methodenname Interchange - öffentliche abstrakte oder abstrakte öffentliche
- 16. System.setProperty oder öffentliche statische Variable?
- 17. Singleton und öffentliche statische Variable Java
- 18. Testklasse für öffentliche statische Endloszeichenfolge
- 19. Statische Methoden und Fadensicherheit
- 20. statische Methoden und Komponententests
- 21. Welche Delphi-Version unterstützt RTTI für öffentliche Methoden?
- 22. Junit Best Practice: Öffentliche Methode, die mehrere private Methoden aufruft
- 23. Warum sind nur öffentliche Methoden in einer Schnittstelle zulässig?
- 24. öffentliche vs interne Methoden auf einer internen Klasse
- 25. Was bedeutet pylints "Zu wenige öffentliche Methoden" Nachricht
- 26. Statische Methoden
- 27. Java2C# Übersetzung: öffentliche Methoden in Interfaces in C#
- 28. Statische Methoden und deren zwingende
- 29. Zugriff auf öffentliche statische Java-Methode von Scala
- 30. Mongoose 'statische' Methoden vs. 'Instanz' Methoden