Está en la página 1de 2

Java Schnellstart // Asimov.

java Pakete importieren


class Asimov {
public String promises(String name) { Java-Software wird in Paketen organisiert. Diese enthalten
Um schnell mit dem Roboter anzufangen, eignet sich das
return Klassen und Objekte mit deren Methoden man Probleme
freie leJOS Betriebssystem für den NXT. Wer noch nicht mit
name+" will not injure a human being\n"+ lösen kann. Standardmäßig ist das Paket java.lang
Java vorher gearbeitet hat, dem sei hier ein schneller und
name+" will obey any orders by human\n"+ importiert, in dem sich fundamentale Datentypen, Objekte
kurzer Einblick in die Sprache gegeben um ohne große
name+" will protect its own existence"; zur Fehlerbehandlung und zur Arbeit mit
Verzögerung nach dem Einrichten des Systems, die ersten
} Strings(StringBuilder) und mathematischen
kleinen Programme auszuprobieren.
Es wird angenommen, dass eine Java-Entwicklungs- Funktionen(Math) befinden. Ebenso ist die bereits
public static void main(String[] args) { bekannte System-Klasse enthalten.
umgebung bereits eingerichtet wurde. Ansonsten finden
Asimov isaac = new Asimov();
sich diesbezüglich noch hilfreiche Links am Ende dieser
System.out.println(
Seite. // Asimov.java
isaac.promises("Isaac"));
Java verhält sich nicht exakt wie C, aber es können einige import lejos.nxt.*;
}
Konzepte, die in AuD gelernt wurden, übernommen class Asimov {
}
werden. Dazu werden hier verschiedene public void playStuff() {
Beispielprogramme gezeigt und erklärt, die die meisten Sound.beepSequenceUp();
Konzepte enthalten, die notwendig sind für die ersten paar Ein Methodendeklaration public String Sound.buzz();
Bewegungen des Roboters. promises(String name) { … } besteht aus folgenden Sound.beepSequence();
Teilen: }
Hello World!
public damit die Methode von überall her public static void main(String[] args) {
Im Hello World! Programm erkennt man, was alles
aufrufbar ist Asimov isaac = new Asimov();
notwendig ist, um überhaupt eine Zeile Code ausführen zu
Sound.setVolume(20);
können. Es muss eine Klasse deklariert werden, die den String Rückgabetyp, Zeichenkette isaac.playStuff();
selben Namen trägt, wie die .java-Datei, in der sie
promises Name der Methode Sound.setVolume(100);
steckt(Zeile 2). Was Klassen sind, ist erstmal nicht wichtig.
isaac.playStuff();
Zeile 3 zeigt die Deklaration der statischen main-Methode, (String name) Liste der Parameter, ein String }
die als Anfang vom Programm gilt. Blöcke von Code
}
werden wie in C mit geschweiften Klammern umrahmt. { … } Code der beim Aufruf ausgeführt wird,
// Asimov.java sieht die Argumente(name) und muss
class Asimov { einen String zurück geben(return) Mit import lejos.nxt.* werden alle Klassen aus dem
public static void main(String[] args) { Paket lejos.nxt importiert. Würde man lejos.nxt.* nicht
Methoden sind Objekten zugeordnet und Objekte werden
System.out.println("Hello World!"); importieren, könnte man die darin enthaltene Klasse Sound
aus Klassen erstellt, die s.g. Instanzierung. Mit dem new-
} nicht benutzen. Sound besitzt u.a. die statischen Methoden
Operator wird ein neues Objekt aus einer Klasse
} beep*, buzz und setVolume. Da diese Methoden mit dem
instanziert. Dabei hat man die Möglichkeit noch einige
Modifikator static statisch gemacht wurden, muss man
Argumente anzugeben. new Asimov() erstellt ein neues
Sound nicht erst instanzieren, so wie wir es mit new
Sinn und Zweck von void main(String[] args) kann Objekt von der Klasse/vom Typ Asimov ohne weitere
Asimov() machen.
man sich mit ein wenig C Wissen herleiten. Eine Funktion Argumente. Dieses Objekt wird in der Variablen isaac vom
mit dem Namen main, ohne Rückgabewert(void) und mit Typ Asimov gespeichert.
einem Parameter args vom Typ String-Array. Weiterführende Informationen
Die Methode promises kann dann auf dem Objekt isaac
aufgerufen werden. Dem Parameter String name http://www.eclipse.org/
Methodenaufruf übergeben wir die Zeichenkette "Isaac". Der

– http://lejos.sourceforge.net/nxj.php
Rückgabewert wiederum ist Argument für die Methode – http://java.sun.com/docs/books/tutorial/getStarted
Methodenaufrufe verfolgen einen ähnlichen Zweck wie
println auf dem Objekt out, die letztendlich die /application/index.html
Funktionsaufrufe in C. Sie dienen der Mehrfach-
Zeichenkette ausgibt. Besonders daran ist noch, dass out – http://lejos.sourceforge.net/nxt/nxj/api/index.html
verwendung von Code.
sich in einem anderen Namensraum/Namespace aufhält, – http://java.sun.com/docs/books/tutorial/java/nutsa
nämlich im System-Namespace. ndbolts/index.html
Variablendefinitionen switch (direction) {
case 0:
moveLeft();
int x;
break;
int y = 42; // Ganzzahlen
case 1:
float z = 2.3; // Gleitkommazahlen
moveForward();
String name = "Asimov"; // Text
break;
TouchSensor ts = new TouchSensor(SensorPort.S1);
case 2:
// ein neues Objekt, das einen
moveRight();
// Drucksensor auf Port 1 repräsentiert
break;
Motor leftMotor = Motor.A;
case 3:
stop();
class Asimov {
break;

}
// objektweite Variablendefinition
Motor leftMotor; Schleifen
int x = 42;
… while (!Button.ENTER.isPressed()) {
void foo() { stayingAlive();
… }
int i, x = 23; // lokale Variablendefinition
x == 42 // Falsch, x ist 23 int i = 0;
this.x == 42 // Richtig, this.x do {
// meint ein nicht lokales x Sound.beep();
… i++;
} } while(i < 10);
}
Operatoren for (int j = 0; j < 5; j++) {
Sound.twoBeeps();
}
int x = 2 + 3 - 4 * 5 / 6 % 7; // 2
float y = 2.2 + 3.3 - 4.4 * 5.5; // -18.70… Anlaufpunkte bei Fragen
String forename = "Isaac";
String surname = "Asimov"; Deine Teammitglieder!
String name = forename + surname; Die API Dokumentation von leJOS
// "Isaac Asimov" http://lejos.sourceforge.net/nxt/nxj/api/index.html
float distance = Math.sqrt(x*x + y*y); // 18.80… Das dazugehörige Tutorial und der enthaltene Beispielcode
boolean near = distance <= 20; // true http://lejos.sourceforge.net/nxt/nxj/tutorial/index.htm
boolean far = !near; // false Die allgemeine Java Hilfe
boolean panic = near && far; // false http://java.sun.com/docs/books/tutorial/java/TOC.html
boolean dontcare= near || far; // true Deine liebste Suchmaschine
Verzweigungen und Fallunterscheidungen http://www.scroogle.org/cgi-bin/scraper.htm
Und natürlich: dein Tutor! ;-)
if (light_value >= 75) { leJOS kompilieren auf der Kommandozeile
moveFaster();
else { $ nxjc Asimov.java *.java
moveSlower(); $ nxjlink Asimov -o Asimov.nxj
} $ nxjupload Asimov.nxj
if (ultrasonic_distance < 50) {
pilot.stop();
}

También podría gustarte