e2:alleranfangistschwer

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
e2:alleranfangistschwer [2017/07/11 14:36] admin03e2:alleranfangistschwer [2017/07/11 15:00] (aktuell) admin03
Zeile 1: Zeile 1:
-====Installation von Java====+=====Installation von Java=====
  
 Man lädt zunächst eine Installationsdatei herunter, führt diese ein Mal aus und löscht sie dann wieder. Danach kann ist Java und auf dem Rechner allgemein verfügbar.  Man lädt zunächst eine Installationsdatei herunter, führt diese ein Mal aus und löscht sie dann wieder. Danach kann ist Java und auf dem Rechner allgemein verfügbar. 
 ==== Schritt für Schritt ==== ==== Schritt für Schritt ====
- - Gehe zur [[http://java.sun.com/javase/downloads/index.jsp| Download-Seite]] von Oracle und lade den aktuellen JDK herunter. Akzeptiere hierzu die Lizenz-Bedingungen.  + - Gehe zur [[http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html| Download-Seite]] von Oracle und lade den aktuellen JDK herunter. Akzeptiere hierzu die Lizenz-Bedingungen. Speichere die Datei z.B. auf dem Desktop. 
- +  - Führe die Datei als Administrator aus. Damit wird Java installiert.  
-Damit bekommst du nämlich alles in einer großen Datei. Lege die Datei ruhig auf dem Desktop ab, du wirst sie eh bald wieder wegschmeißen! +  - Merke dir wohin dein JAVA installiert wird. Stift und Papier sind hier hilfreich
-  - Führe die Datei als Administrator aus. Damit wird Java installiert. Wenn die Stelle kommt, wo du den Installationspfad angeben kannst, ändere ihn zu etwas einfachem, also z.B. c:\programme\java\jdk für den JDK und c:\programme\java\jre für die JRE. Beides wird nämlich installiert. Frage nicht, was es ist, das ist schon gut so+  - Gehe nun zu [[http://www.oracle.com/technetwork/java/javase/documentation/jdk8-doc-downloads-2133158.html|JavaDoc]] 
-  - Surfe [[mathe:ueben:einmaleins|hierher]], um zu sehen, ob der Browser jetzt Java kann. Wenn da ein 1x1-Trainer erscheint, funktioniert Java und ist auf dem Rechner installiert+  - Öffne diese komprimierte zip Datei mit deinem Explorer und kopiere das Verzeichnis ''doc'' in dein JAVA-JDK VerzeichnisBei mir ist das ''C:\Program Files\Java\jdk1.8.0_91'' das muss aber je nach Windows Version nicht so sein, deshalb sollst du dir ja das Installationsverzeichnis merken
-  - Lösche die Installationsdatei vom Desktop. Sie wird nicht mehr gebrauchtWenn du Freunde hast, die an unzugänglichen Stellen des Landes leben (also ohne DSL), dann wirf die Datei nicht weg, sondern gib sie ihnen auf einem Memory-Stick! +  - Bitte installiere als letztes den [[http://javaeditor.org/doku.php?id=en:download|Java-Editor]] 
- +  - Lösche die Installationsdateien vom Desktop. Sie wird nicht mehr gebrauchtWenn du Freunde hastdie an unzugänglichen Stellen des Landes leben (also ohne DSL), dann wirf die Datei nicht wegsondern gib sie ihnen auf einem USB-Stick!
-====Programmieren in Java==== +
-Programmieren lernt man durch programmieren, aber erst, wenn man einmal genau verstanden hat, was alles passiert. Man muss wissen +
-  * wie die Datei heißt, die man gerade bearbeitet, +
-  * wo die Datei ist, +
-  * wie man den Compiler aufruft, der aus der Datei ein ausführbares Programm macht +
-  * und wie man das ausführbare Programm ausführt. +
- +
-Am Anfang sollte man keine komplizierten Hilfsmittel verwenden, weil die das Verständnis verschleiern. Also lieber kein Eclipse, NetBeans o.ä. sondern einfach alles aus der DOS-Box heraus! Aber die muss man auch erst mal haben. +
- +
-Öffne also eine Eingabeaufforderung (Windows) oder Konsole (Linux). Normalerweise ist der aktuelle Aufenthaltsort dann das Home-Verzeichnis des aktuellen Users. Die folgenden Schritte gelten für Windows-User. Wer dazu nicht gehört, weiß wahrscheinlich eh schon, wie man einen Computer bedient. +
- +
-  - Gehe in das Verzeichnis, wo du dein Programm am Ende haben willst. Tippe also z.B. <code>cd Desktop</code> wenn es dich nicht stört, dass alles auf dem Schreibtisch rumliegt. Wenn deine Dateien auf den Memory-Stick (mit Laufwerksbuchstabe ''M'') ins Verzeichnis ''javaprogramme'' sollen, kannst du tippen <code> +
-m: +
-cd javaprogramme +
-</code> +
-  - Um zu sehen, welche Dateien schon da sind, tippe <code> +
-dir +
-</code> +
-  - Starte nun den Editor deiner Wahl, z.B. GVim und gib gleich den Namen der Datei an, die du erzeugen willst. Die Datei wird sich am Ende genau in diesem Verzeichnis hier befinden, von wo du den Editor gestartet hast.<code> +
-gvim Test.java +
-</code>Beachte, dass hier ausnahmsweise ein Großbuchstabe im Namen erwünscht ist. +
-  Schreibe nun das Programm und vergiss nicht, es auch abzuspeichernMit Vim macht man das durch Esc : w \\ Das Programm könnte folgenden Inhalt haben:<code:java> +
-public class Test{ +
-  public static void main(String[args){ +
-    System.out.println("Hallo "+args[0]); +
-  +
-+
-</code> +
- +
-====Kompilieren und Ausführen==== +
-Will man aus dem vom Menschen lesbaren Programmtext ''Test.java'' ein ausführbares Programm machen, so muss man den Text dem Compiler ''javac'' geben. Der erzeugt daraus die Datei ''Test.class'', falls keine Fehler gemacht wurden. Danach sieht man am besten gleich nach, ob die ''class''-Datei auch wirklich da ist. +
-<code> +
-c:\programme\java\jdk\bin\javac Test.java +
-dir +
-</code> +
-Beachte, dass man dem Rechner sagen muss, wo ''javac'' ist, weil er es alleine nicht findet. Deshalb ist es bei der Installation so wichtig, einen Pfad anzugeben, an den man sich später noch erinnern kann. +
- +
-Nun wollen wir das Programm noch ausführen. Das tut der Befehl ''java'', der auf dem gleichen Pfad wie ''javac'' liegt, also<code> +
-c:\programme\java\jdk\bin\java Test Susi +
-</code> +
- +
-Während der weiteren Entwicklung eines Programms muss man all diese Schritte mehrfach ausführenGlücklicherweise braucht man dafür jetzt auch in der DOS-Box nur noch die Pfeil-Tasten drücken, um die vorher mühsam getippten Befehle wieder zu bekommen. +
- +
-====Seltsames Verhalten==== +
-Vereinzelt höre ich von Schülern, dass Sie alles so gemacht haben, wie hier beschrieben, dass aber Java die fertig kompilierten ''.class''-Dateien nicht findet. Im Arbeitsverzeichnis befinden sich dann z.B. die Dateien ''Test.java'' und ''Test.class'', aber der Befehl +
-<code> +
-c:\programme\java\jdk\bin\java Test Susi +
-</code> +
-führt zu einem ''NoClassDefFoundError''+
- +
-In diesem Fall ist bei der Installation von Java eine Kleinigkeit schief gegangen und der ''java''-Befehl sucht nicht automatisch im aktuellen Verzeichnis nach der ''.class''-Datei. Es soll jetzt nicht besprochen werden, was da schief gelaufen ist. Ein einfacher Ausweg ist aber, dass man beim Aufruf von ''java'' ausdrücklich angibt, dass ''java'' im aktuellen Verzeichnis nach Klassen suchen soll. Das geht dann so+
-<code> +
-c:\programme\java\jdk\bin\java -cp . Test Susi +
-</code> +
-Der Punkt steht für das aktuelle Verzeichnis. +
- +
- +
- +
- +
- +
- +
- +
- +
-=====Aus- und Eingabe===== +
-Die ersten Programme haben keine schöne Oberfläche; sie laufen einfach im +
-Textmodus. Trotzdem müssen sie nicht dumm oder langweilig +
-sein! Schon im Textmodus kann man Daten eingebenverarbeiten und +
-Ergebnisse ausgeben, und das ist der Kern eines jeden Programms. +
- +
-Die Ausgabe ist überhaupt kein Problem, es gibt ja die Befehle +
-<code:java> +
-  System.out.print("Hallo ihr "); +
-  System.out.println(""+(1+1)+" Turteltäubchen!"); +
-</code> +
-''print'' schreibt etwas hin und belässt den Cursor hinter dem letzten +
-geschriebenen Zeichen. Die nächste Ausgabe wird also nahtlos dahinter angefügt. +
- +
-''println'' schreibt ebenfalls etwas hin, geht abschließend aber an den Anfang +
-der nächsten Zeile. Die obigen beiden Befehle schreiben also +
-<code>Hallo ihr 2 Turteltäubchen!</code> +
-auf den Bildschirm und fangen dann eine neue Zeile an. Der nächste +
-Schreibbefehl würde also unter dem ''H'' anfangen. +
- +
-Eingabe gibt es in zwei Formen. Wenn der Benutzer vor dem Start des +
-Programms schon weiß, wie viele und welche Daten er eingeben will, +
-so kann er diese Daten direkt nach dem Programmnamen beim Start des +
-Programms angeben. Im Programm hat er Zugriff auf diese Daten über +
-das Array ''args'' (siehe im Beispiel weiter oben.+
- +
-Die zweite Form der Eingabe verwendet man, wenn man die Daten erst eingeben +
-will, sobald das Programm schon läuft. Man braucht dazu einen ''Scanner'', der +
-die Systemeingabe einfängt. Die erste Zeile des folgenden Beispiels +
-schreibt man einmal am Anfang des Programms. Ab dann kann man die +
-Tastatureingabe beliebig oft ansprechen mit z.B. ''tastatur.nextInt()'' +
-<code:java> +
-  java.util.Scanner tastatur=new java.util.Scanner(System.in); +
-  System.out.print("Wie viele seid ihr? "); +
-  int anz=tastatur.nextInt(); +
-  System.out.println("Hallo ihr "+anz+" Turteltäubchen!"); +
-</code> +
-Außer ''nextInt()'' für ganze Zahlen gibt es noch ''nextDouble()'' für +
-Kommazahlen oder ''next()'' für irgendeine Buchstabenfolge. +
-Mit ''hasNext()'' kann man testen, ob noch etwas kommt. +
- +
-=====Die Java-Dokumentation===== +
-In Java gibt es eine große Menge von vorgefertigten Programmpaketen, die man als brauchbare Teile von eigenen Projekten verwenden kann. Diese Pakete befinden sich nach der Installation auf dem Rechner (gepackt in .jar-Dateien). Was es gibt und wie man es verwendet, muss man aber erst einmal wissen. +
- +
-Wie gelangt man zu diesem Wissen? Das ist ein langsamer Prozess, bei dem man anderen Programmierern zusieht und sich mit ihnen austauscht. Der grundsätzliche Zugang ist aber immer die mitgelieferte Dokumentation. Diese besteht aus tausenden .html-Dateien, die mit einem Browser gelesen und durchsucht werden können. +
- +
-====Wo ist sie?==== +
-Die Dokumentation sollte man sich auf seinen Rechner holen, damit man sie immer zur Verfügung hat. Man bekommt sie als große .zip-Datei, die man an eine beliebige Stelle auspackt, sagen wir ins Verzeichnis ''.../java/docs/''. Eine der Dateien heißt dann ''docs/api/index.html'' und ist der Startpunkt der ganzen Dokumentation. Auf diese Datei sollte man im Browser ein Lesezeichen setzen. +
- +
-Die große .zip-Datei gibt es für jede Java-Version an der gleichen Stelle, wie schon die ganze Java-Installation (siehe obige Beschreibung der Java-Installation). Wenn man einen schnellen Netzzugang hat, kann man die Dokumentation aber auch im Internet finden. Für Java 1.6 ist sie bei [[http://docs.oracle.com/javase/7/docs/api/]]. +
- +
- +
- +
- +
-====Wie wird sie benutzt?==== +
-Die Dokumentation wird mit einem Browser gelesen. Sie wird dargestellt als eine Seite mit drei FramesDer rechtegroße Frame zeigt dabei den Inhalt an, der im linken unteren Frame ausgewählt wurde. Was der linke untere Frame zur Auswahl anbietet, kann im linken oberen Frame nochmals eingeschränkt werden, weil die Menge so riesig ist. Lassen Sie im linken oberen Frame aber die erste Zeit die Wahl auf //All Classes//, dann entgeht Ihnen nichts. +
- +
-Als Beispiel wollen wir mit Hilfe des Kosinus-Satzes die dritte Seitenlänge eines Dreiecks ausrechnen, von dem zwei Seiten und der eingeschlossene Winkel gegeben sind. +
- +
-<code java> +
-public class Seite{ +
-  public static void main(String[] args)+
-    double a=Double.parseDouble(args[0]); +
-    double b=Double.parseDouble(args[1]); +
-    double gamma=Double.parseDouble(args[2])*Math.PI/180; +
-    double c=a*a+b*b-2*a*b*Math.cos(gamma); +
-    c=Math.sqrt(c); +
-    System.out.println("c="+c); +
-  } +
-+
-</code> +
- +
-Das Programm wird mit drei String-Argumenten aufgerufenz.B. +
-  java Seite 2.4 3.2 72 +
-mit dem Ergebnis +
-  c=3.35462352083 +
- +
-In diesem Programm werden zwei Java-Klassen verwendet ''Math'' und ''Double''. Wenn man sich die in der Dokumentation anschauterfährt man schnell, dass ''parseDouble'' aus einem String eine Kommazahl macht, dass ''Math.PI'' der Wert von π ist und dass ''Math.cos'' den Kosinus eines Winkels im Bogenmaß ausrechnet. Außerdem bekommt man mit ''Math.sqrt'' die Wurzel berechet. (Die Zeile ''double c=...'' berechnet ja erst einmal nicht c sondern c<sup>2</sup>, was übrigens kein schöner Stil ist.)+
  
  
Zeile 161: Zeile 20:
   * Ich achte **immer** strengstens auf korrekte Einrückung. Da ich meinen Editor gut beherrsche, fällt mir das nicht schwer. **Beherrsche deinen Editor!**   * Ich achte **immer** strengstens auf korrekte Einrückung. Da ich meinen Editor gut beherrsche, fällt mir das nicht schwer. **Beherrsche deinen Editor!**
   * Alles was ich schreibe, muss spätestens wenige Minuten nach dem aktuellen Schreibvorgang schon wieder kompilierbar sein.   * Alles was ich schreibe, muss spätestens wenige Minuten nach dem aktuellen Schreibvorgang schon wieder kompilierbar sein.
-  * Die ''main''-Methode ist das erste, was ich schreibe. Sie erzeugt Hilfsobjekte, mit denen ich die anderen Methoden teste. Ganz am Schluss wird die ''main'' entfernt. Sie gehört normalerweise nicht in eine Klassendatei. Nur in einem Hauptprogramm **ganz** am Schluss eines Projektes braucht man sie wirklich, bei der Entwicklung aber nur zwischendurch. +  * Ich versuche, zu jeder Zeit möglichst wenige Methoden (idealerweise nur eine einzige) zu bearbeiten und parallel aus der ''main'' heraus zu testen. 
-  * Ich versuche, zu jeder Zeit möglichst wenige Methoden (idealerweise nur eine einzige) zu bearbeiten und parallel aus der ''main'' heraus zu testen. (In der 11. Klasse bin ich die meiste Zeit sowieso nur in der ''main''.)+
   * Während der Testphase sind Schweinereien erlaubt. Am Ende müssen die aber raus aus der Klasse. ''System.out.println'' ist normalerweise eine Schweinerei, die höchstens in einer ''static''-Methode eine Existenzberechtigung hat.   * Während der Testphase sind Schweinereien erlaubt. Am Ende müssen die aber raus aus der Klasse. ''System.out.println'' ist normalerweise eine Schweinerei, die höchstens in einer ''static''-Methode eine Existenzberechtigung hat.
  
  • /var/www/infowiki/data/attic/e2/alleranfangistschwer.1499783809.txt.gz
  • Zuletzt geändert: 2017/07/11 14:36
  • von admin03