unterschiede_zu_java:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
unterschiede_zu_java:start [2020/06/29 09:08] – [LearnJ: Sprachumfang/Features] Martin Pabst | unterschiede_zu_java:start [2023/03/22 10:10] (aktuell) – Martin Pabst | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== LernJ vs. Java: Unterschiede ====== | ====== LernJ vs. Java: Unterschiede ====== | ||
Die Programmiersprache auf dieser Website ist eine Teilmenge von Java, die in folgenden kleinen Bereichen etwas vereinfacht wurde: | Die Programmiersprache auf dieser Website ist eine Teilmenge von Java, die in folgenden kleinen Bereichen etwas vereinfacht wurde: | ||
- | == 1. System.out.print -> print == | + | === 1. System.out.print -> print === |
Statt '' | Statt '' | ||
- | == 2. Hauptprogramm == | + | === 2. Hauptprogramm |
In Java befindet sich das " | In Java befindet sich das " | ||
<code java> | <code java> | ||
Zeile 16: | Zeile 16: | ||
} | } | ||
</ | </ | ||
- | + | In LearnJ | |
- | In LearnJ | + | |
< | < | ||
Zeile 30: | Zeile 29: | ||
</ | </ | ||
| | ||
- | == 3. Vergleich zweier String-Werte == | + | === 3. Vergleich zweier String-Werte |
In Java bewirkt der Vergleichsoperator '' | In Java bewirkt der Vergleichsoperator '' | ||
<code java> | <code java> | ||
Zeile 47: | Zeile 46: | ||
Die Programmiersprache dieser Website unterscheidet sich von Java dahingehend, | Die Programmiersprache dieser Website unterscheidet sich von Java dahingehend, | ||
+ | === 4. Keine Pflicht zur Erstellung eines Konstruktors === | ||
+ | Erbt eine Klasse von einer anderen Klasse, die keinen parameterlosen Konstruktor besitzt, so muss sie gemäß Java Specification einen eigenen Konstruktor haben. In der Online-IDE gibt es diese Pflicht nicht, so dass folgendes geht: | ||
+ | <code java> | ||
+ | new MyRectangle(10, | ||
- | == 4. Standard Library == | + | class MyRectangle extends Rectangle { |
- | Es war nicht möglich, die umfangreiche Standard Library von Java komplett abzubilden. | + | } |
+ | </ | ||
+ | |||
+ | === 5. Standard Library | ||
+ | Derzeit sind Nachbildungen folgender Klassen | ||
* die Klasse '' | * die Klasse '' | ||
* die Klasse '' | * die Klasse '' | ||
* eine vereinfachte Version der Klasse '' | * eine vereinfachte Version der Klasse '' | ||
+ | * eine vereinfachte Version der Klasse '' | ||
+ | * die Klasse '' | ||
* ein großer Teil des **Collection-Frameworks** von Java, insbesondere die Klassen und Interfaces | * ein großer Teil des **Collection-Frameworks** von Java, insbesondere die Klassen und Interfaces | ||
- | * '' | + | * '' |
* '' | * '' | ||
* '' | * '' | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
+ | * die Klassen '' | ||
- | LearnJ besitzt | + | LearnJ besitzt |
+ | * die Klasse '' | ||
+ | * die Klasse '' | ||
+ | * die Klasse '' | ||
+ | * die Klasse '' | ||
+ | * die Klassen '' | ||
+ | * sowie eine eingebaute | ||
+ | **Links:** | ||
+ | * [[https:// | ||
+ | * [[api: | ||
+ | * [[api: | ||
+ | * [[api: | ||
+ | |||
+ | == Hier ein einfaches Beispiel zur Verwendung der Grafikklassen == | ||
< | < | ||
+ | <div class=" | ||
+ | <script type=" | ||
+ | new Feuerwerk(); | ||
- | < | + | class Feuerwerk extends Actor { |
+ | |||
+ | | ||
+ | if(Math.random() < 0.03) { | ||
+ | |||
+ | int funkenzahl | ||
+ | int farbe = Math.floor(Math.random() * 0xffffff); | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | new Funke(x, y, farbe, lebensdauer); | ||
+ | } | ||
+ | | ||
- | <script type=" | + | } |
- | new World(800, 600); | + | } |
- | Rectangle r = new Rectangle(10, 100, 300, 100); | + | |
- | r.setFillColor(Color.green); | + | } |
- | r.setBorderColor(Color.darkred); | + | |
- | r.rotate(30); | + | class Funke extends Circle { |
- | Circle c = new Circle(200, 200, 50); | + | |
- | c.setAlpha(0.8); | + | |
- | Sprite s = new Sprite(400, 300, SpriteLibrary.Ship_1); | + | |
- | s.scale(0.3); | + | |
+ | Funke(double x, double y, int farbe, double lebensdauer) { | ||
+ | super(x, y, 4); | ||
+ | | ||
+ | | ||
+ | vx = v * Math.cos(winkel); | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | | ||
+ | lebensdauer--; | ||
+ | move(vx, vy); | ||
+ | vy = vy + 0.2; | ||
+ | if(lebensdauer < 30) { | ||
+ | | ||
+ | } | ||
+ | if(isOutsideView() || lebensdauer < 0) { | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
</ | </ | ||
</ | </ | ||
- | |||
</ | </ | ||
+ | | ||
====== LearnJ: Sprachumfang/ | ====== LearnJ: Sprachumfang/ | ||
Hier eine grobe Übersicht über den vorhandenen Sprachumfang von LearnJ und die Features der Online-Entwicklungsumgebung: | Hier eine grobe Übersicht über den vorhandenen Sprachumfang von LearnJ und die Features der Online-Entwicklungsumgebung: | ||
- | == Klassen == | + | ==== Klassen |
* '' | * '' | ||
- | * '' | + | * '' |
* abstrakte Klassen | * abstrakte Klassen | ||
* '' | * '' | ||
Zeile 94: | Zeile 157: | ||
* casten (implizit und explizit) | * casten (implizit und explizit) | ||
- | === Strukturanweisungen === | + | ==== Strukturanweisungen |
* '' | * '' | ||
* Vereinfachte '' | * Vereinfachte '' | ||
Zeile 100: | Zeile 163: | ||
* '' | * '' | ||
- | === Datentypen === | + | ==== Datentypen |
* primitive Datentypen '' | * primitive Datentypen '' | ||
* Sonderrolle von '' | * Sonderrolle von '' | ||
Zeile 107: | Zeile 170: | ||
* lokale Variablen und Parameter können als '' | * lokale Variablen und Parameter können als '' | ||
* Generics, z.B. '' | * Generics, z.B. '' | ||
- | * Variablendeklaration mit '' | + | * Das Schlüsselwort |
+ | * Instanzierung von Generics ohne Angabe der Typen in '<>', | ||
+ | * Wrapper-Klassen '' | ||
- | === Operatoren === | + | ==== Operatoren |
* '' | * '' | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
- | === Editor === | + | ==== Editor |
* Verwendet wird der Monaco-Editor von Visual Studio Code. Viele [[https:// | * Verwendet wird der Monaco-Editor von Visual Studio Code. Viele [[https:// | ||
* Syntax-Highlighting | * Syntax-Highlighting | ||
Zeile 126: | Zeile 191: | ||
* Show References (Shift + F12) | * Show References (Shift + F12) | ||
- | === Debugger === | + | ==== Debugger |
* Zeigt alle Variablen im aktuellen Scope | * Zeigt alle Variablen im aktuellen Scope | ||
* Auswertung von Termen (watch) | * Auswertung von Termen (watch) | ||
Zeile 134: | Zeile 199: | ||
* Breakpoints | * Breakpoints | ||
- | === Console === | + | ==== Console |
* Code completion (mit Strg + Leertaste) | * Code completion (mit Strg + Leertaste) | ||
* Parameter hints (mit Strg + Shift + Leertaste) | * Parameter hints (mit Strg + Shift + Leertaste) |
unterschiede_zu_java/start.txt · Zuletzt geändert: 2023/03/22 10:10 von Martin Pabst