Java Einführung. Teil 1: Einfacher Java Code. Michael Hahsler
|
|
- Carin Manuela Jaeger
- vor 7 Jahren
- Abrufe
Transkript
1 Java Einführung Teil 1: Einfacher Java Code Michael Hahsler
2 Java Einführung SOFTWARE-ENTWICKLUNG Kapitel 1
3 Inhalt dieser Einheit Phasen eines Softwareprojekts Algorithmus Überblick über (Programmier-) Sprachen Wie funktioniert JAVA? 2
4 Software Engineering Fachgebiet der Informatik stellt Methoden Werkzeuge zur Herstellung und Anwendung von Software bereit. 3
5 Die Phasen eines Softwareprojekts (klassisch sequentielles Software-Life-Cycle-Modell) Betrieb und Wartung Systemtest Problemstellung, Idee Implementierung und Komponententest Problemanalyse Spezifikation = Analyse (Komponenten-) Entwurf = Design 4
6 Problemanalyse und Planung Was? Erhebung des Ist-Zustandes Abgrenzung des Problembereichs Skizzieren der Bestandteile des geplanten Systems erste Abschätzung des Umfanges und der Wirtschaftlichkeit Erstellung eines groben Projektplans Benutzeranalyse Aufgabenanalyse 5
7 Analyse: Spezifikation Was? Genaue Festlegung des Leistungsumfanges des geplanten Systems (Pflichtenheft) Umsetzung der Anforderungen in ein Modell, welches die künftige Funktionalität des zu entwickelnden Produktes vollständig beschreibt Funktionsmodelle, Datenmodelle, Ereignismodelle, Interaktionsmodelle, Workflow- Modelle noch unabhängig von der Implementierung 6
8 Design: System- und Komponentenentwurf Wie? Umsetzung, der in der Spezifikation erstellten Modelle in eine formale Form Festlegung, welche Systemkomponenten die vorgegebenen Anforderungen abdecken werden Definition der Systemkomponenten (Schnittstellen!) Entwurf der algorithmischen Struktur (Pseudocode) Entwurf der Datenstrukturen unabhängig von der Implementierung! 7
9 Implementierung und Komponententest Umsetzung der Ergebnisse der Entwurfsphase in eine rechnerausführbare Form Verfeinerung der Komponenten und Algorithmen Codierung in der gewählten Programmiersprache Komponententests 8
10 Systemtest Wechselwirkungen der Systemkomponenten unter realen Bedingungen prüfen Fehler aufdecken sicherstellen, dass die Systemspezifikation erfüllt ist (aus Pflichtenheft) Freigabe der Software 9
11 Betrieb und Wartung Fehler, die erst während des tatsächlichen Betriebs auftreten beheben Systemänderungen und Systemerweiterungen durchführen 10
12 Andere Software- Engineering Modelle Wasserfall-Modell Spiral-Modell Prototyping-orientiertes Life-Cycle-Modell Objektorientiertes Life-Cycle-Modell Objekt- und prototyping-orientiertes Life- Cycle-Modell 11
13 Beschreibung von Abläufen (Bsp. Kochrezept) Man nehme 2 dag Schmalz und erhitze es in einer Pfanne. Inzwischen versprudelt man 3 Eier mit einer Brise Salz. Wenn das Fett heiß ist, gieße man die Eier in die Pfanne. Mit einer Gabel umrühren, bis die Eier stocken, sofort heiß servieren...'' Kochrezepte Gebrauchsanweisungen Algorithmen Programme 12
14 Algorithmus (Definition) Ein Algorithmus ist ein Plan zur Lösung gleichartiger Probleme mit Hilfe einer endlichen Folge eindeutiger, ausführbarer Schritte bestehend aus - elementaren Anweisungen - in einer geeigneten Sprache - die sequentiell (schrittweise) durchgeführt werden. Ein Programm ist ein Algorithmus formuliert in einer bestimmten Programmiersprache. 13
15 Algorithmus ( Bsp. Telefonnummersuche) "Suche die Telefonnummer zu einem gegebenen Namen in einem beliebigen Adressbuch 1. Gehe zum ersten Eintrag im Adressbuch 2. Vergleiche den aktuellen Eintrag mit dem gesuchten Namen 3. Bei Gleichheit: gib die zugehörige Telefonnummer aus und halte an sonst gehe zu Schritt 4 4. (Ungleichheit) Wenn noch Einträge im Adressbuch vorhanden sind: nimm den nächsten Eintrag und gehe zu (2) sonst gehe zu Schritt 5 5. melde Misserfolg und halte an Name Tel.Nr. Neumann, Gustaf Neumann, Gustav
16 Definition einer Sprache Wie definiert sich eine Sprache? Aus der Menge der Symbole (Worte) können Sätze gebildet werden. Syntax: Die Regeln für das Bilden gültiger Sätze aus diesen Symbolen (=''Grammatikregeln''). Semantik: Die Bedeutung der gültigen Sätze. Bsp: 2+4=7 ist in der Sprache der Mathematik syntaktisch richtig, aber semantisch falsch. 15
17 Bsp: Regelgramatik Syntaxregeln (BNF) <Ziffer> ::= <Vorzeichen> ::= + - <Ziffernfolge> ::= <Ziffer> <Ziffernfolge><Ziffer> <Zahl> ::= <Ziffernfolge> <Vorzeichen><Ziffernfolge> Terminale Symbole werden nicht mehr abgeleitet {0,1,2,...,9} Nicht-terminale Symbole gekennzeichnet durch <...> bedeutet eine Auswahl (oder) Alles was von <Zahl> (Startsymbol) abgeleitet werden kann, ist eine gültige Zahl 16
18 Bsp: Syntaxdiagramm Ziffer 0 1 Ziffernfolge Ziffer Ziffernfolge Ziffer 9... Zahl Vorzeichen + - Ziffernfolge Vorzeichen Ziffernfolge 17
19 Natürliche versus formale Sprache Natürliche Sprachen sind vielfach syntaktisch und/oder semantisch mehrdeutig. ( Dings wird aus dem Kontext erkannt) Natürliche Sprachen sind fehlertolerant. Der vorgegebene Wortumfang natürlicher Sprachen ist sehr groß. (80000 Worte Langenscheidt vs. 51 Java) Eine Programmiersprache ist eindeutig und ist primitiv genug, um in Maschinencode übersetzt werden zu können. 18
20 Java-Wortschatz reservierte Worte abstract boolean break byte case catch char class continue default do double else extends false final finally float for if implements import instanceof int long native new null private protected public return static super switch synchronized this throw throws transient try void volatile while true short interface package assert enum strictfp * derzeit ohne Verwendung byvalue* cast* const* future* generic* goto* inner* operator* outer* rest* var* 19
21 Programmiersprachen Definition Eine Programmiersprache ist eine Sprache zur Formulierung von Rechenvorschriften bzw. Anweisungen (Datenstrukturen und Algorithmen), die von einem Computer ausgeführt werden können, hat eine eindeutig definierte Syntax (welche Zeichenfolgen sind erlaubt) und Semantik (was bewirken die Zeichenfolgen auf dem Rechner), bildet die wichtigste Schnittstelle zwischen Rechner und Programmierer. 20
22 Wie kann ich eine Sprache lernen? ÜBEN und ANWENDEN! Wie beim Lernen eines Musikinstruments! Notenkenntnis und Erkennen der Tasten ist zuwenig! 21
23 Programmiersprachen 22
24 Programmiersprachen Übersicht Maschinensprache Programme in Maschinensprache bestehen aus Maschinenbefehlen, die als Folge von Nullen und Einsen im Rechner dargestellt werden. Nur Maschinensprache kann vom Prozessor verarbeitet werden. Assembler Sprachen Die Bitkombinationen der Maschinenbefehle werden durch ein leicht zu merkendes Symbolwort ausgedrückt werden (MOV A L). Höhere/symbolische Programmiersprachen Sind an die menschlichen Denkweisen angepasst (sie sind problemorientiert und nicht mehr maschinenorientiert). Höhere Programmiersprachen erlauben die Formulierung von Programmen in einer vom Zielrechner unabhängigen Notation. Mit Hilfe eines Übersetzungsprogramms (Compiler) werden Programme einer höherer Programmiersprache in Maschinenprogramme übersetzt. 23
25 Höhere Programmiersprachen Übersicht Strukturierte Programmiersprachen Höhere Programmiersprachen, die das Modulkonzept unterstützen BASIC, PASCAL, C, Modula Objektorientierte Programmiersprachen Höhere Programmiersprachen, welche Daten und Anweisungen nicht trennen sondern zusammen als Objekte behandeln. Objekte stehen miteinander in Beziehung und kommunizieren miteinander durch Versenden von Nachrichten (Messages). Das Empfängerobjekt hat für jede Nachricht, die es versteht, einen eingebauten Algorithmus (Methode genannt). C++, C# und Java Deskriptive Programmiersprachen dient zur Beschreibung der Eigenschaften gesuchter Informationen (üblicherweise Daten aus einer Datenbank) SQL Logische Programmiersprachen Die logische Programmierung beruht auf der Erkenntnis, dass einer Untermenge der Prädikatenlogik eine prozedurale Interpretation gegeben werden kann. PROLOG 24
26 Programmiersprachen grafische Übersicht 25
27 Entwicklung von prozeduralen Programmiersprachen John v. Neumann: Programmierbare Rechenmaschine IBM: PL/1 General Purpose PL N. Wirth: Pascal Strukturierte Programmierung N. Wirth: Modula-2 Verbesserte Datenkapselung Dahl: Simula Simulation D. Ritchie (AT&T): C Systemprogrammierung B. Stroustroup (AT&T): C++ Objektorientierte Erweiterung von C Sun: Java vereinfachte und gestutzte Weiterentwicklung von C
28 Java-Geschichte 1991: Projekt ``Green`` (consumer electronics) bei Sun zunächst basierend auf C++, das sich aber im Hinblick auf Sicherheit, Portabilität und Zuverlässigkeit als unzureichend herausgestellt hatte => Entwicklung einer eigenen Sprache ``Oak``, später Java 1994: Entwicklung des HotJava-Browsers (Java Applets) 1995: offizielle Vorstellung von Java, Netscape lizenziert Java 1996: Gründung von JavaSoft bei Sun, Release 1.0 des Java Development Kits (JDK) 1997: JDK : JDK 1.2 = Java 2 Platform 2000: JDK : SDK : JDK 5.0 = Version
29 Was ist Java? Objektorientiert Einfach (keine Pointer, automatische Garbage Collection, nur einfache Vererbung) Plattformunabhängig (durch Bytecode) Verteilt/Netzwerkfähig (Internet) Sicher (Sandbox) Multithreading-fähig (Parallelverarbeitung) 28
30 Grundlagen: Ausführbare Programme Der Quellcode beinhaltet Anweisungen, die noch nicht direkt durch ein Computersystem ausgeführt werden können. Für die Ausführung der Anweisungen muss der Quellcode erst in Maschinencode übersetzt werden. Es gibt zwei Möglichkeiten, Quellcode einer höherer Programmiersprachen in Maschinencode zu übersetzen: Interpreter: Nach dem Start des Interpreters wird jeweils eine Anweisung des Quellprogramms nach der anderen in Maschinenbefehle übersetzt, geprüft und sofort ausgeführt. Compiler: Übersetzt das Quellprogramm vollständig in Maschinencode, der zu einem beliebigen Zeitpunkt vom Betriebssystem geladen und ausgeführt werden kann. 29
31 Ausführen von Java Java kombiniert Compiler und Interpreter Zunächst wird die Quelldatei mit Hilfe des Java Compilers in Bytecode übersetzt. HelloWorld.java javac HelloWorld.class Quellcode Java Compiler Java Bytecode Wichtig: Die Bytecode-Datei beinhaltet exakt denselben Bytecode, egal von welchem System sie erzeugt wird (Plattformunabhängig!) 30
32 Java Bytecode Interpreter Der Bytecode kann noch nicht direkt ausgeführt werden. Dazu wird im zweiten Schritt ein Java Bytecode Interpreter eingesetzt. Jedes System hat seinen eigenen Java Bytecode Interpreter, die Java Virtual Machine (JVM) Betriebssystem Prozessorarchitektur 31
33 Java - Übersetzung javac ProgramName.java Java Quellcode ProgramName.java Java-Compiler javac java ProgramName Java Byte- Code ProgramName.class Java-Interpreter java JVM-NT JVM-Sol JVM-Net Windows NT Sun Solaris Netscape Betriebssystem/ Browser/ Machinensprache 32
34 Programmcode class HelloWorld { public static void main (String[] args) { System.out.println( Hello, world ); } } Quellcode Der Programmcode muss erst in die für den Computer verständliche Sprache übersetzt werden! 33
35 Java Applikationen vs. Applets vs. Java-Script Java-Applikationen: Anwendungen auf Betriebssystemebene, z.b. wird unter Windows gestartet und öffnet ein eigenes Fenster. Java-Applets: Java-Anwendungen, die in einem WWW-Browser ablaufen. Sind in HTML-Seiten eingebettet und werden automatisch über das Internet heruntergeladen; z.b. im Internet Explorer. Java-Script: Scriptsprache zum Einbetten von einfachen Programmen in HTML-Seiten. 34
36 Selbstkontrolle In welchen Phasen läut ein Software-Projekt ab? Welche Klassen von Programmiersprachen gibt es? Und zu welcher Klasse gehört Java? Was sind die Eigenschaften von Java? Erklären Sie die Schritte vom Java-Quellcode zum ausführbaren Java-Programm. Was ist der Unterschied zwischen Java- Applikationen und Java-Applets? 35
37 Java Einführung Programmcode
38 Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2
39 Wiederholung: Java Write once, run everywhere! (unabhängig von Hardware, Betriebssystem etc.): der Programmcode wird zu unabhängigem Bytecode kompiliert, der von der Java-Virtual Machine (JVM) des Zielsystems interpretiert und ausgeführt wird. 3
40 Wiederholung: Algorithmus Ein Algorithmus ist eine Arbeitsanleitung zur Lösung eines Problems, die so präzise formuliert ist, dass sie von einem Computer ausgeführt werden kann. Er besteht aus elementaren Anweisungen in einer geeigneten Sprache die sequentiell (schrittweise) durchgeführt werden. Der in einer für Menschen verständlichen Sprache beschriebene Algorithmus wird dann in eine Programmiersprache (hier: JAVA) transferiert. Quelltext (auch Quellcode) bezeichnet einen in einer Programmiersprache codierten Algorithmus. 4
41 Programmelemente Anweisungen elementarste ausführbare Programmelemente werden mit Semikolon ('';'') beendet z.b.: Anweisung; Blöcke Reihe von Anweisungen wirkt nach außen hin wie eine Anweisung werden von geschwungenen Klammern umgrenzt { Anweisung; Anweisung;... } 5
42 Programmelemente / 2 Klassendefinitionen Grundlegende Strukturierungseinheit eines objektorientierten Programms z.b. class Teacher {...} Methoden Block, der über einen Namen aufrufbar ist kann Aufrufparameter beinhalten kann Rückgabewerte beinhalten z.b. int grade (String[] student_name) {...} 6
43 Programmelemente / 3 Kommentare Beschreibenden Text rund um Code verfassen und wird nicht kompiliert Arten: // Kommentar bis zum Zeilenende /*... Kommentar bis zum nächsten */ /**... JavaDoc Kom. bis zum nächsten */ - diese Form dient der Kennzeichnung von JavaDoc- Kommentaren, die später elegant in HTML-Seiten umgewandelt werden können. 7
44 Das erste Programm Block Klasse class HelloWorld { Methode public static void main (String[] args) { Kommentar // Hello world ausgeben System.out.println( Hello world ); } } Anweisung Quellcode wird mit Hilfe eines Editors (WordPad) oder einer Entwicklungsumgebung geschrieben. 8
45 Java ist case-sensitiv! Achtung! In der Programmiersprache Java haben Worte, die bis auf die Groß- und Kleinschreibung identisch sind, eine unterschiedliche Bedeutung. z.b. HelloWorld <> helloworld <> Helloworld <> helloworld <>... Anmerkung: Großbuchstabe (engl.: upper-case) Kleinbuchstabe (engl.: lower-case) 9
46 Untersuchung: HelloWorld class HelloWorld: Hauptklasse mit dem Namen HelloWorld Methode main: Hauptmethode. Hier startet die Applikation System.out.println("..."): Anweisung an die Klasse System.out die Methode println() ( print line ) auszuführen. println() veranlasst die Ausgabe einer Zeichenkette, die durch ein Zeilensendezeichen abgeschlossen wird. 10
47 Die Methode main Die Methode main ist jene Methode, die zum Programmstart ausgeführt wird. Sie kann wiederum andere Methoden aufrufen. public static void main (String[] args){...} Die Methode ''main'' ist public (=öffentlich, für alle verfügbar) und static (=statisch, immer verfügbar und nicht änderbar) definiert und hat Parameter (String[] args) und keinen Rückgabewert (void engl.: leer). 11
48 Blöcke In Java wird die Quellcode-Datei in Teile geteilt, die durch öffnende und schließende geschwungene Klammern { } getrennt sind. Alles zwischen { und } ist ein Block. Damit werden zusammengehörige Anweisungen gruppiert. Blöcke können verschachtelt sein und andere Blöcke beinhalten. z.b: HelloWorld.java - äußerer Block für die Klassendefinition, welcher einen - inneren Block der Main-Methode beinhaltet. Ein Block sollte zur besseren Lesbarkeit eingerückt werden. Durch diese Strukturierung wird der Code u.a. leichter lesbar. 12
49 Die Entwicklungsumgebung von Sun Das Java Software Development Kit (JDK) beinhaltet die Software und Tools, die von Entwicklern benötigt werden, um Quellcode zu kompilieren, zu debuggen und auszuführen. Die JDK Software und Dokumentation inkludiert grundlegende Entwicklungstools, eine große Menge an Klassen-Bibliotheken, und ist gratis verfügbar. 13
50 Java 2 Plattform Standard Edition Java 2 Plattform seit Ende 1998 (Version Java 1.2 und höher) Derzeit JDK 5.0 (Java 1.5) Download unter 14
51 Bestandteile JDK Compiler (javac) Bytecode Interpreter (java) jar, javadoc, etc. Ausführbare Programme Beispielprogramme und Applets Java Runtime Environment (Virtual Machine) 15
52 Installation und Konfiguration SDK herunterladen und installieren PATH auf das bin-verzeichnis setzen: Einstellungen->Systemsteuerung->System Erweitert/Umgebungsvariablen/Path Ausführliche Information zur gerade aktuellen Version liefern die Installationshinweise von Sun. ( 16
53 Schritte vom Code zur Programmausführung Abspeichern des Codes unter dem Namen der Hauptklasse, Erweiterung.java. (HelloWorld.java) Kompilieren > javac HelloWorld.java Bytecode-Datei HelloWorld.class wird erzeugt Ausführen > java HelloWorld Ausgabe > HelloWorld MS DOS-Fenster (Start->Ausführen->CMD) 17
54 Aufgabe Installieren Sie JDK zuhause oder gehen Sie in den Übungsraum. Suchen Sie das jdk-verzeichnis (meist unter C:\Programme\Java) und setzen Sie die PATH Variable. Implementieren Sie das HelloWorld Beispiel, kompilieren Sie es und führen es aus. Ändern Sie das Programm so ab, dass es GoodNight heißt und auch Good Night! ausgibt. 18
55 Nach dieser Einheit sollten Sie wissen,... welche Programmelemente ein Programm enthält was Anweisungen sind wie diese zu Blöcken zusammengefasst werden können wie ein Programm strukturiert wird und wie Sie Ihr Programm HelloWorld erstellen, kompilieren und ausführen können 19
56 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2
57 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2
58 Variablen Daten werden in Variablen gespeichert. Variablen sind aus der Mathematik bekannt: y=5+x Variablen haben einen Namen (Bezeichner) und einen Wert. Bsp. x kann den Wert 8 haben. Variablen sind Behälter, die jeweils nur einen Wert eines bestimmten Datentyp beinhalten können. Bsp. x ist vom Datentyp 'ganze Zahl' (Integer), die Variable kann daher keine Zeichenkette enthalten. Variablen müssen vor der Verwendung deklariert werden, dabei wird der Name und der Datentyp festgelegt. 3
59 Bezeichner Bezeichner benennen Variablen, Klassen, Instanzen, Methoden, beginnen mit Buchstaben, _ oder $, anschließend folgen Buchstaben, Ziffern, Unterstrich, Dollar und/oder Unicode-Zeichen. Zur besseren Lesbarkeit wird eine einheitliche Form der Benennung der Klassen, Objekte, Methoden und Variablen empfohlen. Besteht ein Bezeichner aus mehreren Worten werden Sie folgendermaßen zusammengeschrieben: nameoftheuser 4
60 Bezeichner (forts.) Variablennamen (und Instanznamen): kleiner Anfangsbuchstabe. z.b.: zaehler oder meinzaehler Konstantennamen: komplett groß z.b.: MAXINT Klassennamen: ein Hauptwort, den ersten Buchstaben einer Klasse groß schreibt. z.b.: MeineErsteKlasse Methodennamen: sind Verben, beginnen mit Kleinbuchstaben. z.b.: getnamefromuser() 5
61 Datentypen und Werte Es gibt unterschiedliche Kategorien (Datentypen) von Werten: Ganze Zahlen: 2, 4754, -50 Gleitkomma (Reelle-) Zahlen: -3.4, 34.98, Wahrheitswerte: Richtig/Falsch Zeichen: a, b Zeichenketten: Hello World! Unterschiedliche Datentypen benötigen unterschiedlich viel Speicherplatz; z.b. Wahrheitswerte 1 Bit oder ASCII-Zeichen 7 Bit Grund für den Einsatz von Datentypen: Überprüfung sinnvoller Operationen (verhindert Addition hallo +3) Reservierung passenden Speicherplatzes 6
62 Primitive Datentypen In Java eingebaute Datentypen: Ganze Zahlen: byte, short, int, long Gleitkomma (Reelle-) Zahlen: float, double Zeichen: char Wahrheitswerte: boolean (true/false) Die Datentypen und ihre Eigenschaften (Größe, Genauigkeit) hängen nicht (wie bei anderen Programmiersprachen) vom jeweiligen Computersystem ab, sondern sind in Java einheitlich festgelegt. 7
63 Primitive Datentypen (forts.) Typ von bis byte short int long char Unicode Wahrheits false werte boolean true float +/-1, * 10^-45 +/-3, * 10^38 double +/-4, * 10^-324+/-1, * 10^308 Ganzzahlen Gleitkommazahlen 8
64 Ganze Zahlen (Primitive Datentypen) Datentypen byte, short, int, long Operationen (Operanden und Ergebniswert sind ganze Zahlen) + Addition - Subtraktion * Multiplikation / Ganzzahldivision % Restbildung (Modulo-Funktion) Beispiele: 1, -45 weitere Operatoren folgen... 9
65 Gleitkommazahlen (Primitive Datentypen) Datentypen float, double Operationen: (Operanden und Ergebniswert sind Gleitkommazahlen) + Addition - Subtraktion * Multiplikation / Division Beispiel: 2.77, 1.0 (Achtung. als Komma!) weitere Operatoren folgen... 10
66 Datentyp char Zeichen (Primitive Datentypen) Operationen: (Operanden und Ergebniswert sind Zeichen oder Zeichenketten) + (Verkettung) Beispiel: a, z (Achtung einfaches Anführungszeichen!) weitere mögliche Werte für Character-Datentypen auf der nächsten Folie... 11
67 Zeichen (forts.) Tastatur-, Unicode oder Oktal-Zeichen in einfachen Hochkomma Tastaturzeichen Z Unicode-Zeichen \u005a Oktal-Zeichen \132 Sonderzeichen (Auswahl der Escapesequenzen) \b Backspace \ Doppeltes Hochkomma \n linefeed \\ Backslash \r carriage return \ Einfaches Hochkomma \t Tabulator 12
68 Wahrheitswerte (Primitive Datentypen) Datentyp boolean Operationen: Ergebniswert sind wieder Wahrheitswerte a && b a b (logisches UND: a ist wahr und b ist wahr) (logisches ODER: a ist wahr oder b ist wahr)!a (logisches NICHT: ist wahr wenn a falsch ist) Mögliche Werte: true, false 13
69 Wahrheitswerte (forts.) Folgende Operatoren ergeben Wahrheitswerte: < (kleiner) <= (kleiner oder gleich) == (gleich)!= (ungleich) >= (größer oder gleich) > (größer) z.b. z.b. Vergleich von von zwei zwei Integer-Variablen int a = 1; 1; int b = 2; 2; boolean bool = a <= <= b; b; Ergebniswert bool: true 14
70 Variablendeklarationen Variablen haben einen Namen und sind Behälter für Werte eines bestimmten Datentyps Damit Variablen verwendet werden können, müssen sie zuerst deklariert werden. z.b.: int i; short x, y; 15
71 Deklaration u. Initialisierung Deklaration: Datentyp name; z.b.: int abgaben; boolean an; mehrere Variable vom selben Typ: Datentyp name1, name2, name3; z.b.: int gehalt, lohn, provision; Wertzuweisung: variable = wert; z.b.: gehalt = 3000; provision = 2000; an = true; 16
72 Deklaration u. Initialisierung (forts.) Deklaration mit Initialisierung int gehalt = 3000; int provision = 100; double x = ; char zeichen = 'a'; boolean aus = false; Zugriff auf Variablenwerte gehalt = gehalt + provision; System.out.println( Gehalt: +gehalt); 17
73 Automatische Initialisierung von primitiven Datentypen Wird eine Variable bei der Deklaration nicht Initialisiert (Bsp. int i;), erhält sie automatisch folgenden Wert: Zahlen: 0 bzw. 0.0 Wahrheitswerte: false Zeichen/Referenzen*: null (bedeutet: leer) besser: explizite Initialisierung int provision = 0; *Referenzen werden erst später behandelt! 18
74 Datentypen-Beispiel class ArithmeticDemo { public static void main(string[] args) { int i = 37; int j = 42; double x = ; double y = 7.22; Variablendeklarationen System.out.println("Variablenwerte..."); System.out.println(" i = " + i); System.out.println(" j = " + j); System.out.println(" x = " + x); System.out.println(" y = " + y); System.out.println("Addieren..."); System.out.println(" i + j = " + (i + j)); System.out.println(" x + y = " + (x + y)); Ausgabe der Variablenwerte Addition 19
75 Datentypen-Beispiel Teil2 }} System.out.println("Subtrahieren..."); System.out.println(" i - j = " + (i - j)); System.out.println(" x - y = " + (x - y)); System.out.println("Multiplizieren..."); System.out.println(" i * j = " + (i * j)); System.out.println(" x * y = " + (x * y)); System.out.println("Dividieren..."); System.out.println(" i / j = " + (i / j)); System.out.println(" x / y = " + (x / y)); System.out.println( Restwertbestimmung..."); System.out.println(" i % j = " + (i % j)); System.out.println(" j % i = " + (j % i)); System.out.println("Vermischte Typen..."); System.out.println(" j + y = " + (j + y)); System.out.println(" i * x = " + (i * x)); Subtraktion Multiplikation Division Rest gemischte Datentypen 20
76 Ausgabe des Programms Variablenwerte... i = 37 j = 42 x = y = 7.22 Addieren... i + j = 79 x + y = Subtrahieren... i - j = -5 x - y = Multiplizieren... i * j = 1554 x * y = Dividieren... i / j = 0 x / y = Restwertbestimmung... i % j = 37 j % i = 5 Vermischte Typen... j + y = i * x =
77 Konstanten Werte sollen während des gesamten Programmablaufes gleich bleiben. Konstante ist kein weiterer Datentyp. Deklaration: Sie werden mit dem Schlüsselwort final deklariert. final Datentyp NAME = Wert; z.b.: final double PI = ; 22
78 Typumwandlungen Java ist streng typisiert, Variablen dürfen nur Werte vom deklarierten Typ zugewiesen werden. Vergleichsoperatoren vergleichen nur Ausdrücke gleichen Typs. Es gibt implizite und explizite Typumwandlung int ganz = 3; double komma = ganz; //implizit float komma2 = (float) ganz; //explizit 23
79 Implizite Typumwandlung In manchen Fällen wird automatisch vom Compiler umgewandelt (implizite Typumwandlung) byte, short => int => long int => float float => double char => int Beispiel: short s = 3; // s=3 int i = s; // i=3 float g = 3 + i; // g=6.0 int b = a ; // b=97* int i = z - a ; // i=25* *Ascii-Werte a=97, z=122 24
80 Implizite Typvergrößerungen Java nimmt diese Konversionen, falls nötig, bei Zuweisungen, Methoden- und Konstruktoraufrufen und bei der Auswertung von Ausdrücken implizit vor. Zuweisungskompartibilität: byte -> short -> int -> long -> float -> double Kein Informationsverlust! Ausnahme beim Übergang zu den Gleitkommazahlen: bei long -> float wird Genauigkeit verloren 25
81 Explizite Typumwandlung (Cast) Explizite Angabe des umzuwandelnden Typs double d = 7.99; int i = (int) d; /*i =7, da keine Nachkommastellen beim Datentyp int */ int zahl = 33000; short s = (short)zahl; //s= /*Zahl außerhalb des Wertebereichs binär = Die erste Ziffer wird nun als Minuszeichen interpretiert und ergibt den Wert im 2er-Komplement ( )*/ ACHTUNG! Die Typverkleinerung kann zu falschen Werten führen, wenn der Wertebereich des Zieldatentyps nicht ausreicht, den Wert darzustellen. 26
82 Exkurs: Zeichenketten (Strings) Achtung: Zeichenkette ist keine primitiven Datentyp sondern ein Objekt-Datentyp* Operationen: Verkettung, Ergebniswert ist wieder eine Zeichenkette + (Verkettung) Mögliche Werte: z.b. "Hallo World" = Kombinationen vom Typ char Initialisierung String s = "A short way to initialize"; (oder* String id = new String( "The long way" ); ) * Wird später genau behandelt 27
83 Exkurs: Unicode... Entspricht im unteren Bereich ASCII Bsp: char c = '\u0060';... 28
84 Nach dieser Einheit sollten Sie... Die verschiedenen Arten von Variablen kennen. alle primitiven Datentypen deren Initialisierung und gängigen Operationen. Variablen verschiedenen Typs definieren, deren Typ umwandeln, und damit rechnen können. Die Konventionen zur Bezeichnung von Variablen, Methoden und Klassen kennen. 29
85 Java Einführung Operatoren Kapitel 2 und 3
86 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2
87 Operatoren Abhängig vom Datentyp können bestimmte Operationen vorgenommen werden Operatoren haben ein oder mehrere Operanden Operand Operator Operand Die Ausführung der Operationen erfolgt nach einer festgelegten Reihenfolge (d.h. einige Operatoren haben Vorrang vor andern) 3
88 Operatoren unäre Operatoren (1 Operand): Bsp. ++ (erhöht den Wert des Operanden um 1, var++) oder logisches Nicht (! ) binäre Operatoren (2 Operanden): Bsp. + (Addition der beiden Operanden, var1 + var2) ternärer Operator (3 Operanden):?: als einziger ternärer Operator in Java erlaubt die verkürzte Implementierung einer if-else-verzweigung (i<j)? true : false 4
89 Operatoren im Überblick (Auszug) 1 = Zuweisung + - * / Addition/ Subtraktion Multiplikation/ Division Inkrement/ Dekrement Erhöht oder erniedrigt den Wert der Variablen um 1 % Modulo Liefert den Rest einer ganzzahligen Division (i<j)? ja : nein if-then-else Einziger ternärer Operator in Java. Kurzform der IF-Schleife 5
90 Operatoren im Überblick (Auszug) 2 <= < >= > ==!= Vergleich Vergleich (gleich, ungleich) Der Vergleich zweier Werte liefert true oder false zurück. Der Vergleich zweier Werte liefert true oder false zurück.! logisches NICHT Negiert den Wahrheitswert einer Aussage && logisches UND Verknüpft zwei Aussagen. Liefert true, wenn beide Aussagen true sind. logisches ODER Verknüpft zwei Aussagen. Liefert true, wenn eine der beiden Aussagen true sind. 6
91 Rangfolge der Operatoren in Java hoch niedrig. [] () ++ --! ~ instanceof new (data type) * / % + - << >> >>> < > ==!= & ^ &&? : += -= *= = &= ^= &= = <<= >>= >>>= Die Operatoren oben in der Tabelle werden zuerst ausgewertet. Operatoren in der gleichen Zeile haben die gleiche Rangfolge und werden von links nach rechts ausgewertet. Beim Ausdruck y = 6 + 4/2 wissen Sie jetzt anhand der Tabelle, dass die Division vor der Addition ausgewertet wird, deshalb ergibt sich für y ein Wert von 8. 7
92 Verkürzte Schreibweise x+=4; x*=10; ++a; --a; // x=x+4; // x=x*10; // a=a+1; // a=a-1; Achtung: a++ hat eine andere Funktionsweise als ++a m=n++; ist wie m=n; n++; m=++n; ist wie n++; m=n; 8
93 Der Zuweisungsoperator (primitive Datentypen) 1 Operator: = Syntax: Operand1 = Operand2 Weist dem Operanden auf der linken Seite den Wert des Operanden auf der rechten Seite zu. Beispiele: Variableninitialisierung: int i = 2; Arithmetische Operationen: i = i + 2; 9
94 Der Zuweisungsoperator (primitive Datentypen) 2 Primitive Datentypen: Zuweisung des Wertes entspricht der Kopie des Wertes in die neue Variable. var1 5 kopiere 5 var2 var2 = var1; 5 10
95 Der Zuweisungsoperator (primitive Datentypen) 3... int i1 = 19; // i1 = 19 int i2 = 47; // i2 = 47 i1 = i2; // i1 = 47 i1 = 27+13; // i1 = 40 i2 = 88; // i2 =
96 Der Vergleichsoperator (Primitive Datentypen)... int i1 = 19; int i2 = 19; boolean b = i1 == i2;// b ist true boolean c = i1 <= 9; // c ist false... 12
97 Logische Operatoren (Primitive Datentypen) Logisches UND && Logischen ODER (2x AltGr <) Negation! int x = 10; boolean norm = (x >= 9 && x <= 11); boolean result = (0<= x && x <= <= x && x <= 110); 13
98 Logische Operatoren b1 b2 NOT!b1 AND b1 && b2 OR b1 b2 true true false true true true false false false true false true true false true false false true false false Wahrheitstabelle 14
99 Nach dieser Einheit sollten Sie... Zuweisungsoperator, Vergleichsoperator und logische Operatoren kennen. Die Reihenfolge ihrer Ausführung kennen. 15
100 Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4
101 Inhalt dieser Einheit Merkmale und Syntax der verschiedenen Kontrollstrukturen: if else switch while do while for break, continue EXKURS: Rekursion 2
102 Kontrollstrukturen Alle Kontrollstrukturen eines Programms basieren auf Zustandsüberprüfungen, die die Werte true oder false liefern. z.b. PIN-Überprüfung des ATM: Wenn der richtige PIN eingegeben wurde, dann wird die Abhebung erlaubt, andernfalls verweigert. 3
103 Kontrollstrukturen Verschiedene Arten von Kontrollstrukturen Verzweigungen: if else, switch Iterationen: while, do while, for Sprunganweisungen: continue, break Exception Handling*: (try catch finally) throw *wird später behandelt! 4
104 if TRUE statements block 1 bool-expr statements FALSE In der hier dargestellten Anwendung wird eine Bedingung überprüft (boolexpr). Ist diese erfüllt (true), dann wird der unter statement1 beschriebene Programmcode ausgeführt, anschließend wird das Programm mit statement fortgesetzt. Ist die Bedingung nicht erfüllt (false), dann wird das Programm sofort mit statement fortgesetzt. 5
105 if Syntax und Beispiel reichekunden++ TRUE Balance> statements FALSE JavaSyntax: if (bool-expr) { statements1; } z.b: if (balance>100000){ reichekunden++; } 6
106 TRUE bool-expr statements1 statements FALSE statements2 if-else In der hier dargestellten Anwendung wird eine Bedingung überprüft (bool-expr). Ist diese erfüllt (true), dann wird der unter statement1 beschriebene Programmcode ausgeführt, anschließend wird das Programm mit statement fortgesetzt. Ist die Bedingung nicht erfüllt (false), wird der unter statement2 beschriebene Programmcode ausgeführt, anschließend wird das Programm mit statement fortgesetzt. 7
107 if-else Syntax und Beispiel TRUE Stimmt=true Pin==inputPin FALSE Fehlversuche++ JavaSyntax: if (bool-expr) { statements1; } else { statements2; } statements z.b: if (pin==inputpin){ stimmt = true; } else { fehlversuch++; } 8
108 if-else Beispiel In der hier dargestellten Anwendung wird eine Bedingung überprüft (bool-expr1). Ist diese erfüllt (true), dann wird der unter statement1 beschriebene Programmcode ausgeführt, anschließend wird das Programm mit statement fortgesetzt. Ist die Bedingung bool-expr1 nicht erfüllt (false), dann wird eine weitere Bedingung (bool-expr2) überprüft. TRUE statement1 bool-expr1 FALSE TRUE FALSE bool-expr2 statement2 statement3 Ist diese Bedingung erfüllt, dann wird der unter statement2 beschriebene Programmcode ausgeführt, anschließend wird das Programm mit statement fortgesetzt. Andern-falls wird der unter statement3 beschriebene Programmcode ausgeführt und das Programm mit statement fortgesetzt. statement 9
109 if-else Beispiel if-else kann beliebig tief verschachtelt werden. TRUE statement1 bool-expr1 statement FALSE statement2 TRUE bool-expr2 FALSE statement3... if (bool-expr1) { statement1; } else if (bool-expr2) { statement2; } else { statement3; } statement;... 10
110 switch switch case 1 TRUE statement1 FALSE FALSE case 2... TRUE statement2 default statement 11
111 switch (forts.) 1. An die switch Anweisung wird eine Variable (integral selector) übergeben (z.b. int) 2. case1 überprüft ob der Wert der Variable mit dem angegebenen Wert übereinstimmt. 3. Ist dies der Fall, dann wird die Anweisung in statement1 ausgeführt. 4. Dann überprüft case2 ob der Wert der Variable mit dem angegebenen Wert übereinstimmt. 5. Ist dies der Fall, dann wird die Anweisung in statement2 ausgeführt. 6. Dann wird der Vergleich der Variablen in case3 analog fortgesetzt. 7. Ist keine der angegebenen Bedingungen erfüllt, dann werden die Anweisungen vom Default-Zweig ausgeführt. (Der Default-Zweig ist optional) 12
112 switch - Syntax switch TRUE case 1 FALSE TRUE case 2 FALSE... default statement1 statement2 statement switch(integral-selector){ case integral-value1: statement1; break; case integral-value2: statement2; break;... default: statement; } (break verhindert, dass alle restlichen Statements ausgeführt werden.) 13
113 switch (Bsp.) int month = 12; switch (month) { case 1: System.out.println("Jan"); break; case 2: System.out.println("Feb"); break; case 12: System.out.println("Dec"); break; default: System.out.println("error"); break; } (implizit: Wenn month == 1, dann gibt Jan aus!) 14
114 Iterationen Mit Iterationen (=Schleifen) kann der Programmfluss von Anweisungen, die mehrmals hintereinander durchgeführt werden sollen, gesteuert werden. Die Schleifen werden solange durchlaufen, bis ein Abbruchkriterium erfüllt ist. Das Abbruchkriterium befindet sich am Kopf oder am Fuß der Schleife. z.b. PIN-Eingabe des Kunden: Fordere den Kunden zur Eingabe der PIN auf, bis die richtige PIN bzw. 3* eine falsche PIN eingegeben wurden. 15
115 while While-Schleife bool-expr FALSE Die Anweisungen der while-schleife werden ausgeführt, solange die boolexpr erfüllt (=true) ist. Die Überprüfung der Bedingung findet am Anfang der Schleife statt. TRUE statements 1 statements JavaSyntax: while (bool-expr){ statements1; } 16
116 while Beispiel i<zielwert FALSE int zielwert = 100; int i = 1; while (i < zielwert) { System.out.print("i="+i+, ); i++; } TRUE Print; i++ Ausgabe: i=1,i=2,i=3,,i=99 17
117 do-while statement1 Die Anweisungen der do-while-schleife werden ausgeführt, bis die bool-expr nicht mehr erfüllt ist. Die Überprüfung der Bedingung findet am Ende der Schleife statt. Sie wird somit mindestens einmal durchlaufen. bool-expr FALSE TRUE JavaSyntax: do { statement1; } while (bool-expr) 18
118 do-while Beispiel int zielwert = 1000; int i = 1; do { System.out.println("i="+i+, ); i++; } while (i < zielwert); Print; i++ TRUE Ausgabe: i=1, i=2, i=3, i=999, i<zielwert FALSE 19
119 for initialization step statements Die Anweisungen der for-schleife werden aus-geführt, solange die bool-expr erfüllt ist. Sie wird idr eingesetzt, um eine bekannte, d.h. im vorhinein festgelegte Anzahl von Schritten mit einem Zähler durchzuführen. bool-expr TRUE FALSE JavaSyntax: for (initialization; bool-expr; step){ statements; } 20
120 for Beispiel int zielwert = 4; for (int i = 1; i < zielwert; i++) { System.out.println(i+, ); } Ausgabe: 1, 2, 3, i=1 i<zielwert step TRUE print FALSE 21
121 For (Ergänzung) Java Syntax bei Verwendung von mehreren Zählvariablen (gleichen Typs!): for (initialization; bool-expr; step) { statements; } for (int i=0, j=10; i<=10; i++,j--) { System.out.println( i= + i + i inkrementiert ); System.out.println( j= + j + j dekrementiert ); } Ausgabe: i=0 i inkrementiert j=10 j dekrementiert i=1 i inkrementiert i=9 j dekrementiert 22
122 Endlosschleifen Problemfall: Endlosschleifen (Abbruchbedingung kann nie erfüllt werden!) for (int i=2; i>=1; i = i + 2) { System.out.println(i); } i = 10 while (i >= 1){ System.out.println(i); i++; } 23
123 Endlosschleifen 2 Soll eine Endlosschleife programmiert werden: while (true) { // Code } 24
124 Iterationen Überblick Abfrage Durchlauf Anzahl der Durchläufe while zu Beginn 0, 1 oder mehrmals do-while am Ende 1 oder mehrmals for zu Beginn 0, 1 oder mehrmals unbestimmt unbestimmt festgelegt 25
125 for Beispiel Fakultät Berechnen der Fakultät n! = 1*2*3* *n einer Zahl mittels For-Schleife: class Fakultaet{ public static void main(string[] arg){ int n = 20; long f = 1; for(long i = 2; i<=n; i++){ f = f * i; } System.out.println(n + "! = "+ f); } } 26
126 Sprunganweisungen Sprunganweisungen können in allen Schleifen verwendet werden: break bricht die Schleife ab continue setzt die Schleife mit dem nächsten Durchgang fort, d.h. der Rest dieses einen Durchgangs wird übersprungen. Um Lesbarkeit und Nachvollziehbarkeit des Codes zu gewährleisten empfehlen wir, Sprunganweisungen nicht einzusetzen! 27
127 Sprunganweisungen Beispiel class Sprung { public static void main (String[] args) { int i=0,j=0; while(i<10){ i++; System.out.println("1. "+ i); if(i==7) break; } while(j<10){ j++; if(j<7) continue; System.out.println("2. "+j); } } Ausgabe:
128 Nach dieser Einheit sollten Sie... die Möglichkeiten bedingter Anweisungen kennen, die verschiedenen Schleifen kennen, ihre Eignung für spezielle Anforderung kennen, und alle Konstrukte in eigenen Programmen anwenden können. 29
129 Lernkontrolle Schreiben Sie ein kleines Programm, dass zu arabischen Zahlen die entsprechende römische Zahl ausgibt. Verwenden Sie dazu verschiedenartige Kontrollstrukturen. Anleitung: Beginnen Sie zuerst mit einer vereinfachten Problemstellung (I, V, X) und erweitern Sie diese später. 30
130 Lernkontrolle Fibonacci Sequence Versuchen Sie die Ausgabe dieses Programms zu ermitteln. class Fibonacci { public static void main (String[] args) { /** Ausgeben der Fibonacci Zahlen kleiner 50 */ int lo = 1; int hi = 1; System.out.println(lo); while (hi < 50) { System.out.println(hi); hi = lo + hi; lo = hi - lo; } } } 31
131 Exkurs: Rekursion* * benötigt Methoden, die später durchgenommen werden Methode bool-expr TRUE FALSE Die Rekursion stellt eine Alternative zur Verwendung von Schleifen dar. Rekursion bezeichnet den Aufruf der eigenen Methode mit anderem Parameter. Analog zu den Schleifen darf dieser Aufruf nur dann durchgeführt werden, wenn eine bestimmte Bedingung erfüllt ist. Methodenaufruf 32
132 Rekursion-Beispiel Berechnen der Fakultät einer Zahl mittels Rekursion (siehe Fakultaet.java): static int fakulrekursiv(int i){ if (i > 1) return i * fakulrekursiv(i-1); else return 1; } (Kapitel 14 in Sprechen Sie Java ) 33
133 Rekursion-Beispiel (forts.) Aufruf Rückgabe: 6 fakulrekursiv(3) Aufruf fakulrekursiv(3-1) Aufruf fakulrekursiv(2-1) Rückgabe: 1 Rückgabe: 2 34
134 Java Einführung Methoden Kapitel 6
135 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden Grundzüge der Programmierung - Hahsler 2
136 Methoden Methoden gehören logisch zusammen und lösen einen bestimmte Teilaufgabe. Methoden werden zur Lösung der Teilaufgabe aufgerufen. In Klassen werden Methoden eingesetzt um das Verhalten der Klasse abzubilden. KlassenName -Variablen +Methoden() Grundzüge der Programmierung - Hahsler 3
137 Deklaration von Methoden Methoden haben eine Namen (Bezeichner) wie Variablen. Methoden haben Parameter. Das sind Werte, die beim Aufruf einer Methode übergeben werden. static void printmax (int x, int y) { } if (x>y) { System.out.print(x) } else { System.out.print(y) } Signatur Grundzüge der Programmierung - Hahsler 4
138 Aufruf von Methoden Durch Angabe von Name und Parameter der Methode: public static void main (String[] arg) { int a=5; printmax (a, 9); } void printmax (int x, int y){ if(x>y) {... } Beim Aufruf wird den formellen Parametern (x, y) der Wert der aktuellen Parametern (a, 9) zugewiesen. x und y können nur in der Methode printmax verwendet werden. Grundzüge der Programmierung - Hahsler 5
139 Deklaration von Methoden mit Rückgabewert static int max (int x, int y) { if (x>y) { return(x); } else { return(y); } } Der Rückgabewert ist hier als int definiert. return legt den Rückgabewert fest und verlässt die Funktion. Es kommen alle Datentypen für den Rückgabewert in Frage. Das Schlüsselwort void bedeutet: kein Rückgabewert Grundzüge der Programmierung - Hahsler 6
140 Aufruf von Methoden mit Rückgabewert Durch Angabe von Name und Parameter der Methode: public static void main (String[] arg) { int a=15; int maximum; maximum = max(a, 9); System.out.println(maximum); } int max (int x, int y){ if(x>y) { return(x); } else { return(y); } } Bei der Rückgabe wird der Rückgabewert (Wert von x, 15) als Ergebnis der Funktion max(15,9) der Variable maximum zugewiesen. Grundzüge der Programmierung - Hahsler 7
141 Beispiele: Aufrufen von Methoden // Def. der Methode max von der vorherigen Folie int a=15; int m; m = max(a/5,9); m = max(a,7) + 19 if (max(-a,23) == 35) {... } Grundzüge der Programmierung - Hahsler 8
142 Rückgabewerte Als Rückgabewert ist ein einzelnes Element eines Datentyps (auch eine Instanz) möglich. z.b.: int addiere(int a, int b) {...} Hat die Methode keinen Rückgabewert, wird das Schlüsselwort void verwendet. z.b.: void ausgeben(string text) {...} Grundzüge der Programmierung - Hahsler 9
143 Lokale Namen Lokale Namen (Methoden, Variablen) sind nur in der Methode (im Block) verfügbar, in der sie deklariert wurden static void machewas(int x) { int y; } // x und y sind nur in dieser Methode verfügbar... Grundzüge der Programmierung - Hahsler 10
144 Gültigkeitsbereich von Variablen Gültigkeitsbereich: ist jener Bereich im Programm, in dem auf eine Variable über den Namen zugegriffen werden kann 1. Sichtbarkeit: Block (+ Unterblöcke), in dem die Variable deklariert wurde. 2. Lebensdauer: werden bei betreten des Blocks angelegt und bei Verlassen wieder freigegeben. Grundzüge der Programmierung - Hahsler 11
145 Bsp: Sichtbarkeit und Lebensdauer class Prog { static int x; static int y;... static void machen(){ int x; while(...) { int z; } } } x Global in Klasse y x lokal z Verdeckt (Sichtbarkeit) Lebensdauer Grundzüge der Programmierung - Hahsler 12
146 Überladen von Methoden Allgemein gilt: In einem Block deklarierte Namen müssen unterschiedlich sein. Bei Methoden gibt es eine Ausnahme: Zwei Methoden dürfen den gleichen Namen haben, wenn sich durch ihre Parameterliste (Art und Anzahl) unterscheidet. Rückgabewert und Name der Parametervariablen sind egal beim Überladen egal! static void print (int x) {... } static void print (double x) {... } static void print (int x, int y) {... } Grundzüge der Programmierung - Hahsler 13
147 Bsp: Aufruf überladener Methoden class MaxProgramm { static int max (int x, int y) { if (x>y) { return(x); } else { return(y); } } static int max (int x, int y, int z) { int max; max = max(z, max(x,y)); return max; } } public static void main (String[] arg) { System.out.println(max(45,13,98)); } Die richtige Methode wird beim Aufruf über die Signatur automatisch ausgewählt. Grundzüge der Programmierung - Hahsler 14
148 Fehler beim Überladen von Methoden 1. static int addiere (int a, int b) {...} 2. static int addiere (int a, int b, int c) {...} 3. static double addiere (double a, double b) {...} 4. static double addiere (int x, int y) {... } Die Methoden in Zeile 1 und 4 können nicht gemeinsam deklariert werden, da beide die gleiche Signatur addiere(int,int) haben. Der Compiler bricht die Übersetzung mit einer Fehlermeldung ab. Grundzüge der Programmierung - Hahsler 15
149 Nach dieser Einheit sollten Sie... Methoden deklarieren und aufrufen können Über die Sichtbarkeit und Lebensdauer von Variablen bescheid wissen Das überladene von Methoden kennen Grundzüge der Programmierung - Hahsler 16
150 Java Einführung Arrays Kapitel 7
151 Inhalt Eindimensionale Arrays Erzeugung Benutzung Zuweisung Beispiel Mehrdimensionale Arrays Grundzüge der Programmierung - Hahsler 2
152 Arrays Oft benötigt man nicht nur Einzelwerte (eine Variable) sondern eine Wertemenge, die gemeinsam verarbeitet werden Wertmengen werden oft in Tabellen oder Listen angeordnet Ein Array ist eine Tabelle von gleichartigen Elementen (Zahlen, Zeichen,...) Grundzüge der Programmierung - Hahsler 3
153 Eindimensionales Array a[0] a[1] a[2] a[3]... a[9] a... Ein Array hat einen Namen (a) Die einzelnen Elemente können durch den Index ([0],[1],...) angesprochen werden Die einzelnen Elemente verhalten sich wie namenlose Variablen Die Größe wird einmal festgelegt und ist dann fix. Grundzüge der Programmierung - Hahsler 4
154 Erzeugung eines Arrays Deklaration des Namens (Arrayvariable, Zeiger) int[] a; float[] vector; Erzeugung des Arrays a = new int[5]; // Array mit Index a a[0] a[1] a[2] a[3] a[4] Name Array Grundzüge der Programmierung - Hahsler 5
155 Benutzung eines Arrays Arrayelemente werden durch den Index angesprochen und können wie normale Variablen verwendet werden int i=1, j=3; a[3]=0; a[2*i+1]=a[j]; // i und j sind int a[max(i,j)]=100; // max ist eine Fkt. Zur Laufzeit wird geprüft ob der verwendete Index gültig ist (ob es das Element gibt) a.length enthält die Länge des Arrays Grundzüge der Programmierung - Hahsler 6
156 Zuweisung eines Arrays Einer Arrayvariable (Name des Arrays) dürfen alle Arrays des passenden Typs zugewiesen werden int[] a; a=new int[5]; int[] b; a b a[0] a[1] a[2] a[3] a[4] null b=a; a b a[0] a[1] a[2] a[3] a[4] b[0] b[1] b[2] b[3] b[4] Grundzüge der Programmierung - Hahsler a und b sind zeigen auf (referenzieren) das gleiche Array! 7
157 Freigabe von Arrays Java verwendet zur Freigabe von Speicher eine automatische Speicherbereinigung (Garbage Collection) Wenn kein Zeiger (Arrayvariable) mehr auf das Array zeigt, wird das Array gelöscht die Arrayvariable wird verändert a=null; oder a=b; die Arrayvariable verlässt den Bereich ihrer Lebensdauer Grundzüge der Programmierung - Hahsler 8
158 Initialisierung von Arrays Arrays können schon bei der Deklaration initialisiert werden int[] primes = {2, 3, 5, 7, 11}; Später können die Elemente nur noch einzeln (über den Index) zugewiesen werden Grundzüge der Programmierung - Hahsler 9
159 Typische Schleife für Arrays class Primes { public static void main (String[] args) { int[] primes = {2, 3, 5, 7, 11}; } } for (int i = 0; i < primes.length; i++) { } System.out.print(primes[i] + " "); Grundzüge der Programmierung - Hahsler 10
160 Bsp: Sequentielle Suche Bei der sequentiellen Suche werden alle Elemente durchgegangen, bis das richtige Element gefunden wird static int search(int[] a, int x) { int pos = a.length-1; while (pos>=0 && a[pos]!=x) { pos--;} return pos; } static void main (String[] args) { int[] b= { 27, 11, 19}; int c= search(b,11); } Grundzüge der Programmierung - Hahsler Achtung: das Array wird nicht kopiert, es wird nur eine "Referenz" auf das Array übergeben! 11
161 Mehrdimensionales Array Mehrdimensionale Arrays sind Arrays von Arrays Bsp: Zweidimensionales Array (Matrix) int[][] a = new int[2][3]; a a[0] a[0][0] a[0][1] a[0][2] a[1] a[1][0] a[1][1] a[1][2] Grundzüge der Programmierung - Hahsler 12
162 Benutzung Mehrdimensionaler Array Initialisierung int[][] a = { {1, 2, 3} {4, 5, 6} }; Länge a.length a[0].length // Zeilen // Spalten Grundzüge der Programmierung - Hahsler 13
163 Nach dieser Einheit sollten Sie... Arrays erzeugen und über den Index benutzen können Wissen was der Arrayname ist und was bei der Zuweisung von Arraynamen passiert Grundzüge der Programmierung - Hahsler 14
Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4
Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4 Inhalt dieser Einheit Merkmale und Syntax der verschiedenen Kontrollstrukturen: if else switch while do while for break, continue EXKURS: Rekursion 2 Kontrollstrukturen
MehrJava Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
MehrJava Einführung Programmcode
Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:
MehrJava Einführung Methoden. Kapitel 6
Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden
MehrJava Einführung. SOFTWARE-ENTWICKLUNG Kapitel 1
Java Einführung SOFTWARE-ENTWICKLUNG Kapitel 1 Inhalt dieser Einheit Phasen eines Softwareprojekts Algorithmus Überblick über (Programmier-) Sprachen Wie funktioniert JAVA? 2 Software Engineering Fachgebiet
MehrJavaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden
Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrTeil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen
Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für
Mehr3. Java - Sprachkonstrukte I
Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken,
MehrVorkurs Informatik WiSe 16/17
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016
MehrInstitut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile
MehrEinführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.0 Einfache Java Programme Struktur Namen Output 2 Graphische Darstellung
Mehr2 Programmieren in Java I noch ohne Nachbearbeitung
1 2 Programmieren in Java I noch ohne Nachbearbeitung 2.1 Was sind Programme? Eingabe = Verarbeitung = Ausgabe Die Eingabe kann sein Konstanten im Quelltext; Kommandozeilenparameter oder interaktive Eingabe
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen
MehrJava 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8
Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen
MehrProgrammiervorkurs Einführung in Java Tag 1
Programmiervorkurs Einführung in Java Tag 1 Sebastian Glutsch SS 2018 namen Inhaltsübersicht Vorkurs Tag 1:,, en,, Einführung Tag 2: Boolesche Ausdrücke,, If-Abfragen, Switch-Case Tag 3: Arrays, (Do-)While-Schleife,
Mehr3. Java - Sprachkonstrukte I
Lernziele 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken, Typkonversionen Sie kennen die grundlegensten Bausteine
MehrGrundlagen der Modellierung und Programmierung, Übung
Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak
MehrKapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für
Mehr3. Java - Sprachkonstrukte I
84 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken, Typkonversionen Namen und Bezeichner 85 Ein Programm (also Klasse)
MehrVorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
MehrJava I Vorlesung Imperatives Programmieren
Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.
MehrJava Einführung Operatoren Kapitel 2 und 3
Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig
MehrProjekt 3 Variablen und Operatoren
Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.
MehrGrundlagen der Programmierung Teil1 Einheit III Okt. 2010
Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den
MehrGedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.
Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
MehrObjektorientierte Programmierung OOP Programmieren mit Java
Objektorientierte Programmierung OOP Programmieren mit Java 5.1 Elementare Anweisungen 5.1.1 Ausdrucksanweisung 5.1.2 Leere Anweisung 5.1.3 Blockanweisung 5.1.4 Variablendeklaration 5.2 Bedingungen 5.2.1
MehrArbeitsblätter für die Lehrveranstaltung OOP JAVA 1
Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage
MehrWo sind wir? Übersicht lexikale Struktur von Java
Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
Mehr4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen
. Gleitkommazahlen In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen Umrechnen von Einheiten und Währungen Jede Zahl x Q mit x 0 lässt sich folgendermaßen schreiben: x = s m e mit
MehrInhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1
Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage
MehrUnterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
MehrÜbungen zur Vorlesung Wissenschaftliches Rechnen I
Übungen zur Vorlesung Wissenschaftliches Rechnen I Nicolas Gauger, René Lamour, Hella Rabus Wintersemester 2007/2008 Programmierung - Einführung Programmierung - Einführung Berechnung einer Formel y =
MehrInformatik I - Einstiegskurs
Informatik I - Einstiegskurs Dr. Henrik Brosenne Georg-August-Universität Göttingen Institut für Informatik Basiert auf dem Einstiegskurs im Wintersemester 2009/10 von Markus Osterhoff Wintersemester 2012/13
MehrEinführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
MehrHello World! Eine Einführung in das Programmieren Variablen
Hello World! Eine Einführung in das Programmieren Variablen Görschwin Fey Institute of Embedded Systems Hamburg University of Technology Slide 2 Wie werden Daten in Programmen gespeichert und manipuliert?
MehrEinführung in die Programmierung
Einführung in die Programmierung by André Karge Übung - Operatoren, Methoden, Primitives 25. Oktober 2018 Einführung in die Programmierung WS18/19 André Karge 1/29 Notizen Standard Linux Befehle: http://images.linoxide.com/linux-cheat-sheet.pdf
MehrJava Lexikalische Struktur
Informatik 1 für Nebenfachstudierende Grundmodul Java Lexikalische Struktur Kai-Steffen Hielscher Folienversion: 19. Dezember 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel
MehrIntensivübung zu Algorithmen und Datenstrukturen
Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche
MehrPROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy
PROCESSING EINE ZUSAMMENFASSUNG Created by Michael Kirsch & Beat Rossmy INHALT 1. Typen und Operatoren 1. Datentypen 3. Klassen und Objekte 1. Klassen und Objekte 2. Operatoren 2. Konstruktor 3. Typkonversion
MehrPrimitive Datentypen
Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.
MehrJAVA-Datentypen und deren Wertebereich
Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).
Mehr1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.
Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten
Mehr1. Erläutern Sie die Aufgaben von Datentypen in der imperativen Programmierung.
1. Erläutern Sie die Aufgaben von Datentypen in der imperativen Programmierung. Beschreiben Sie ferner je einen frei gewählten Datentyp aus der Gruppe der skalaren und einen aus der Gruppe der strukturierten
MehrInformatik Vorkurs - Vorlesung 2
Informatik Vorkurs - Vorlesung 2 Variablen, Arrays, Zahlensysteme Torben Achilles, 9. Oktober 2018 Inhalt Variablen & Datentypen Arrays Zahlensysteme 9. Oktober 2018 Torben Achilles Informatik Vorkurs
MehrHello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.
Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike
MehrBrückenkurs Programmieren
Brückenkurs Programmieren Verzweigungen, Operatoren, Schleifen, Arrays Christopher Schölzel Technische Hochschule Mittelhessen 01.10.2013 Christopher Schölzel (THM) Brückenkurs Programmieren 01.10.2013
MehrAnweisungen zur Ablaufsteuerung
Anweisungen zur Ablaufsteuerung if-else switch while do-while for Ausdrücke Ein Ausdruck ist eine Folge von Variablen, Operatoren und Methodenaufrufen, der zu einem einzelnen Wert ausgewertet wird. Operanden
MehrSprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg
Sprachkonstrukte Einführung in Java Folie 1 von 20 12. Mai 2011 Ivo Kronenberg Inhalt Kommentare Identifier (Bezeichner) Variablen Numerische Ausdrücke und Typen Kontrollstrukturen Verzweigungen Bedingungen
MehrJava-Applikationen (Java-Programme)
Java-Applikationen (Java-Programme) Eine erste Applikation: 1 2 3 4 5 6 7 8 9 10 // Quelltext HalloWelt.java // Programm gibt den Text Hallo Welt aus public class HalloWelt public static void main(string[]
Mehr1.3 Welche Schritte werden bei der Programmerstellung benötigt? 1.5 Was sind Variablen im Kontext der Programmierung?
Fragenkatalog ESOP 1 Einleitung 1.1 Was ist Programmieren? 1.2 Was ist ein Programm? 1.3 Welche Schritte werden bei der Programmerstellung benötigt? 1.4 Was ist ein Algorithmus? 1.5 Was sind Variablen
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrOrganisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
MehrJavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
MehrVorkurs WS 2014/15 der Fachschaft 07. Eine Einführung in die Softwareentwicklung anlässlich des Vorkurses für die Erstsemester im WS2014/15
Eine Einführung in die Softwareentwicklung anlässlich des Vorkurses für die Erstsemester im WS2014/15 1. Einführung Was ist Programmieren eigentlich? Zusammengestellt von der Fachschaft 07 Programmiersprachen
MehrSelbsteinstufungstest Vorkurs Programmieren
VPR Selbsteinstufungstest Vorkurs Programmieren Zeit 90 Minuten Aufgabe 1: Einzigartig (10 Punkte) Schreiben Sie eine Methode die angibt, ob ein String str1 in einem zweiten String str2 genau einmal vorkommt.
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrProgrammieren und Problemlösen Java-Sprachkonstrukte. Java-Sprachkonstrukte. Übung Altersberechner. Namen und Bezeichner. Namen und Bezeichner
Übung Altersberechner Dennis Komm Programmieren und Problemlösen public class AgeCalc { public static void main(string[] args) { Out.print("Enter your year of birth: ")... } } Ausgabe: "In 2020, you will
Mehr2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen
Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen
MehrSchwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme
Schwerpunkte Vollständige und unvollständige Auswertung 8. Ausdrücke, Operatoren (einfache Typen) Teil 1 Seiteneffekte Overloading: Überladung von Operatoren Implizite und explizite (cast) Typumwandlung
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente
MehrJAVA 06: Gemischte einfache Fragen zu Java
Lernkartenkurs JAVA 06: Gemischte einfache Fragen zu Java panitz Zusammenfassung In diesem Kurs geht es um Terminologie und Grundzüge der Programmiersprache Java. Dieses betrifft sowohl Aspekte der Programmierung
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Wiederholung Anweisungen durch Methodenaufrufe Ausgabe
MehrOperatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2011/2012 1 / 25 Operatoren für elementare Datentypen Bedingte Schleifen 2 / 25 Zuweisungsoperator Die Zuweisung von Werten an Variablen
MehrEinführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrPrimitive Datentypen. Dr. Wolfgang Süß Thorsten Schlachter
Dr. Wolfgang Süß Thorsten Schlachter Java-Bezeichner Für Variablen, Methoden, Klassen und Schnittstellen werden Bezeichner auch Identifizierer (von engl. identifier) genannt vergeben. Ein Bezeichner ist
Mehr1. Der Einstieg in Java. Was heißt Programmieren?
1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung
MehrEinführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin
Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm
MehrTag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)
MehrÜbungsblatt 1. Java Vorkurs (WS 2017)
Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die
MehrFACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung
C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen
MehrKapitel 2: Grundelemente der Programmierung
Kapitel 2: Grundelemente der Programmierung Variablen Variablen sind Speicherbereiche im Arbeitsspeicher Anhand eines Namens kann man Werte hineinschreiben und auch wieder auslesen Variablen besitzen ein
MehrProf. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Was sind Operatoren Ein Operator ist eine in die Programmiersprache eingebaute Funktion, die
MehrKapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp ZAIK Universität zu Köln WS 07/08 1 / 6 Datentypen Arten von Datentypen
MehrOrganisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online
Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable
1 Kapitel 3 Grunddatentypen, Ausdrücke und Variable 2 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen Datenstrukturen werden mit einem
Mehr1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster
1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:
MehrAusdrücke der Programmiersprache Java
Ausdrücke der Programmiersprache Java Hamburg 1 Ablauf des Vortrags 01. Eigenschaften von Ausdrücken 02. Arithmetische Operatoren 03. Relationale Operatoren 04. Logische Operatoren 05. Bitweise Operatoren
MehrProgrammierung. Grundlagen. Tina Wegener, Ralph Steyer. 2. Ausgabe, 1. Aktualisierung, April 2014
Programmierung Tina Wegener, Ralph Steyer 2. Ausgabe, 1. Aktualisierung, April 2014 Grundlagen PG 6 Programmierung - Grundlagen 6 Grundlegende Sprachelemente In diesem Kapitel erfahren Sie was Syntax und
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt!! 24.03.2014 ORGANISATORISCHES 09:00-10:30! Täglich Übungen zur Vertiefung! Laptop hier nicht erforderlich! Linux, OS X! Freitag: http://hhu-fscs.de/linux-install-party/
MehrRepetitorium Programmieren I + II
Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case
MehrGliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik
Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.
MehrAnwendungsentwicklung mit Java. Grundlagen der OOP, Variablen, Klassen und Objekte, Methoden
Anwendungsentwicklung mit Java Grundlagen der OOP, Variablen, Klassen und Objekte, Methoden Erste Schritte 2 Programmaufruf Ausgabe 3 Aufbau eines Java Programms (1) Paketdeklaration Klassendeklaration
MehrÜBUNGS-BLOCK 7 LÖSUNGEN
ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i
MehrEinführung in Java. Ausgewählte Quellen zu Java
Einführung in Java Wesentliche Eigenschaften und Merkmale der Programmiersprache Java Prof. Dr. Stefan Böttcher Universität Paderborn im Rahmen der Vorlesung: Webbasierte Informationssysteme SS 2004 Einführung
MehrÜbungen Informatik I. JAVA - Einführung. elga Gabler, Holger Vogelsang, Christian Pape. Übungen Informatik 1 Folie 1
Übungen Informatik I JAVA - Einführung Übungen Informatik 1 Folie 1 Warum Java? Java ist derzeit die Programmiersprache für das Internet. Java ist ein Programmierkonzept der Zukunft. Objekt-orientierte
MehrAlgorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems
4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um
Mehr