Ein Lehrgang zur Einführung in die Programmiersprache Java. [] (Java programmieren Java lernen Java Tutorial Java Kurs Java Online-Kurs Java lernen online Java für Anfänger Die Programmiersprache Java-Anleitung Java-Lehrgang Java-Tutorial Lernkurs Dozent Berlin Einführung Seminar Schulung Programmierung online Tutor), Lehrgang, Seite 720873 http://www.purl.org/stefan_ram/pub/java_de (Permalink) ist die kanonische URI dieser Seite. Stefan Ram
Charakterisierung des Kurses und Hinweise zur Lektüre.
Teil 0 Erste Schritte
Dieser Lehrgang soll die von einer speziellen Entwicklungsumgebung oder einem speziellen Betriebssystem unabhängigen Eigenschaften der Programmiersprache Java behandeln.
Dieser Teil 0 behandelt die ersten Schritte, die bewältigt werden müssen, noch bevor die Bedeutung einzelner Programmteile behandelt werden kann. Dazu gehört die Erklärung ständig verwendeter Begriffe, die Vorgehensweise beim Eingeben und Starten eines Programmes (hierzu wird eine sogenannte „Entwicklungsumgebung“ verwendet) sowie die Verwendung von Leerzeichen und die Aufteilung eines Programms auf Zeilen.
Dabei werden aber einige Details der Bedienung der nötigen Programme ausgelassen, weil sie von der verwendeten Entwicklungsumgebung und dem verwendeten Betriebssystem abhängen und es für sie viele verschiedene Möglichkeiten gibt. Diese Details werden in einem Kurs vom Dozenten für die im Unterrichtsraum vorhandene Entwicklungsumgebung erklärt. Außerhalb eines Kurses muß der Leser sie anderen Quellen entnehmen (vor allem den Handbüchern des verwendeten Betriebssystems und der verwendeten Entwicklungsumgebung). Zur Handhabung der Java-Entwicklungsumgebung unter Windows findet sich ein Artikel im Anhang.
Der Lehrgang kann aber auch gelesen werden, wenn kein Entwicklungssystem zur Verfügung steht, nur kann der Leser Programme dann nicht selber übersetzen und ausführen lassen.
>722196 Erste Grundbegriffe der Programmierung [P]
Eine Übersetzungseinheit kann auf verschiedene Weise geschrieben werden. Die Wahl einer bestimmten Schreibweise wird auch als Formatierung bezeichnet. Dabei sind einerseits bestimmte Regeln zu beachten, andererseits hat man aber noch stilistische Freiheiten.
Einige der folgenden Lektionen behandeln, um für den Leser möglichst universell nützlich zu sein, allgemeine Aussagen über formale Sprachen oder über das Programmieren. Andere Lektionen machen dann konkrete Aussagen über die spezielle Programmiersprache Java. Daher darf man sich nicht wundern, wenn in der Lektion „Formatierungsregeln“ die Programmiersprache Java nicht erwähnt wird und man gelegentlich Sätze liest, die mit „In vielen formalen Sprachen ist es so, daß“ beginnen. Diese Sätze gelten in der Regel so auch für die Programmiersprache Java. Es folgt dann jeweils noch eine Lektion, in der die Besonderheiten des Themas in Hinblick auf die Programmiersprache Java erklärt werden.
>720785 Formatierungsregeln >721300 Formatierungsregeln in Java
Teil 1 Grundlagen
Teil 0 stellt allgemeine Grundkenntnisse zur Verfügung, die beispielsweise dazu befähigen, Javawie einen Taschenrechner zu benutzen. Behandelt werden Literale, Datentypen, Operatoren, Anwendungen (Aufrufe) und einfache Abläufe.
Dieser Teil1 dieses Kurses wird gerade überarbeitet. Dadurch kann es während der Überarbeitung in dem folgenden Bereich (bis zum Ende von Teil 1) passieren, daß einzelne Lektionen nicht genau zueinander passen (wenn eine schon überarbeitete Lektion auf eine noch nicht überarbeitete Lektion stößt).
>721110 Methoden mit mehreren Parametern in Java [Ü~]
>721258 Ja-Nein-Fragen * >721259 Ja-Nein-Fragen in Java [Ü~]
>721026 Explizite Datentyp-Umwandlungen * >720967 Explizite Datentyp-Umwandlungen in Java >720324 Überladung von Namen * >721171 Überladene Methodennamen in Java >722022 Klienten und Dienste
Operatoren
Von einer Programmiersprache erwartet man, daß sie zumindest einfache Berechnungen, wie man sie auch in der Grundschule erlernt, ermöglicht. Es ist naheliegend, recht früh zu erklären, wie solche Berechnungen mit einer Programmiersprache erledigt werden können. Daher führt dieser Teil in die Verwendung von Operatorausdrücken für Grundrechenarten und andere Abbildungen ein. Dabei wird der Aspekt des Wertes der verwendeten Operatorausdrücke behandelt. Es wird absichtlich nur eine Auswahl der wichtigsten Operatoren vorgestellt. Auch andere Aspekte von Operatorausdrücken, wie deren Wirkungen, werden in diesem Teil noch nicht behandelt.
>720461 Operatoren (Grundrechenarten) * >720587 Operatoren (Grundrechenarten) in Java [Ü] >721118 Typanpassung bei Operatoren * >720521 Typanpassung bei Operatoren in Java * >721054 Vergleichsoperatoren * >720968 Vergleichsoperatoren in Java [ü] >721565 Die Verneinung in Java >721288 Die ganzzahlige Division und der Rest * >721292 Die ganzzahlige Division und der Rest in Java >721061 Prioritäten >721065 Prioritäten in Java
Performative Aspekte von Auswertungen
performativ = eine Handlung vollziehend
Oft sollen in einer bestimmten zeitlichen Reihenfolge bestimmte Aktionen und Abläufe durchgeführt werden. Durch Anweisungen können Programme solche Abläufe steuern. Diese Art der Steuerung ist die klassische Bedeutung des Wortes „programmieren“, in dem Sinne, daß ein Programm den Ablauf von Vorgängen bestimmt.
Die Ermittlung des Wertes eines Ausdrucks findet im allgemeinen erst zur Laufzeit statt. Sie bedeutet zunächst das Finden einer Normaldarstellung, so daß dann etwa die Aussage »0==00« leicht bewertet werden kann. Mit einer Auswertung können auch durch den Quelltext bestimmte aber erst Laufzeit stattfindende Wirkungen verbunden sein.
>721358 Die leere Anweisung *~ >721357 Die leere Anweisung in Java >721359 Der Block *~ >720517 Der Block in Java
>721361 Messungen *~ >721362 Messungen in Java [Ü^] >721253 Mischhandlungen *~ >720334 Mischoperationen in Java [Ü^]
Teil 2—Deklarationen
Wer mit der Lektüre von Teil 1 beginnen möchte, sollte den folgenden Einstufungstest bestanden haben.
Eine wichtige Eigenschaft höherer Programmiersprachen, ist die Möglichkeit zur Deklaration von Bezeichnern für bestimmte Entitäten. In diesem Teil wird die Deklaration von statischen Methoden, Klassen, Paketen, Konstanten sowie von statischen und lokalen Variablen behandelt.
Namen
Bestimmten Entitäten (wie beispielsweise Anweisungen) können benannt werden. Der Name erleichtert dann ihre Verwendung, da eine benannte Entität an verschiedenen Stellen durch ihren Namen benutzt werden kann, ohne daß sie dazu kopiert oder umständlicher beschrieben werden muß. Außerdem kann ein gut gewählter Name den Sinn einer Entität klarstellen, und so kann die Gliederung von Quelltext in benannte Entitäten das Verständnis des Quelltextes erleichtern.
Nachdem die Syntax und Handhabung von Klassendeklarationen zuvor an Klassen mit ausschließlich statischen Einträgen erlernt wurden, soll jetzt die Verwendung von Exemplaren von Klassen, also von Objekten, behandelt werden.
Exemplare von Standardklassen
Die nächsten Lektionen eröffnen den Zugang zur Verwendung von Objekten in Java. Dabei werden zuerst einige grundlegende Begriffe behandelt. Zur Veranschaulichung und späteren Verwendung wird gleichzeitig die Benutzung von Objekten einiger Java-Standardklassen vorgestellt.
>721508 Exemplare einer Klasse in Java [(2009-04)]
Am 5. November 2009 wurden Probleme bei Zugriffsversuchen auf die folgende Lektion berichtet. Ich habe daraufhin eine Änderung vorgenommen, um den Zugriff zu ermöglichen. Ich bin aber nicht ganz sicher, ob alle Zugriffsversuche nun erfolgreich sein werden. Falls weiterhin Probleme auftreten, kann ich das auch von hier erkennen und werde dann weiter daran arbeitet, so daß es daher sinnvoll sein könnte, es dann morgen oder in den nächsten Tagen noch einmal zu versuchen.
Stillschweigende und ausdrückliche Verallgemeinerung und Spezialisierung bei der Initialisierung von Referenznamen (Referenzkonstanten), Referenznamen mit Schnittstellen-Typ
Der Exemplarerzeugungsausdruck, Das Schlüsselwort "new", Die Identität erzeugter Objekte, Argumente im Exemplarerzeugungsausdruck, Die Klasse "Integer", Hüllklassen, Wertsemantik und Referenzsemantik, Textverkettung mit dem Operator "+", [ü]
2008-11: Übungsfrage: Welcher der folgenden Ausdrücke ist erlaubt? ( Object )new String(), ( String )new String(), ( Object )new Object(), ( String )new Object()?
>720868 Veränderliche Objekte am Beispiel der Klasse "StringBuilder"
Veränderliche und unveränderliche Objekte, die Klasse "StringBuilder", die Operation "setCharAt( int position, char zeichen )", die Operation "deleteCharAt( int )", die Operation "insert( int, char )", [ü],
Veränderung einer Referenzvariablen im Vergleich zur Veränderung eines Objektes, Aliaseffekt, Referenzvariablen und Referenzen im Vergleich, Referenzargumente
In diesem Kapitel wird behandelt, wie nichtstatische Exemplarmethoden und nichtstatische Exemplarvariablen (Felder) deklariert werden.
Da es für viele Java-Interessierte motivierend ist, eine graphische Benutzeroberfläche programmieren zu können, werden nach der Behandlung der Grundlagen nichtstatischer Deklarationen zunächst die Themen behandelt, deren Verständnis die Swing-Programmierung vorbereitet, während andere Themen späteren Lektionen vorbehalten bleiben. Dieses Kapitel behandelt also zielgerichtet die für die Grundlagen der Swing-Programmierung benötigten Java-Grundkenntnisse.
>721598 Exemplare zu einer Klassendeklaration in Java
Stillschweigende Übernahme von Methoden der Klasse "Object"
>721599 Deklarationen von Methoden für Exemplare in Java
(2008-11: ÜA: Auflösung eines Aufrufs an Hand des Typs des Zielobjekts oder des Zielausdrucks?)
>721600 Deklarationen von Feldern für Exemplare in Java [Ü]
Grundlagen graphischer Benutzeroberflächen mit Swing
Einige Aspekte der Programmierung mit Java wurden bisher noch nicht vorgestellt. Aus der Sicht eines systematischen Vorgehens, könnte es wünschenswert sein, vor der Beschäftigung mit Benutzeroberflächen zunächst noch weitere allgemeine Aspekte der Programmierung zu behandeln. Doch Teilnehmer an Java-Lehrgängen messen ihre Fortschritte teilweise an den sichtbaren Effekten ihrer Programme und wollen daher möglichst früh etwas über die Programmierung graphischer Benutzeroberflächen erfahren, die auch oft für Lehrveranstaltungen angekündigt wird. Deswegen werden nun hier zunächst die Grundlagen der Programmierung graphischer Benutzeroberflächen mit Swing behandelt und die Behandlung allgemeiner Programmiertechniken wird später wieder aufgegriffen. Um möglichst bald zur diesem Kapitel zu gelangen, wurden bisher tatsächlich besonders solche Themen behandelt, die für die Grundlagen der Nutzung von Swing benötigt werden, während andere Themen später folgen.
Fenster und Komponenten; der Ereignisverlauf; die Klasse "JFrame" für Fenster; die Methode "pack"; die Methode "setVisible"; die Klasse "JButton" für Tastflächen, die Konstante "javax.swing.JFrame.EXIT_ON_CLOSE" zum Einstellen des Schließverhaltens; „validieren“; Behälter, Felderreichbarkeit [Ü]
Reihungen sind Funktionen, jedoch nicht gut geeignet für größere Wertbereiche, die dünn belegt sind oder andere Urbildbereiche als Intervalle nichtnegativer ganzer Zahlen
Trennung zwischen Schnittstellen und Implementationen, Map beziehungsweise HashMap und TreeMap
Beispiel: Häufigkeit der Wörter eines Textes ermitteln.
Funktionen können auch noch durch Methoden implementiert werden, Reihungen und Abbildungen sind jedoch zur Laufzeit erzeugbar und veränderbar
1.4 Bäume
Beispiel: TreeMap Dateisystem durchlaufen.
(Ein Graph ist eine Menge von Punkten und Paaren solcher Punkte, die Kanten genannt werden. Man unterscheidet zwischen gerichteten und ungerichteten Graphen, je nach der Bedeutung der Reihenfolge der Komponenten der Paare. Ein zusammenhängender zyklenfreier Graph ist ein Baum. (Andere Definition: Ein Baum ist ein kollabierbarer 1-dimensionaler endlicher Simplizialkomplex. Bei einem ungerichteten Baum, kann man jeden Knoten als Wurzel wählen Ein gerichteter Baum mit Wurzel kann ein Ein-Baum oder ein Aus-Baum sein. Bei einem Aus-Baum haben alle Nichtwurzelknoten genau eine einmündende Kante und es gibt einen Pfad von der Wurzel zu jedem Knoten. Bei einem Ein-Baum haben alle Nichtwurzelknoten genau eine ausmündende Kante und es gibt einen Pfad von jedem Knoten zur Wurzel. Ein attributierter Baum ist ein Baum, dessen Punkte noch zusätzliche Attribute durch Attributabbildung zugeordnet werden)
1.5 Eventuell Übungsaufgaben zu Ausnahmen und Reihungen
Zur individuellen Gestaltung von Benutzeroberfläche oder auch zur Ausgabe von Ergebnissen in graphischer Form ist es dienlich, in Flächen zeichnen zu können, also beispielsweise Rechtecke oder Kreise in einer bestimmten Form oder Farbe erzeugen zu können. Hierzu ist es nötig, zu verstehen, wie Zeichenflächen erzeugt und durch Koordinaten erschlossen werden. Es sollte auch bekannt sein, wie die für eine Zeichnung verfügbare Fläche ermittelt werden kann.
>721640 Die Operation "paintComponent" implementieren
>720345 Iteration >720899 Iteration in Übungsaufgaben >721248 Verantwortung und Schleifen >721539 Verbundzuweisungen in Java >721536 Inkrementieren in Java (Dekrementieren, Operator "++", Operator "--")
>721387 Paketdeklarationen in Java * >721500 Zugriffsbeschränkungen in Java >721543 Trägheit von Operandenstellen * >721538 Trägheit von Operandenstellen in Java (Rekursion, Operator "&&") *
>720768 Umgang mit der Kommandozeile und der Konsole in Java
Es folgen noch ergänzende Lektionen in den beiden Teilen „Ergänzungen“ und „Anhänge“.
Anhänge
Die folgenden Anhänge enthalten Artikel und Lektionen zu verschiedenen Themen, die je nach Bedarf gelesen werden können. Es ist nicht nötig, alles zu lesen oder die vorgegebene Reihenfolge einzuhalten. Von den folgenden Artikel und Lektionen kann das gelesen werden, was gerade interessiert.
Während sich der Lehrgang vor diesen Anhängen auf Java konzentrierte, werden in den Anhängen auch spezielle Systeme, wie beispielsweise das jdk behandelt.
Einzelne Ergänzungen
Die folgenden Ergänzungen enthalten Erklärungen zu Begriffen oder Vorgehensweise, die bei Bedarf gelesen werden können.
Die Aussprache einiger englischer Wörter, die in Zusammenhang mit der Programmierung mit Java auftreten können, wird auf der folgenden Seite beschrieben.
Falls das JDK unter Windows für Übungen verwendet werden soll, dann sollte dieser Teil während der „Vorschule“ nach der Lektion „Hallo-Welt-Programm in Java“ gelesen werden. Die folgenden Anleitungen beziehen sich auf das JDK 1.5 unter Windows 98, sind aber mit Einschränkungen auch für andere Versionen noch brauchbar. Falls ein anderes Java-Entwicklungssystem verwendet wird, dann ist dessen Bedienungsanleitung anstelle dieses Teil zu lesen.