Grundlagen der Programmierung in Java

Ähnliche Dokumente
Javakurs für Anfänger

Javakurs für Anfänger

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

Programmieren I + II Regeln der Code-Formatierung

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einführung in die Programmierung mit Java

Programmieren I + II Regeln der Code-Formatierung

Programme erstellen in Java

Javakurs für Anfänger

Kapitel 3. Programmierkurs. Arten von Anweisungen. 3.1 Was sind Anweisungen?

Java-Applikationen (Java-Programme)

Funktionen in JavaScript

2 Eine einfache Programmiersprache

pue13 January 28, 2017

Eine kleine Befehlssammlung für Java Teil1

Klassen, Vererbung, Benutzereingabe

Funktionen in JavaScript

Java: Eine kurze Einführung an Beispielen

2 Eine einfache Programmiersprache

Rückgabewerte von Methoden

Einstieg in die Informatik mit Java

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

2 Eine einfache Programmiersprache

Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient.

Informatik I - Einstiegskurs

Objektorientiertes Programmieren (Java)

Objektorientierte Programmierung Studiengang Medieninformatik

Tag 4 Repetitorium Informatik (Java)

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Einstieg in die Informatik mit Java

Umsetzung einer Klassenkarte in einer Programmiersprache

Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1

Aufgabenblatt 3. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Implementieren von Klassen

Prüfung Softwareentwicklung I (IB)

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

Prüfung Softwareentwicklung I (IB)

Methoden und Wrapperklassen

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Programmierkonventionen - 1 -

CS1005 Objektorientierte Programmierung

II.1.1. Erste Schritte - 1 -

Vorkurs Informatik WiSe 17/18

Lernteam OOP3 SW Programmieren 1 - H1103 Felix Rohrer

Institut für Programmierung und Reaktive Systeme. Java 1. Markus Reschke

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing

Programmieren in Java

System.out.println("TEXT");

Übungsblatt 1. Java Vorkurs (WS 2017)

Einführung in die Programmierung für NF. Zuweisungen, main- Methode und Kommentare

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Strings. Daten aus Dateien einlesen und in Dateien speichern.

Einführung in die Programmierung für NF. Zuweisungen, main- Methode und Kommentare

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen

2 Eine einfache Programmiersprache

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht:

Hello World! Eine Einführung in das Programmieren Das erste Programm

5 Grundlagen der Java-Syntax

Einstieg in Java und OOP

2. Unterprogramme und Methoden

Zahlenraten: Ein Spiel in Java.

Javakurs für Anfänger

Einstieg in die Informatik mit Java

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Java Einführung Programmcode

Erste Java-Programme (Scopes und Rekursion)

II.1.1. Erste Schritte - 1 -

Für die Erstellung von Javaprogrammen sind eventuell zwei Komponenten nötig. 1. Das Java-Develepment-Kit (JDK) und die 2. Java Runtime Engine (JRE)

Klassenvariablen, Klassenmethoden

public class <<Name der Klasse>>{ << Allgemeine (Globale) Definitionen >> public static void Main(string[] args){

Grundlagen der OO- Programmierung in C#

CS1005 Objektorientierte Programmierung

Institut für Programmierung und Reaktive Systeme 5. Dezember Programmieren I. 5. Übungsblatt

II.1.1. Erste Schritte - 1 -

Prozeduren vs. Funktionen

Basispruefung Herbst 2016/ Einführung in die Programmierung

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2018/19. Vorbereitende Aufgaben

Ein erstes "Hello world!" Programm

Programmiertechnik Klassenmethoden

Äußere Form ArrayList Vererbung API. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann. Tilman Lüttje, Jean Wiele

Einstieg in die Informatik mit Java

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Klassenmethoden

Ausnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein

Tag 7 Repetitorium Informatik (Java)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Teil 2: Weitere Aspekte der Objektorientierung

Arbeitsblatt zu Methoden

Transkript:

Grundlagen der Programmierung in Java Verweise auf das grüne RRZN-Heft: (Programmierung, S. 14) Verweise auf das rote RRZN-Heft: (Java, S. 25) Lieben Gruß, Andreas Teil 1 Das erste Programm Im Aufgabenteil e) der Aufgabe 2 schreiben wir unser erstes Java-Programm. Wir wollen uns die einzelnen Bestandteile mal genauer angucken: 1 // 2 /**Hallo Freunde. 3 * Die Klasse <code>hallofreunde00</code> gibt eine 4 * Begrüßung in der Eingabeaufforderung aus. 5 * @author?? 6 * @version 01 26.09.2013 7 */ 8 9 public class HalloFreunde00 10 { 11 /**Hauptmethode. 12 * Aufruf: <code>java HalloFreunde00</code> 13 * @param args werden hier nicht benötigt 14 */ 15 public static void main(string [] args) 16 { 17 // Einfache Ausgabe in der Eingabeaufforderung 18 System.out.println("Hallo Freunde!"); 19 } 20 } Exkurs: Kommentare in Java Java-Programme können auf unterschiedlichste Weise kommentiert werden. Die Kommentare dienen dazu, den Überblick zu behalten und das Programm für sich selbst und für Außenstehende verständlich zu machen. Kommentare beginnen entweder mit /*, dann enden sie mit */ oder sie beginnen mit //, dann enden sie beim Zeilenende. Beginnt der Kommentar mit /**, so handelt es sich um eine besondere Art des Kommentars, einen sog. Javadoc-Kommentar. Dieser kann separat aus dem Quellcode extrahiert werden und in eine HTML-Datei umgewandelt werden. Für uns ist er unwichtig. (Java, S. 35-36) Wenn wir uns mit diesem Wissen das obige Programm genauer anschauen, stellen wir fest, dass es zum größten Teil aus Kommentaren besteht, die es viel komplizierter aussehen lassen, als es ist! Die einzigen für uns relevanten Zeilen sind die Zeilen 9, 10, 15-20. Zur besseren Lesbarkeit hier nochmal das gleiche Programm ohne Kommentare:

1 public class HalloFreunde00 5 System.out.println("Hallo Freunde!"); Gleich viel übersichtlicher und kürzer! Nun schauen wir uns die einzelnen Bestandteile diese simplen Programms an: In Zeile 1 definieren wir eine Klasse. Hierfür benötigen wir das Schlüsselwort class. Die Spezifikation public bedeutet, dass die Klasse öffentlich, d.h. von jeder anderen Java-Klasse benutzbar ist. Auch das ist für uns noch nicht so wichtig. Wie merken uns einfach, dass wir jedes Programm mit der Definition der Klasse beginnen müssen. Hierfür schreiben wir immer public class Klassenname { } Der Klassenname ist frei wählbar. Wichtig: Er muss exakt mit dem Namen der Datei übereinstimmen, in der wir unseren Quellcode speichern. Die Datei aus dem obigen Beispiel muss also wie folgt benannt werden: HalloFreunde00.java Es gibt ein paar Regeln und Konventionen, wie der Klassenname aufgebaut werden muss. Erstmal reicht es, sich darauf zu verständigen, den Klassennamen immer mit einem Großbuchstaben zu beginnen und keine Leerzeichen zu verwenden. (Beispiele: Wuerfelspiel, BerechnungPi, Zufallszahl,...) Zur Klassendefinition gehört es auch, den Umfang der Klasse anzugeben. Hierfür verwenden wir die geschweiften Klammern. Alles, was zu der jeweiligen Klasse gehört, muss sich zwischen diesen Klammern befinden. Der Inhalt in den Klammern wird Block genannt. (Java, S.38) In Zeile 3 definieren wir die Methode unserer Klasse. Methoden sind untergeordnete Strukturen von Klassen. Wir erkennen dies daran, dass die Methode sich innerhalb des Blockes, den die Klasse HalloFreunde00 bildet, befindet. Jede Klasse, die (wie in unserem Beispiel) ein ausführbares Programm darstellen soll, benötigt die Methode main. In dieser Methode beginnt das Programm sozusagen. Im Moment ist es also nur wichtig, den Quellcode der Zeile 3 auswendig zu lernen. Was die einzelnen Schlüsselwörter vor main bedeuten, interessiert erstmal nicht. (Wen es trotzdem interessiert: public heißt, die Methode ist von außen erreichbar; static bedeutet, die Methode benötigt kein spezielles Objekt, um gestartet werden zu können; void sagt aus, dass die Methode keinen Rückgabewert liefert. (Java, S.38)) Hinter dem Methodennamen main muss immer (String [] args) stehen. Auch das nehmen wir wieder einmal einfach so hin, merken uns aber, dass args (Kurzform für arguments ) die Bezeichnung für all das ist, was wir in der Eingabeaufforderung beim Ausführen des Programms hinter java HalloFreunde00 eingeben können.

Geben wir zum Beispiel java HalloFreunde00 Klaus Martin Fritz ein, so speichert das Programm die Zeichenkette Klaus in args[0], Martin in args[1], und Fritz in args[2]. Wir können diese Eingaben dann im Laufe des Programms verwenden. Geben wir nichts ein, wird auch nichts unter args gespeichert. ( args ist der übliche, aber nicht der notwendig zu benutzende Name für diese Eingaben: public static void main(string [] eing) bzw. jede andere Benennung wird genauso akzeptiert. Zu berücksichtigen ist hierbei jedoch, dass die Eingaben dann entsprechend unter eing[0], eing[1], eing[2],... abgerufen werden müssen. Also sollte man es aus Gewohnheit vielleicht bei der Benennung args belassen.) Auch bei der Methodendefinition dürfen wir die beiden geschweiften Klammern nicht vergessen. Schließlich müssen wir dem Programm mitteilen, was alles zur Methode gehört und was außerhalb der Methode steht. Ist die Methode main abgearbeitet, ist auch das Programm beendet. Nun haben wir das Grundgerüst, welches alle unsere Programme beinhalten müssen: 1 public class HalloFreunde00 5 Dieses Programm kann noch nichts. Es besteht nur aus dem Grundgerüst. Die für unser jeweiliges Programm spezifischen Anweisungen und Befehle schreiben wir in den Block der Methode main. Das erste Programm soll ganz einfach den Text Hallo Freunde! ausgeben. Hierfür haben wir zwei simple Befehle: 1) System.out.println() und 2) System.out.print() Innerhalb der Klammern müssen wir die Ausgabeargumente angeben. Hier können z.b. Variablen verwendet werden. Da wir in unserem Programm noch keine Variablen kennen, möchten wir einen eigenen Text angeben. Damit Java unseren Text nicht als Befehl interpretiert, müssen wir ihn in Anführungszeichen notieren. Alles, was zwischen zwei hochgestellten Anführungszeichen steht, wird von Java exakt wiedergegeben. Wir schreiben also "Hallo Freunde!" in die Klammern. So wird exakt der Text Hallo Freunde! wiedergegeben. 1 public class HalloFreunde00 5 System.out.println("Hallo Freunde!") Nun haben wir unser kleines, kurzes Programm vom Anfang fast komplett verstanden. Eine kleine, aber sehr wichtige Sache haben wir aber noch vergessen!

Hinter jeder Anweisung, die wir Java geben, müssen wir das Semikolon schreiben! Nur dann weiß Java auch, dass es sich um eine Anweisung handelt und dass sie an dieser Stelle zuende ist! In unserem Programm haben wir nur eine Anweisung. Eigentlich haben wir nur eine einzige programmspezifische Zeile der Rest (das Drumherum ) ist ja nur das Grundgerüst, welches wir vorerst bei jedem Java-Programm verwenden wollen. Wir fügen also hinter unserer System.out.println("Hallo Freunde!")-Anweisung noch das Semikolon ein und fertig ist das erste selbstgeschriebene (und dabei auch verstandene!) Java-Programm! 1 public class HalloFreunde00 5 System.out.println("Hallo Freunde!"); Übungs-Aufgaben: Zur Überprüfung des Verständnisses des ersten Teils sollten diese Aufgaben ohne Hilfsmittel bearbeitet werden können. 1. Schreibe das obige Programm aus dem Gedächtnis komplett neu auf. 2. Schreibe ein Programm, welches mehrere Sätze ausgeben kann. Verändere den Inhalt der Sätze. Mache auch dies immer wieder ganz von vorne, d.h. nicht nur einzelne Zeilen ändern, sondern das ganze Programm neu tippen! Nur so bekommt man ein Verständnis für das Grundgerüst. 3. Gib in der Eingabeaufforderung auch mal etwas hinter der Anweisung java HalloFreunde00 ein. Versuche, diese Eingabe (z.b. deinen Namen) auch mal mit System.out.println() darzustellen. 4. Mache dies auch mit mehreren Eingaben hinter java HalloFreunde00. 5. Worin besteht der Unterschied zwischen System.out.println() und System.out.print()? Finde es heraus, indem du mehrere Texte ausgeben lässt. Was fällt auf? Stand: 01.12.2013 14:15 Uhr

Teil 2 Kleine Veränderungen In Aufgabenteil j) der Aufgabe 2 verändern wir die Art, wie das Programm die Begrüßung ausgibt. Statt der Zeile System.out.println("Hallo Freunde!"); schreiben wir nun JOptionPane.showMessageDialog(null, "Hallo "+args[0]+"!"); Aber was bedeutet das genau? Schauen wir uns diese Anweisung mal näher an: Der Text Hallo Freunde! wurde bisher direkt in der Eingabeaufforderung dargestellt. Hierfür haben wir die Anweisung System.out.println("Hallo Freunde!"); benutzt. Wollen wir den Text hingegen in einer grafischen Benutzeroberfläche ausgeben (engl. GUI = Graphical User Interface), so müssen wir uns der Swing-Bibliothek bedienen, die nicht zur Standardausstattung des Java-Systems gehört. Eine Bibliothek bezeichnet in der Programmierung eine Sammlung von Hilfsmodulen, die zu einem Themenbereich gehören. Diese Unterprogramme sind nicht selbständig, sondern können von anderen Programmen angefordert bzw. aufgerufen werden. In der Swing-Bibliothek befinden sich Hilfsmittel zur Programmierung von grafischen Benutzeroberflächen. Möchte man Informationen über Java-Bibliotheken und dazugehörige Klassen haben, findet man diese unter: http://docs.oracle.com/javase/7/docs/api/index.html Auf dieser Homepage finden wir oben links eine Übersicht über die angebotenen Bibliotheken. Wählt man javax.swing aus, findet man im Fenster unten links die Darstellung aller hierzugehörigen Klassen. Diese kann man in eigenen Programmen verwenden. Die Klasse JOptionPane beinhaltet viele verschiedene Methoden. Methoden sind Spezifikationen einzelner Klassen, sozusagen konkrete Unterprogramme, die jeweils bestimmte Dinge ausführen können. Die wichtigsten Methoden von JOptionPane sind showconfirmdialog, showinputdialog, showmessagedialog und showoptiondialog. Wie können wir uns jetzt in unserem Programm einer dieser Methoden bedienen? Zunächst müssen wir Java klarmachen, dass wir eine Klasse von außerhalb benutzen möchten. Wir müssen diese Klasse in unserem Programm ankündigen : 1 import javax.swing.joptionpane; 2 3 public class HalloFreunde00 5 public static void main(string [] args) 6 { 7 JOptionPane.showMessageDialog(null, "Hallo "+args[0]+"!"); 8 } 9 } Dies machen wir mit der Anweisung import Angabe der Klasse;. Wir sehen hier ganz deutlich, woher wir unser Hilfsprogramm holen: Aus der Klasse JOptionPane, die sich in der Bibliothek javax.swing befindet.

In Zeile 7 verwenden wir dann eine konkrete Methode aus der angekündigten Klasse. Dies geschieht in der Form Klassenname.Methodenname(Parameter);. Die Wirkungsweise der Methode showmessagedialog wird in der Online-Dokumentation wie folgt beschrieben: Tell the user about something that has happened. Sie dient also zur Ausgabe von Nachrichten bzw. Meldungen. Exkurs: Parameter Nun müssen wir uns noch mit dem beschäftigen, was in der Klammer der Methode geschrieben steht. In der Method Summary auf der o.a. Website finden wir die verschiedenen Methoden genauer erklärt. Wir schauen mal unter showmessagedialog nach und finden drei Arten, diese Methode zu benutzen, sog. Signaturen: - showmessagedialog (Component parentcomponent, Object message) - showmessagedialog (Component parentcomponent, Object message, String title, int messagetype) - showmessagedialog (Component parentcomponent, Object message, String title, int messagetype, Icon icon) Die kursiv gedruckten Begriffe sind allgemeine Platzhalter für das, was wir in unserem Programm selbst bestimmen müssen. Die anderen Begriffe ( Component, Object, String, Icon ) geben die Art des zu bestimmenden Parameters vor. Beispiel: Möchte man dem aufpoppenden Fenster, das durch showmessagedialog dargestellt wird, eine Kopfzeile geben, so wird hier ein String gefordert; d.h., alles, was man an der Stelle des Platzhalters title eingibt, wird auch genau so als Zeichenkette im Message-Fenster dargestellt. (Wir werden es weiter unten noch sehen.) Durch Klick auf die jeweiligen Signaturen in der Method Summary gelangt man zu einer weiteren Erklärung der einzelnen Parameter: - parentcomponent determines the Frame in which the dialog is displayed; if null, or if the parentcomponent has no Frame, a default Frame is used - message the Object to display Hier erkennen wir folgendes: In der Klammer müssen wir zunächst angeben, ob das Message-Fenster einen übergeordneten Dialog hat, dem es zugeordnet wird. Wird dieser Dialog geschlossen, wird auch das Message-Fenster geschlossen. Da wir keinen übergeordneten Dialog in unserem Programm haben, geben wir null ein. Dahinter müssen wir das Objekt angeben, das dargestellt werden soll. D.h., wir können mehr als nur reinen Text eingeben. Würde explizit ein Text verlangt, stünde dort nicht Object sondern String. Wichtig: Die Reihenfolge der Parameter muss eingehalten werden! (Die Methode showmessagedialog kann entweder mit zwei, vier, oder fünf Parametern benutzt werden. Wir belassen es erstmal bei der ersten Signatur, also bei zwei Parametern. In späteren Aufgaben werden mehr Parameter benötigt. Wie diese dann zu verwenden sind, kann man in der Online-Dokumentation nachlesen (s.o.).)

In Zeile 7 steht JOptionPane.showMessageDialog(null, "Hallo "+args[0]+"!"); Dies sollten wir jetzt alles verstehen. Nochmal zur Verdeutlichung: JOptionPane Dies ist die Klasse, aus der wir unsere Methode (unser Hilfsprogramm ) aufrufen. Wir müssen uns immer fragen: Gehört die Klasse zur Standard-Bibliothek? Wenn nicht, muss sie am Beginn des Programmcodes mit der Anweisung import Angabe der Klasse; bekanntgegeben werden. In unserem Beispiel geschieht dies in Zeile 1 mit import javax.swing.joptionpane;. showmessagedialog Dies ist die konkrete Methode aus der Klasse JOptionPane. Sie dient der Darstellung von Nachrichten ( message ) in einem extra Fenster ( Dialog ). (null, "Hallo "+args[0]+"!") hier bestimmen wir die Parameter der Methode. Erster Parameter: übergeordneter Dialog; zweiter Parameter: auszugebende Nachricht. Was gibt diese Anweisung nun aus? Mit dem Wissen aus Teil 1 sollten wir es auf den ersten Blick erkennen können: Zunächst gibt das Programm eine Zeichenkette aus. Alles, was zwischen zwei Anführungszeichen steht, wird auch 1:1 wiedergegeben (Hallo ). An diese Zeichenkette wird das Eingabe-Argument angehängt (mithilfe des + ), das der Benutzer beim Aufruf des Programms in der Eingabeaufforderung eingegeben hat. Wurde z.b. java HalloFreunde00 Klaus eingegeben, so wird die Zeichenkette Klaus angehängt (Hallo Klaus). Schließlich wird noch die Zeichenkette in den nächsten Anführungszeichen angehängt. Die vollständige Ausgabe lautet also: Hallo Klaus! Wichtig: Wird in der Eingabeaufforderung keine Argument angegeben, kann mit args[0] auch nichts aufgerufen werden, es kommt also zu einer Fehlermeldung! Keine Probleme verursacht es allerdings, wenn mehr als ein Argument angegeben wird. In diesem Fall werden die überflüssigen Argumente, also diejenigen, die im Programm nicht abgefragt werden, einfach nicht benutzt. Auf die oben dargestellte Art lassen sich viele Methoden, mit denen man in der Programmierung noch nicht vertraut ist, verstehen und anwenden. Der grundlegende Aufbau ist immer ähnlich, die Art und Weise der Einbindung in den Java-Programmcode ebenfalls. Stand 07.12.2013 13:15 Uhr