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 [2021/01/04 22:42] – Martin Pabst | unterschiede_zu_java:start [2023/03/22 10:10] (aktuell) – Martin Pabst | ||
---|---|---|---|
Zeile 16: | Zeile 16: | ||
} | } | ||
</ | </ | ||
- | + | In LearnJ | |
- | In LearnJ | + | |
< | < | ||
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, | ||
+ | |||
+ | class MyRectangle extends Rectangle { | ||
+ | } | ||
+ | </ | ||
- | === 4. Standard Library === | + | === 5. Standard Library === |
- | Es war nicht möglich, die umfangreiche Standard Library von Java komplett abzubilden. | + | 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) { | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
</ | </ | ||
</ | </ | ||
- | |||
</ | </ | ||
| | ||
Zeile 108: | 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 ==== |
unterschiede_zu_java/start.1609796560.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)