Java Methoden


  Share  
|


Methoden werden während die Bausteine Ihres Programms verwendet und Aufgaben durchführen, die immer wieder benannt werden können und mit dem gleichen Code, die Aufgabe jede Zeit durchzuführen. Die grundlegenden aber grundlegenden Teile der Erklärung einer Methode sind sein Name, seine Rückholart, Parameterunterzeichnung und lockige Haltewinkel des Codesegments. Die folgenden Linien des Codes sind ein Beispiel einer Methode Erklärung.

Static leeres doSomething(), addieren {// Code hier}

Diese Methode wird DoSomething benannt und eine Rückholart Lücke hat, die einfach anzeigt, daß die Methode nicht einen Wert zurückbringt. Wir haben die Schlüsselwortlücke bereits gesehen, die die Rückholart der Methode Hauptleitung ist. Wenn die doSomething Methode Ihrer Hauptprogrammkategorie hinzugefügt wurden, dann in der Hauptmethode der Kategorie würden Sie die Methode benennen, die indem Sie den folgenden Code doSomething ist, eingaben:

doSomething();

Merken Sie die Methode doSomething Notwendigkeiten, statisch zu sein im Augenblick, weil die Methode Hauptleitung, von der wir die doSomething Methode annehmen, benannt werden wird, ist auch Static. Die Methode, die doSomething ist, würde nicht brauchen, statisch zu sein, wenn wir einen Fall der Kategorie verursachten, der das DoSomething gehören würde.

Wenn Sie eine Methode wünschen, die einen Wert zurückbringt, müssen Sie die Rückholart der Methode spezifizieren, und dann müssen Sie die Schlüsselwortrückkehr im Methode Codeblock verwenden, um den zurückgebrachten Wert zu spezifizieren.

statisches internes getFiveDoubled() {Rückkehr 10; 
}

Die folgende Methode bringt einfach den Wert von 10 zu zurück, wohin sie von benannt wurde. Die folgende Linie des Codes konnte z.B. in Ihrer Hauptmethode hinzugefügt werden, um diesen Wert einer Variable zuzuweisen:

internes myNumber = getFiveDoubled();

Diese Linie des Codes weist den Wert von 10 dem variablen myNumber zu.

Merken Sie, gerade weil die Methode hat jetzt eine Rückholart, es bedeutet nicht getFiveDoubled, daß sie nicht ersucht werden kann um seine Selbst.

getFiveDoubled();

Diese Methode tut im Wesentlichen nichts, aber Sie können eine Methode haben, die eine erforderliche Aufgabe durchführt und dann einen Wert zurückbringt, den Sie ignorieren möchten.

Eine Methode, die einen Rückholwert hat (nicht Lücke) muß eine Rückgabeanweisung an jedem möglichen Ausgang Punkt von der Methode haben. Der Compiler hebt auf, wenn ein Weg ohne einen Rückholwert möglich ist. Andererseits wenn Sie eine Methode mit Rückholart Lücke haben und dann aus der Methode heraus früh herausnehmen möchten, können Sie die Schlüsselwortrückkehr eigenständig verwenden. Z.B. nehmen Sie den folgenden Code:

Öffentlichkeit leere doSomething() {if(leaveEarly == 
zutreffend) Rückkehr; //fahren sonst mit dem Rest des Codes} 
fort

Dieses ist ähnlich, wie die Bruchaussage verwendet wird, um aus bestimmten Codeblöcken, wie Schalterfällen und Schleifen heraus herauszunehmen, wie wir früh sahen. Das Beispiel, das wir gerade gesehen haben, ist ein sehr grundlegendes Beispiel, aber der Gebrauch von der Schlüsselwortrückkehr in diesem Fall kann für sofort herausnehmen aus schwierigen Codeblöcken in einer gegebenen Methode heraus sehr nützlich sein.

Parameter-Überschreiten

Die vorhergehende Methode, getFiveDoubled, ist recht sinnlose und sehr ungünstige, weil sie nur einen Wert zurückbringt, 10. Jedoch könnten wir eine Methode verursachen, die in jeder möglicher Zahl nimmt, verdoppeln sie und zurückbringen dann den geverdoppelten Wert. Dieses kann mit dem Parameterüberschreiten erzielt werden. Das Parameterüberschreiten erlaubt Ihnen, Werte zu einer Methode zu führen, die die Methode dann manipulieren kann. Die folgende Methode enthält einen Parameter, der geverdoppelt wird und der neue Wert zurückgebracht wird.

interne doubleNumber(int Zahl) {Zahl * = 2; 
Rückholzahl; }

Wie Sie sehen können, ist der Parameter eine variable gebenannte Zahl der Art intern und wird zwischen den Haltewinkeln spezifiziert, die dem Namen der Methode folgen. Um diese Methode zu benennen, konnten Sie den folgenden Code z.B. verwenden:

//Doppeltes 2 Gleichgestellte 4 des internen myNumber = 
doubleNumber(2); //verdoppeln dann seine gegenwärtige Zahl 4 
Gleichgestellte 8 von myNumber = von doubleNumber(myNumber); 
//vervierfachen dann seine gegenwärtige Zahl, um myNumber 32 = 
doubleNumber(doubleNumber(myNumber) zu entsprechen);

Diese letzte Linie des Codes benennt das Methode doubleNumber zweimal und zuerst bringt einen Wert, der der doppelte Wert von myNumber ist, das der Reihe nach dann da ein Parameter zum zweiten Anruf zum doubleNumber geführt wird, das schließlich den abschließenden Wert von 32 zurückbringt zurück und weist es dem variablen myNumber zu.

Reiterieren was wir früh erwähnten, wenn der Wert, den Sie führen, während ein Parameter von einer ursprünglichen Datenart Variable ist, die Variable selbst nicht zur Methode geführt wird. Eine neue Variable mit diesem Wert wird in der Methode verursacht und verwendet dann. Dies heißt, daß die Änderungen, die an diesem Wert innerhalb der benannten Methode vorgenommen werden, nicht den Wert der ursprünglichen Variable beeinflussen.

Sie können mehr als einen Parameter mit einem Komma auch haben, nachfolgende Parameter zu trennen. Das folgende einfache Beispiel, SpidersEyes.java, enthält die Methode multiplizieren, die zwei Parameter enthält, die beide von der Art sind, die intern ist und den Wert der zwei Parameter zusammen multipliziert zurückbringt. Ist hier der Code:

allgemeine Kategorie SpidersEyes {allgemeines statisches 
internes multiply(int valueA, internes valueB) {RückholvalueA * 
valueB; } allgemeiner Static leeres main(String args[ ]) 
{interne numberOfSpiders = 10; internes eyesPerSpider = 8; 
interne totalEyes = multiply(numberOfSpiders, eyesPerSpider); 
System.out.println("Total mustert =" + totalEyes); }}

Es gibt zwei von diesem Beispiel zu merken Sachen. Zuerst haben wir den Schlüsselwort Static für die Methode multiplizieren verwendet. Dieses ist, weil es keinen Fall der Kategorie z.Z. verursachtes SpidersEyes gibt, so, damit die Hauptleitung, die statisch ist, zum zu sein, die Methode zugänglich zu machen multiplizieren, es muß statisch auch sein. Die zweite Sache zur Nachricht ist, daß die Methode Hauptleitung auch einen Parameter nimmt, der eine Reihe Zeichenketten ist.

Methode Unterzeichnungen

Es ist möglich, zwei Methoden zu haben, die den gleichen Namen teilen. Jedoch müssen sie unterschiedliche Unterzeichnungen haben weil anders, wenn Sie eine der Methoden benennen möchten, der Compiler haben keine Weise des Unterscheidens ein vom anderen, da die Anforderung der Methode auf dem Compiler basiert, der die Unterzeichnung erkennt. Methoden des gleichen Namens aber mit unterschiedlichen Unterzeichnungen habend, bekannt als Überbelastung der Methode.

Der Name der Methode und die Parameterunterzeichnung dieser Methode stellen die Unterzeichnung einer Methode fest. Die Rückholart einer Methode beeinflußt nicht seine Unterschrift. Folglich können Sie nicht zwei Methoden mit dem gleichen Namen mit zwei unterschiedlichen Rückholwerten mit der gleichen Parameterunterzeichnung haben.

Im vorhergehenden Beispiel SpidersEyes.java, wir ließen eine Methode benennen zu multiplizieren, die zwei Parameterinhalte der Art intern nahm und brachten den Wert der Parameterinhalte zusammen multipliziert zurück. Wenn wir auch eine Methode einschlossen, die die gleiche Sache tat, aber Werte der Art Doppeltes anstatt verwendeten, könnten wir eine andere Methode mit dem gleichen Namen aber mit einer anderen Parameterunterzeichnung verursachen.

allgemeines statisches internes multiply(int a, internes 
B) {bringen Sie a * b zurück; } allgemeines statisches 
doppeltes multiply(double a, doppeltes B) {bringen Sie a * b zurück; 
}

Die Parameterunterzeichnung wird nach den Datenarten der Parameter und folglich der Zahl Parametern auch festgestellt. Lassen Sie uns sagen, daß wir jetzt die folgende Methode zusammen mit den vorhergehenden zwei Methoden hinzufügten:

allgemeines statisches langes multiply(int a, internes B) 
{Rückkehr (long)(a * B); }

Das Programm würde nicht mehr kompilieren, weil diese Methode und die Vorlage Methode Anteil die gleiche Unterschrift multiplizieren. Sie haben den gleichen Namen und auch die gleichen Parameter beide—der Parameterunterzeichnung zwei der internen Art. Die offensichtlichste Lösung soll die Parameterunterzeichnung der letzten Methode zu den Parametern des Nehmens zwei der Art ändern lang.

allgemeines statisches langes multiply(long a, langes B) 
{bringen Sie a * b zurück; }

Dieses arbeitet jetzt, weil die Parameterunterzeichnungen unterschiedlich sind. Wenn Sie nicht imstande sind, die Parameterunterzeichnung in einer angemessenen Weise zu ändern, stören Sie nicht; gerechtes Geben die Methoden unterschiedlichen Namen (z.B., multiplyInt, multiplyDouble, multiplyLong, etc.).

dieses ist ein Artikel, der durch Gabriela C. Perez hinzugefügt wird


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions