====== Java ====== Wir haben zu Java gewechselt. Wir hatten hauptsächlich zwei Gründe dafür: - Kosten. Mehrere Hundert Euro pro Computerraum für eine aktuelle Version sind für eine Schule nicht tragbar. - Platformunabhängikeit. Die Möglichkeit der freien Wahl des genutzten Betriebssystems ist mir persönlich besonders wichtig. Nun aber zu den Tipps, Tricks und Anleitungen zu Java: * [[NetBeans]] installieren und erste Schritte * [[Einstieg]] * [[arrays]] / Reihungen * [[Richtlinien für guten Code]] * [[Datentypen]] * [[Strings]] - OK, sie gehören auch zu den Datentypen, haben aber trotzdem einen eigenen Abschnitt verdient. * [[Schleifen]] * [[Zeichnen]] * [[Rekursion]] * [[Modularisierung]] * [[Objektorientierte Programmierung]] - alt und nicht wirklich schön... * [[Befehle]] * [[Beispiele]] Mehr zur objektorientierten Programmierung: * [[OOP - Objekte verwenden]] * [[OOP - eigene Klassen]] * [[OOP - Konstruktoren]] ===== ...mehr ===== * [[LinkedList]] ===== Allgemeines zu Java ===== Java-Programme laufen nicht einfach so. Bei //normalen// Programmen doppelklickt man drauf und schon geht's los. Für Java muss man zunächst eine Laufzeitumgebung installieren. Aber nur eine für alle Java-Programme. Warum eigentlich? Früher waren die Betriebssystem nur mit sehr geringem Funktionsumfang ausgestattet. Dies hatte zur Folge, dass jeder Programmierer selbst für die Unterstützung //sämtlicher möglicher// Hardware sorgen musste. Das war natürlich sehr umfangreich, sehr fehlträchtig, sehr überhaupt. Die Software musste also direkt mit der Hardware in Kontakt treten: ^ Software ^ ^ Hardware ^ Heutige Betriebssysteme lösen das sehr elegant. Sie bilden gewissermaßen eine Schicht zwischen Hardware und Software: | Software | ^ Betriebssystem ^ | Hardware | So hat das Programm keine Ahnung von welcher Hardware es ausgehen muss. Das Betriebssystem teilt lediglich mit, dass es eine Grafikkarte, eine Festplatte, einen Drucker usw. gibt. Die Programme müssen dann lediglich noch betriebssystemspezifisch mitteilen, dass etwas gezeichnet, gespeichert, gedruckt usw. werden soll. Der Haken daran ist lediglich das Wort //betriebssystemspezifisch//. Auch diesen Haken hat man gelöst. Die sogenannte Laufzeitumgebung (java runtime environment - JRE) von Java bildet eine Schicht zwischen Betriebssystem und Programm: ^ Java Software | | ^ Java Laufzeitumgebung | Software | | Betriebssystem || | Hardware || Die JRE ist speziell an das Betriebssystem angepasst, stellt aber den Java Programmen eine einheitliche Schnittstelle zu Verfügung. Dies hat den Vorteil, dass lediglich die JRE für jedes Betriebssystem erstellt werden muss. Es gibt also für verschiedene Betriebssysteme jeweils eine eigene Laufzeitumgebung. Auf dieser Laufzeitumgebung laufen dann alle Java-Programme - //unabhänig// vom Betriebssystem! Sonstige Software läuft nach wie vor auf der gleichen Ebene wie die JRE. Vorteil dieses Prinzips ist natürlich die platformunabhängige Programmierung. Nachteil besteht ebenso natürlich sofort in der Geschwindigkeit der Programme, da ja die JRE immer zur Hardware vermitteln muss. Da jedoch selten zeitkritische Applikationen zu schreiben sind, ist dies kaum ein Gegenargument zu Java.