Frage

Ich habe Konzept der statischen Variablen, aber was sind die Vorteile von statischen Methoden in einer Klasse. Ich habe an einigen Projekten gearbeitet, aber ich habe keine Methode statisch machen. Jedes Mal, wenn ich brauche eine Methode einer Klasse zu nennen, ich ein Objekt dieser Klasse erstellen und die gewünschte Methode aufrufen.

F: statische Variable in einer Methode Wert es die hält, auch wenn Methode wird ausgeführt, sondern nur zugänglich in seiner enthält Methode aber was ist die beste Definition für statische Methode?

F: ist die statische Methode aufrufen, ohne Objekt dieser Klasse zu schaffen ist der einzige Vorteil der statischen Methode?

F: Was ist der zugängliche Bereich für statische Methode?

Danke

War es hilfreich?

Lösung

Ihre Beschreibung einer statischen Variablen mehr in C. Das Konzept einer statischen Variablen in der objektorientierten Begriffen vorgefundener passend ist vom Konzept her unterschiedlich. Ich bin hier von Java Erfahrung zu ziehen. Statische Methoden und Felder sind nützlich, wenn sie vom Konzept her nicht gehört zu einer Instanz von etwas.

eine Klasse Math Man bedenke, dass einige gemeinsame Werte wie Pi oder e enthält, und einige nützliche Funktionen wie Sinus und Kosinus. Es ist nicht wirklich sinnvoll, separate Instanzen zu erstellen, um diese Art von Funktionalität zu nutzen, damit sie besser als Statik ist:

// This makes little sense
Math m = new Math();
float answer = m.sin(45);

// This would make more sense
float answer = Math.sin(45);

In OO-Sprachen (auch hier aus einer Java-Perspektive) Funktionen, oder besser bekannt als Verfahren, kann statische lokale Variablen nicht hat. Nur Klassen können statische Mitglieder haben, die, wie ich gesagt habe, ähneln wenig im Vergleich zu der Idee der statischen in C

Andere Tipps

Statische Methoden keinen „dieser“ Zeiger auf ein Objekt übergeben, so dass sie nicht nicht-statische Variablen oder Methoden verweisen können, sondern können somit effiziente zur Laufzeit (weniger Parameter und kein Overhead erzeugen und zerstören ein Objekt).

Sie können in eine einzige Klasse zu einer Gruppe zusammenhängender Methoden verwendet werden, oder auf Objekte ihrer Klasse zu handeln, wie zum Beispiel in der Fabrik Mustern.

Syntax (php) für statische Methoden:

<?php
class Number {
    public static function multiply($a, $b) {
        return $a * $b;
    }
}
?>

Client-Code:

echo Number::multiply(1, 2);

Welche sinnvoller als macht:

$number = new Number();
echo $number->multiply(1, 2);

Wie die multiply() Methode verwendet keine Klassenvariablen und als solche erfordert keine Instanz Number.

Im Wesentlichen statische Methoden können Sie prozeduralen Code in einer objektorientierten Sprache schreiben. Damit können Sie Methoden aufrufen, ohne zuerst ein Objekt erstellen zu müssen.

Das einzige Mal, wenn Sie eine statische Methode in einer Klasse verwendet werden soll, wenn eine bestimmte Methode nicht eine Instanz einer Klasse erfordert geschaffen werden. Dies könnte bei dem Versuch, eine gemeinsame Datenquelle zurück (zB einen Singleton) oder eine Operation durchführen, die nicht den internen Zustand des Objekts (String.format zum Beispiel) nicht verändert.

Dieser Wikipedia-Eintrag erklärt statische Methoden ziemlich gut: http: //en.wikipedia. org / wiki / Method_ (computer_science) #Static_methods

Statische Variablen und statische Methoden der Klasse gebunden ist, und nicht eine Instanz der Klasse.

Statische Methoden sollten keinen „Staat“ enthalten. Alles, was zu einem Zustand zurückzuführen ist, sollte zu einem instanziierten Objekt gebunden sein, und nicht die Klasse.

Eine gemeinsame Verwendung von statischen Methoden ist in dem genannten Konstruktor Idiom. Siehe: http://www.parashift.com/c++- FAQ-lite / ctors.html # faq-10.8 .

Statische Methoden in PHP :

Kann, ohne ein Objekt der Klasse aufgerufen werden.

Kann nennen nur auf statische Methoden und Funktion.

statische Variable verwendet, wenn Sie einige Informationen zwischen verschiedenen Objekten der class.As Variable teilen wollen, ist jedes Objekt geteilt es aktualisieren kann und der aktualisierte Wert für alle anderen Objekte zur Verfügung stehen als auch. Als statischer Variable gemeinsam genutzt werden kann, werden diese oft als Klassenvariable genannt.

statische Elemente sind von jedem Kontext (das heißt überall in Ihrem Skript), so dass Sie diese Methoden, ohne Zugriff auf eine Instanz der Klasse von Objekt zu Objekt zu übergeben.

sind Statische Elemente in jeder Instanz einer Klasse zur Verfügung, so dass Sie Werte festlegen können, dass Sie auf alle Mitglieder einer Art verfügbar sein sollen.

zur weiteren Lektüre ein Link !

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top