Wie und wo sollten wir verwenden, um einen statischen Modifikator für:Wie und wo wird der statische Modifikator in Java verwendet?
1. Feld und
2. Methode?
Für example in java.lang.Math
Klasse, die Felder Methoden wie abs(), atan(), cos() usw. statisch sind, das heißt sie können als zugegriffen werden: Math.abs()
Aber warum ist es eine gute Praxis?
Sagen, ich halte es nicht statisch und erstellen Sie ein Objekt der Klasse und greifen Sie darauf zu, was auch immer ich kann, ich werde nur eine Warnung erhalten, dass Sie versuchen, auf eine statische Methode auf eine nicht statische Weise zuzugreifen (wie von @duffymo angegeben, nicht im Fall der Math-Klasse).
UPDATE 1:
So Dienstprogramm Verfahren sollte statisch sein, d.h., deren Arbeit auf die Verfahrensparameter nur abhängig. Kann also beispielsweise die Methode updateString(String inputQuery, String highlightDoc)
in this question eine statische Methode sein?
bitte mein Update überprüfen. Können Sie einige Informationen über die Beispielmethode, die ich in meiner Frage gepostet habe, geben? Das ist auch eine Hilfsmethode. – zengr
@zengr: Ja, ich würde diese Methode statisch machen. Sie können sich beispielsweise eine StringHelper-Klasse vorstellen, die alle anwendungsspezifischen String-Manipulationsoperationen (wie die von dieser Methode durchgeführten) einschließt. In der Tat würde ich _any_ Methode statisch machen, wenn es nicht auf das Schlüsselwort 'this' verweist; Es gibt keine Notwendigkeit, eine Kopie dieser Methode auf jedem Objekt zu erstellen, es ist auf diese Weise besser lesbar, und es ist gut für die Klarheit des Gesamtdesigns IMO. – Alex