2017-04-26 8 views
-5

Beim Aufruf einer Methode, bekomme ich, dass Sie instanceName.method() oder className.method() verwenden müssen. In einigen Fällen wird jedoch die instanceName oder className im Code weggelassen und nur method() geschrieben.Wann sind Punktoperatoren erforderlich?

Programmiersprache ist Java. Ich beziehe das nur auf den AP-Informatik-Test und habe relativ wenig Kenntnisse über die Programmierung außerhalb der Kurs-Parameter, so dass eine leicht verständliche Erklärung sehr geschätzt wird.

Mein Buch sagt etwas über Client-Programme, aber ich bin nicht genau sicher, was es bedeutet (sowohl im Allgemeinen und über Client-Programme speziell).

+0

Wenn Sie die Methode aus derselben Klasse aufrufen oder Sie eine geerbte Methode aufrufen Sie keinen Punkt-Operator benötigen. –

+0

seine sind sehr Basics. Sie sollten es wissen, bevor Sie einen Test starten – Jens

+1

Code innerhalb der Klasse 'A' kann sich auf die statischen Methoden und Felder der Klasse' A' beziehen, ohne dass 'A.' vorangestellt wird. (Oder zu statischen Methoden und Feldern in Klassen, von denen "A" erbt.) Code in einer Instanzmethode kann auf die Felder und Methoden dieser Instanz nur durch den Namen ohne 'this. 'verweisen (einschließlich Felder und Methoden, die' this' enthalten) erbt von Basisklassen). – khelwood

Antwort

0

Ich werde meine Erklärung so einfach wie möglich setzen - Normalerweise würden Sie instanceName.method() verwenden, wenn Sie versuchen, die Variablen innerhalb einer Klasse zu bewirken. Zum Beispiel ein "Katze" -Objekt, Sie könnten eine Katze machen - Cat catOne = new Cat() und dann ihre Methoden verwenden catOne.setName("Kitty");. Dadurch wird dieser Objektname auf "Kitty" gesetzt, und alle anderen Katzenobjekte erhalten ihren eigenen eindeutigen Namen.

Die Verwendung von className.method() erfolgt, wenn eine statische Methode innerhalb einer Klasse verwendet wird, z. B. public static int method(), und dann in einer anderen Klasse verwendet wird. Dies erfordert nicht, dass Sie ein Objekt für diese Klasse instanziieren, und können sie bereitwillig verwenden. Zum Beispiel mit einer Klasse namens MathConstants und mit etwas wie MathConstants.getPi() (Sorry für das grobe Beispiel).

Wenn Methoden wie methodName() aufgerufen werden, bedeutet dies, dass sich die Methode in der Klasse selbst befindet. Normalerweise verwenden wir this, wie in this.methodName(), aber nur methodName() ist in Ordnung.

Hoffnung, die einfach verstehen

+0

Ja, das macht viel Sinn. Vielen Dank! –

+0

@ JeffreyKim kein Problem! Vergessen Sie nicht, nach oben zu stimmen Antwort;) Der Grind für rep ist real –

Verwandte Themen