│
Deutsch (de) │
English (en) │
Zurück zu den Zusätzlichen Informationen.
Übersetzen von gemeinsamen Programm-Teilen
Die verlinkte englischsprachige Seite zeigt, wie gemeinsame Probleme in verschiedenen Programmiersprachen, einschließlich Java und FreePascal / Object Pascal gelöst werden können.
Rosetta Code
Übersetzen von Java-Operatoren
Arithmetische Operatoren
Java |
Pascal |
Kommentare
|
+
|
+
|
Addition
|
-
|
-
|
Subtraktion
|
*
|
*
|
Multiplikation
|
/
|
/
|
Gleitkommadivision
|
%
|
Mod
|
Modulo (Division ohne Rest)
|
++
|
Inc
|
inkrementieren (Hochzählen)
|
--
|
Dec
|
dekrementieren (Herunterzählen)
|
Relationale Operatoren
Java |
Pascal |
Kommentare
|
==
|
=
|
gleich
|
!=
|
<>
|
ungleich
|
<
|
<
|
kleiner
|
<=
|
<=
|
kleiner gleich
|
>
|
>
|
grösser
|
>=
|
>=
|
grösser gleich
|
Logische Operatoren
Java |
Pascal |
Kommentare
|
!
|
Not
|
Negation (Den Wahrheitswert in sein Gegenteil ändern)
|
&&
|
And
|
logisches UND mit Kurzschlussauswertung
In Free Pascal ist dies die Standard-Compilereinstellung
|
||
|
Or
|
logisches ODER mit Kurzschlussauswertung
In Free Pascal ist dies die Standard-Compilereinstellung
|
&
|
And
|
logisches UND mit Komplettauswertung
In Free Pascal ist dies die Compilerdirektive {$B ON}
|
|
|
Or
|
logisches ODER mit Komplettauswertung
In Free Pascal ist dies die Compilerdirektive {$B ON}
|
^
|
Xor
|
exclusives ODER
|
Bit Operatoren
Java |
Pascal |
Kommentare
|
~
|
Not
|
Einerkomplement
|
&
|
And
|
bitweises UND
|
|
|
Or
|
bitweises inclusives ODER
|
^
|
Xor
|
bitweises exclusives ODER
|
>>
|
Shr
|
bitweises Rechtsschieben mit Vorzeichen
|
>>>
|
ist in Free Pascal nicht vorhanden
|
bitweises Rechtsschieben ohne Vorzeichen
|
<<
|
Shl
|
bitweises Linksschieben
|
Zuweisungs Operatoren
Hinweis:
C-artige Operatoren werden in Free Pascal über die Kommandozeilenoption -Sc ermöglicht.
C-artige Operatoren werden in Lazarus über die Projekteinstellungen ermöglicht.
Java |
Pascal |
Kommentare
|
=
|
:=
|
Einfache Zuweisung
|
+=
|
+=
|
Additionszuweisung
|
-=
|
-=
|
Subtraktionszuweisung
|
*=
|
*=
|
Multiplikationszuweisung
|
/=
|
/=
|
Divisionszuweisung
|
%=
|
ist in Free Pascal nicht vorhanden
|
Modulo Zuweisung
|
&=
|
ist in Free Pascal nicht vorhanden
|
UND Zuweisung
|
|=
|
ist in Free Pascal nicht vorhanden
|
ODER Zuweisung
|
^=
|
ist in Free Pascal nicht vorhanden
|
Exclusive ODER Zuweisung
|
>>=
|
ist in Free Pascal nicht vorhanden
|
Rechtsschiebe Zuweisung
|
>>>=
|
ist in Free Pascal nicht vorhanden
|
Rechtsschiebe Zuweisung mit Nullexpansion
|
<<=
|
ist in Free Pascal nicht vorhanden
|
Linksschiebe Zuweisung
|
Sonstige Operatoren
Java |
Pascal |
|
&
|
@
|
Adresse von ...
|
*
|
^
|
Zeiger / Pointer
|
Ternärer Operator
Java |
Pascal |
Kommentare
|
?
|
ist in Free Pascal nicht vorhanden
|
Erlaubt die verkürzte Schreibweise von If-Else Verzweigungen und gibt einen Wert zurück
Verwendung:
Ergebnisfeld = Bedingung ? Wahrfall : Falschfall
Beispiel:
Für ein Maximum in Java:
max = ( a > b ) ? a : b;
Dies entspricht in Pascal folgendem if-else-Konstrukt:
if a > b Then
max := a
else
max := b;
|
Übersetzen von Java Kommentarzeichen
Java |
Pascal |
Kommentare
|
/*
|
{
|
Anfang eines Kommentars
|
/*
|
(*
|
Anfang eines Kommentars
|
*/
|
}
|
Ende eines Kommentars
|
*/
|
*)
|
Ende eines Kommentars
|
//
|
//
|
Kommentarzeile
|
Übersetzen von Java Anweisungsblöcken
Java |
Pascal |
Kommentare
|
{
|
Begin
|
Anfang eines Anweisungsblocks
|
}
|
End
|
Ende / Abschluss eines Anweisungsblocks
|
Übersetzen von Java Schleifentypen
Java |
Pascal |
Kommentare
|
for( ...; ...; ...++)
|
For ... To ... Do
|
Kopfgesteuerte Schleife, die hochgezählt wird
|
for(...; ...; ...--)
|
For ... Downto ... Do
|
Kopfgesteuerte Schleife, die heruntergezählt wird
|
for (Datentyp ...: Array) // For Each Schleife
|
For ... in
|
Kopfgesteuerte Schleife, für das Durchsuchen von Mengen
|
while (...)
|
While ... Do
|
Kopfgesteuerte Schleife
|
do ... while(...)
|
Repeat ... Until
|
Fussgesteuerte Schleife
|
do ... while!(...)
|
Repeat ... Until ... Not
|
Fussgesteuerte Schleife mit Nichtung des Ergebnisses des Ausdrucks
|
Übersetzen von Java Verzweigungen / Bedingungen
Java |
Pascal |
Kommentare
|
if(...)
|
If ... Then
|
If-Bedingung
|
if(...) ... else
|
If ... Then ... Else
|
If-Bedingung mit Sonstzweig
|
switch(...) case ...: ...break;
|
Case ... Of ...: ... End;
|
Case-Bedingung
|
switch(...) case ...: ... break; default ...;
|
Case ... Of ...: ... Else ... End;
|
Case-Bedingung mit Sonst-Zweig
|
Übersetzen von Java Verzweigungen- / Schleifenabbrüchen
Java |
Pascal |
Kommentare
|
break
|
Break
|
Die break-Anweisung ermöglicht es, vorzeitig eine Schleife (oder ein switch-case-Konstrukt) zu verlassen
|
continue
|
Continue
|
Die continue-Anweisung ermöglicht es, den aktuellen Schleifendurchlauf zu beenden
|
Übersetzen von Java Prozeduren und Funktionen
Java |
Pascal |
Kommentare
|
void Prozedurname(...)
|
Procedure Prozedurname(...)
|
Unterprogramm (Prozedur) ohne Rückgabewert
|
datentyp Funktionsname(...)
|
Function Funktionsname(...): Datentyp
|
Unterprogramm (Funktion) mit Rückgabewert
|
return
|
FunctionName := ...
|
Diese Pascal-Schreibweise ist überholt (deprecated)
|
return
|
Result := ...
|
Einer Funktion Ihren Rückgabewert zuweisen
|
Java |
Pascal |
Kommentare
|
package ...;
|
Unit ...;
|
Einbinden der Pascal Unit bzw. des Java Packages
|
import ...;
|
Uses ...;
|
Bindet Bibliotheken und Klassen ein
|
public static void main(String[...] args) {...}
|
Program ProgramName; Begin ... End.
|
Hauptprogramm
|
Übersetzen von Java Datentypen
Java Datentyp |
Pascal Datentyp |
Speichergrösse in Bits |
Range
|
byte
|
Shortint
|
8-Bit
|
-128 .. 127
|
short
|
SmallInt
|
16-Bit
|
-32768 .. 32767
|
int
|
LongInt
|
32-Bit
|
-2147483648..2147483647
|
long
|
Int64
|
64-Bit
|
-9 223 372 036 854 775 808 .. 9 223 372 036 854 775 807
|
float
|
Single
|
32-Bit
|
1.5E-45 .. 3.4E+38
|
double
|
Double
|
64-Bit
|
5.0E-324 .. 1.7E+308
|
boolean
|
Boolean
|
8-Bit
|
False bzw. True
|
char
|
WideChar
|
16-Bit
|
2 Bytes codieren ein sichtbares Zeichen
|
String
|
WideString
|
0-Bit bis ∞
|
Zeichenkette
|
Übersetzen von Java Aufzählungen (Enumerationen)
Java |
Pascal |
Kommentare
|
enum TheEnum = {MINVALUE, MAXVALUE}
|
TheEnum = (MINVALUE, MAXVALUE)
|
Die Konstante MINVALUE enthält den Wert 0
Die Konstante MAXVALUE enthält den Wert 1
|
Übersetzen von Java Arrays
Java |
Pascal |
Kommentare
|
Datentyp[] arrayName = new Datentyp[...];
|
Datentyp: Array[...] Of Datentyp;
|
|
Datentyp arrayVar[...] = new Datentyp[...];
|
Datentyp: Array[...] Of Datentyp;
|
|
Übersetzen der Java Objektorientierung
Java |
Pascal |
Kommentare
|
class Klassenname{...}
|
Klassenname = Class ... End;
|
Leitet eine Klassendeklaration ein
Schreibweise für Free Pascal und Delphi
|
class Klassenname{...}
|
Klassenname = Object ... End;
|
Leitet eine Klassendeklaration ein
Schreibweise für Free Pascal und Turbo Pascal
|
class Klassenname<T> {...}
|
Generic Klassenname = Class<T> ... End;
|
Leitet eine Klassendeklaration ein
Generische Klassen werden erst ab Free Pascal 2.2.2 unterstützt
|
Klassenname(...)
|
Constructor Klassenname.Konstruktorname(...);
|
In Java ist der Name des Konstructors der Klassenname
In Free Pascal ist der Name des Konstruktors Create
|
abstract
|
Abstract
|
Kennzeichnet eine abstrakte Klasse oder eine abstrakte Methode,
d. h. die Klasse oder Methode wird nicht implementiert.
|
implements
|
SomeClass = Class(SomeInterface)
|
Implementiert ein Interface
|
extends
|
SubClass = Class(BaseClass)
|
Bezeichnet die Klasse von der geerbt wird
|
final
|
Final
|
Verhindert das nachträgliche Ändern oder Überschreiben von virtuellen Methoden
|
interface
|
TheInterface = Interface
|
Deklariert die Schnittstelle einer Klasse
|
new Class()
|
InstanzVariable := Klassenname.Create
|
Initialisierung von Referenz-Datentypen
|
private
|
Private
|
|
protected
|
Protected
|
|
public
|
Public
|
|
static
|
Static
|
|
static
|
Class Function
|
|
static
|
Class Procedure
|
|
super
|
Inherited
|
Ruft den Elternkonstruktor auf
|
this
|
Self
|
Bezeichnet die Klasse "in der man sich gerade befindet" (Selbstreferenz)
|
transient
|
|
Die Variable soll bei der Speicherung von Objekten (Serialisierung) nicht gespeichert werden.
|
Freigabe eines Objektes
Java |
Pascal |
Kommentare
|
null
|
Nil
|
Gibt die Referenz auf ein Objekt frei. Mehr ist in Java nicht nötig, den Rest erledigt in Java der Garbage-Collektor.
In Pascal führt der Aufruf FreeAndNil(...) zum selben Ergebnis.
|
Klassenbestimmung
Java |
Pascal |
Kommentare
|
instanceof
|
Is
|
Bestimmt die Klassenzugehörigkeit eines Objektes
|
Werfen von Exceptions
Java |
Pascal |
Kommentare
|
throw
|
Raise
|
Wirft eine Exception
|
throws
|
ist in Free Pascal nicht vorhanden
|
Gibt im Methodenkopf einer Klasse oder Methode an,
welche Ausnahme(n) von der Klasse bzw. Methode ausgelöst werden kann.
|
Fangen von Exceptions
Java |
Pascal |
Kommentare
|
try { ... } catch { ... }
|
Try Begin ... End Except Begin ... End
|
Fehlerbehandlung mit einem Try-Block
|
try { ... } catch { ... } finally { ... }
|
begin ... try try ... except ... end; finally ... end; ... end;
|
Fehlerbehandlung mit einem Block für Abschlussarbeiten
|
Threadprogrammierung
Java |
Pascal |
Kommentare
|
synchronized
|
Synchronize(@...)
|
Dient der Synchronisation mit dem Hauptthread.
|
volatile
|
|
Variablen, die dem Datenaustasch mit anderen Threads dienen, werden in Java mit volatile deklariert.
In Free Pascal sind alle global definierten Variablen volatile.
|
Aufruf von Fremdfunktionen (z. B. aus Dll's)
Java |
Pascal |
Kommentare
|
native
|
StdCall
|
Pascal / FPC Standardaufrufkonvention
|
native
|
CDecl
|
C Standardaufrufkonvention
|
--Olaf 14:28, 24 March 2013 (UTC)