Ich machte ein Projekt in Greenfoot und ich machte eine imaginäre Zahlenklasse. In meinem Projekt musste ich zwei imaginäre Objekte addieren (oder subtrahieren), gibt es eine Möglichkeit, zwei Objekte hinzuzufügen? So würde es in einer perfekten Welt aussehen:
%Vor%Ist das möglich?
Java hat keinen Operator überladen .
Zum Beispiel wäre BigDecimal
viel populärer, wenn Sie a + b
anstelle von a.add(b)
schreiben könnten.
Weg 1 .
%Vor%Methode:
%Vor%Weg 2 .
%Vor%Methode:
%Vor%Das Überladen von Operatoren hätte das Design definitiv komplexer gemacht als ohne es, und es hätte möglicherweise zu komplexeren Compilern geführt oder verlangsamt die JVM.
Was Sie beschreiben, heißt "Operator overloading" und kann in Java nicht ausgeführt werden (zumindest von Programmierern wie Sie und mir; die Entwickler haben freie Hand dies zu tun und taten dies mit der String-Klasse). Stattdessen können Sie eine add
-Methode erstellen und Folgendes aufrufen:
Versuchen Sie es so.
%Vor% Wenn Sie Object
hinzufügen möchten, können Sie eine Methode zum Hinzufügen erstellen.
Und erstelle ein Objekt von diesem
%Vor% Es ist möglich, in C ++, aber nicht in Java, eine Funktion addImaginary(Imaginary, Imaginary)
zu definieren, die zwei Imaginarys hinzufügt und sie im Objekt speichert und die Methode aufruft.
Es wird wie folgt aussehen:
%Vor%Aber es liegt an Ihnen, wie Sie die Funktion definieren, es kann auch wie folgt gemacht werden:
%Vor% Java unterstützt kein benutzerdefiniertes Überladen von Operatoren. Sie können jedoch eine Methode in Ihrer Imaginary
-Klasse erstellen :
Sie können es also wie folgt nennen:
%Vor%