Programmieren in Java
|
|
- Kornelius Krämer
- vor 7 Jahren
- Abrufe
Transkript
1 Zusammenfassung: Imperative Programmierung
2 2 Wichtige Begriffe Syntax: Regeln nach denen ein beliebiger Satz Teil einer Sprache ist Compiler/Interpreter versteht nur syntaktisch korrekte Sätze Semantik: Bedeutung/Aussage eines Satzes der Sprache Compiler/Interpeter kann den Sinn eines Satzes nicht feststellen Token: Ein Baustein eines Satzes Separator : Trennzeichen, welche die Bausteine eines Satzes separieren Es kann bestimmte Zeichen zur Auszeichnung eines Satzendes geben Es gibt Trennzeichen mit Semantik (z.b. Klammern in math. Ausdrücken) Satz: Eine syntaktisch korrekte, ausführbare und alleinstehende Anweisung in der gewählten Sprache Ausdruck: Teil eines Satzes, der nicht allein stehen kann und zu bestimmten Wert auswertet Codeblock: Aggregation mehrerer Sätze, die eine semantische Einheit bilden
3 3 Datentypen Programme basieren immer auf der Manipulation von bestimmten Daten Daten werden beschrieben durch konkrete Werte 27: Eine natürliche ganze Zahl größer Null 'A': Ein Buchstabe "Hello World": Eine Buchstabenkette Je nach Wert ändert sich die Semantik eines Satzes/Ausdruckes: ==? 'A' + 'B' ==? Programmiersprachen erwarten das Werte kategorisierbar sind Ein Datentyp beschreibt eine Menge von Werten der gleichen Art Der Datentyp legt fest, was als Operation auf seinen Werten erlaubt ist Nur so kann festgestellt werden, ob ein Satz syntaktisch korrekt ist
4 4 Datentypen Primitiv byte: { (8 Bit) short: { (16 Bit) int: { (32 Bit) long: { (64 Bit) (notiert mit L, z.b. 27L) float: {-1,4E ,4E+38 (32 Bit) (notiert mit f, z.b. 27.5f) double: {-4,9E ,7E+308 (64 Bit boolean: {true, false char: Unicode-Zeichen (16 Bit) Zusammengesetzt (aktuell) Array: Endliche Menge aus Werten eines bestimmten Typs String: Menge aller Buchstabenkette A { a a T 31 String { c1... cn c char, n int( 2 1)
5 5 Coercion/Cast Der Compiler wandelt automatische Werte eines kleineren Datentyps in einen größeren (genannt: implizite Typumwandlung, Coercion) Typ (Wert) Mögliche implizite Umwandlung (Variablentyp) byte short char int long float short, int, long, float, double int, long, float, double int, long, float, double long, float, double float, double double Es gibt keine Coersion bei zusammengesetzten Datentypen! Umgekehrt kann es zum Genauigkeitsverlust kommen, was den Compiler daran hindert, die Umwandlung automatisch durchzuführen In diesem Fall, muss der Typ explizit umgewandelt werden (genannt Cast) ( DATENTYP ) WERT AUSDRUCK BEZEICHNER
6 6 Variablen/Deklaration Deklaration einer Variablen: Falls DATENTYP!= Array DATENTYP Bezeichner ; Falls Array BASISTYP [] Bezeichner ; Zuweisung Falls DATENTYP primitive Bezeichner = WERT AUSDRUCK DATENTYP ; Falls DATENTYP == Array BASISTYP BASISTYP Falls DATENTYP == String [] Bezeichner = { WERT, WERT, ; [] Bezeichner = new BASISTYP [ SIZE ] ; String Bezeichner = " STRING " ;
7 7 Scope Jede Variable hat einen Gültigkeitsbereich, genannt Scope In Java bilden Codeblöcke Gültigkeitsbereiche, die schachtelbar sind BLOCK = PROLOG { SATZ; BLOCK Der Scope einer Variablen ist der Codeblock, in dem sie definiert wurde { int number = 27; { int secondnumber = number * number ; float number = 37f; float secondnumber = f; Java ist statisch typisiert // Error! // Ok! SCOPE II SCOPE I Innerhalb eines Scopes kann es keine Deklaration zweier Variablen mit gleichen Namen geben Wenn eine Variable für Werte eines bestimmten Typs deklariert wurde, kann sie innerhalb ihres Scopes keinen Wert eines anderen Typs annehmen
8 8 Heap vs. Stack Ein Programm läuft im flüchtigen Speicher des Zielsystems Der zugeteilte Programmspeicher ist aufgeteilt in drei Bereiche Programmspeicher: Enthält den Programmcode Stack: Speicher, der linear mit dem Programm auf- und abgebaut wird Enthält die Werte der Variablen des aktuellen Scopes Heap: Random-Access-Speicher Management des Speichers erfolgt durch das Programm Enthält Daten losgelöst vom Scope einer Variablen
9 9 Pointer Variablen sind Platzhalter für bestimmte Werte Sobald ein Programm eine Variable stößt, wird diese ausgewertet Bei primitiven Variablen, wird diese durch den aktuellen Wert ersetzt Werte zusammengesetzter Datentypen werden immer mit new erzeugt Die Operator new veranlasst, das genügend Platz zum Speichern des Wertes auf dem Heap reserviert wird Eine Variable eines zusammengesetzten Datentyps verweist auf den Speicherbereich, der den Wert enthält Eine solche Variable wird Pointer genannt und ihr Wert ist eine Referenz Erst durch den Dereferenzierung-Operator erhält man Zugriff auf den Wert des zusammengesetzten Datentyps Bezeichner. Attribute Bezeichner. Methode ( Wert Ausdruck, ) Der spezielle Wert null kann nur für Variablen zusammengesetzter Datentypen verwendet werden und bedeutet noch kein Speicher referenziert
10 10 Kontrollstrukturen Kontrollstrukturen bestimmen den Programmverlauf Bedingte Ausführung if ( BEDINGUNG ) { switch ( AUSDRUCK ) { SATZ; BLOCK case LITERAL 1 : { SATZ; BLOCK else { SATZ; BLOCK optional case break : optional default : { SATZ; BLOCK break optional
11 11 Kontrollstrukturen Wiederholte Ausführung while ( BEDINGUNG ) { do { SATZ; BLOCK SATZ; BLOCK while ( BEDINGUNG ) ; for ( ZUWEISUNG ; BEDINGUNG ; UPDATE ) { SATZ; BLOCK for ( DATENTYP BEZEICHNER : ARRAY ) { SATZ; BLOCK
12 12 Methoden Methoden dienen im imperativen Sinne zur Strukturierung des Codes Wiederkehrende und/oder logisch zusammenhänge Codeabschnitte werden zu Methoden zusammengefasst MODIFIKATOREN optional RÜCKGABETYP BEZEICHNER ( DATENTYP PARAM-, ) BEZEICHNER optional { SATZ; BLOCK return AUSDRUCK ; Parameter MODIFIKATOREN SICHTBARKEIT optional SICHTBARKEIT static final public protected private AUSDRUCK RÜCKGABETYP In der imperativen Programmierung: MODIFIKATOREN == static
13 13 Methoden II Die umschließende Klasse ist der Scope einer Methode class Program { Methoden Signatur einer Methode: RÜCKGABETYP BEZEICHNER ( DATENTYP, DATENTYP, ) In einem Scope kann es keine zwei Methoden mit gleicher Signatur geben Bei Methoden gleichen Namens aber mit unterschiedlichen Parameter spricht man von Überladung einer Methode Aufruf einer Methode BEZEICHNER ( WERT AUSDURCK, ) Argumente Anzahl und Typ der Argumente muss mit Anzahl und Typ der Parameter übereinstimmen
14 14 Methoden III Methodenrückgabe (Rückgabetype!= void) Methode liefert als Ergebnis ein Wert des angegebenen Rückgabetyps Der letzte ausführbare Satz in einer Methode muss mit return beginnen Auf return folgt ein Ausdruck bzw. Wert des Rückgabetyps Überall dort, wo ein Ausdruck erwartet wird, kann auch ein Aufruf einer Methode erfolgen, die einen Wert des erwarteten Typs liefert static int modulo(int n, int mod) { if (n <= 0 mod <= 0) return -1; if (n == mod) return 0; static int mult(int a, int b) { int result = 0; int temp = 0; while ((temp + mod) <= n) { temp += mod; log("temp", temp); return n - temp; for (int i = 1; i <= a; i++) { result += b; return result; int somevalue = modulo(mult(27, 37), 5);
15 15 Methoden IV Der spezielle Rückgabetyp void: Methode ohne Rückgabe (meist zum Ausführen von Nebeneffekten ) Es gibt keinen Wert vom Typ void Void-Methoden können daher auch keinen Wert liefern und man kann sie damit auch niemals stellvertretend für Werte benutzen Insb. können sie nie auf der rechten Seite einer Zuweisung aufgerufen werden! Innerhalb der Methode kann man die weitere Ausführung mittels return ohne Wertangabe abbrechen static void dosomething( ) { boolean test = ; if (!test) { System.out.println("Error"); return ;
16 16 Wiederholung: Call-By-Semantik Bei einem Methodenaufruf wird ein Speicher-Frame auf dem Stack erzeugt Alle Parameterwerte werden an diesen Frame übergeben: Primitive Parameter: Der Aufrufwert wird kopiert und dem entsprechenden Methodenparameter zugewiesen Änderungen haben außerhalb der Methode habe keine Auswirkung Call-By-Value Pointer-Parameter: Die Referenz hinter dem Aufruf-Pointer wird kopiert und dem entsprechenden Methodenparameter zugewiesen Dereferenzierung führt zum gleichen Speicherbereich! Änderungen an referenzierten Daten bleiben bestehen! Call-By-Reference
17 17 Arrays Definition eines Arrays in Java: DATENTYP [] Bezeichner ; int[] someintarray; Ein Array wird immer in Abhängigkeit zu einem Basistyp definiert Nur Elemente dieses Basistyps können im Array gespeichert werden Statische Initialisierung eines Arrays: DATENTYP [] Bezeichner = { WERT, WERT, ; int[] numbers = {0, 1, 1, 2, 3, 5, 8; Dynamische Initialisierung eines Arrays: DATENTYP [] Bezeichner = new DATENTYP [ SIZE ] ; int[] numbers = new int[7]; Achtung: Die statische Initialisierung ist nur bei der Definition möglich int[] numbers = new int[7]; numbers = new int[] {-1, -2, -3, -5, -8;
18 18 Arrays II Jedem Element in einem Array ist ein eindeutiger Index zugewiesen Über seinen Index kann auf ein Element zugegriffen oder das zu einem Index gehörende Element überschrieben werden Java kennt nur konsekutive Arrays: Die Array-Elemente sind durchnummeriert I int { Der Index-Operator [] dient zum Zugriff auf bzw. Setzen von Werten VARIABLE [ INDEX ] int[] numbers = {0, 1, 1, 2, 3, 5, 8; numbers[0] 0 numbers[3] 2 numbers[6] 8 VARIABLE [ INDEX ] = WERT AUSDRUCK DATENTYP ; numbers[0] = 10; numbers[0] == 10 numbers[3] = 999; numbers[3] == 999 numbers[6] = numbers[4]; numbers[6] == 3
19 19 Strings String ist in Java ein zusammengesetzter Datentyp Variablen vom Typ String sind demnach Pointer Bevorzugt: implizite Erzeugung ohne new: String Bezeichner = " STRING " ; String mystring = "Hello World"; Der + Operator ist für String überladen: System.out.println("Hello" + " " + "World"); Hello World Sobald ein Operand String ist, werden alle automatisch umgewandelt int year = 2014; String somestring = "This is the year " + year; Ok Strings sollten mit equals nicht mit == verglichen werden string1.equals(string2)
20 20 Projekt: Heap Ziel ist eine interaktive Anwendung, die auf der Konsole Eingaben entgegen nimmt und diese als Operationen auf einem künstlichen Heap interpretiert
21 21 Netbeans (Neues Projekt) File New Project Categories: Java Projects: Java Application Browse: Project-Name: Vorlesung_6 Nutzerverzeichnis U: Create Main Class: Uncheck
22 22 Netbeans (Neues Projekt) Netbeans legt im gewählten Verzeichnis folgende Ordnerhierarchie an Die meisten Dateien sind Netbeans spezifisch und nicht weiter interessant Neue Klassen-Dateien werden im src-verzeichnis abgelegt Die Musterlösung befindet sich hier: Die Java-Datei Vorlesung_6 muss in das src- Verzeichnis kopiert werden Nach dem ersten Ausführen der main-methode findet man den compilierten Code (.class) unter build/classes
23 23 Read-Eval-Print-Schleife Das Programm Vorlesung_6 ist eine klassische Consolen-Anwendung Read: Einlesen einer Nutzeranweisung Eval: Auswerten der Eingabe Print: Ausgeben des Ergebnisses Zum Einlesen von Eingaben benötigt es einer Hilfsmethode static String readln() { System.out.println("HEAP => "); return new java.util.scanner(system.in).nextline(); Java.util.Scanner ist eine Klasse, von der bei jedem Aufruf von readln() per new ein neues Objekt erzeugt wird Als Eingabe bei der Erzeugung wird System.in verwendet Der Aufruf von nextline lässt die Anwendung solange warten, bis der Nutzer eine Eingabe mit Enter abgeschlossen hat und liefert diese Der Code ist vereinfach, produktiv würde man es anders umsetzen
24 24 Read-Eval-Print-Schleife (II) public static void main(string[] args) { // Anlegen des Heap-Arrays String[] heap = initarray("", new String[30]); // Hilfsvariablen // Die Variablen hätten auch innerhalb der do-schleife definiert werden können // aber da sie nach einer Iteration erneut zugwiesen werden, kann die Variable // sozusagen wiederverwendet werden, ansonsten würden n-neue Variablen erzeugt! String line; String[] tokens; do { // read line = readln(); // eval + print tokens = parse(line); // parsen der Eingabe zu Tokens heap = interpret ( // interpretieren der Tokens, wobei tokens[0].touppercase(), // das erste Token immer als Befehl shiftarray(tokens), // und die restlichen als Argumente heap // verstanden werden ); while (heap!= null); // Falls die Heap-Variable nach dem letzten // interpret auf null gesetzt wurde => abbrechen System.out.println("Shutdown complete");
25 25 Debugging Debugging: Analyse des Programmverlaufs zum Aufspüren von Fehlern Bisher: Logging: Ausgabe aktueller Variablen bzw. Zustände auf die Konsole Nachteile: Code wird durch Logging aufgebläht Logging-Befehle müssen irgendwann wieder entfernt werden, da jeder Aufruf unnötig Zeit kostet Keine Liveanalyse : Das Programm muss laufen, den gesuchten Fehler produzieren und erst dann werden die Ausgaben analysiert und das Logging ggf. angepasst Die meisten IDEs bieten Tools zur Liveanalyse Achtung: Logging zur Analyse eines laufenden System ist durchaus legitim, als Debugging-Tool sollte man allerdings nicht verwenden
26 26 Debugging in Netbeans Der Button (oben neben ) startet die Liveanalyse (ab jetzt: Debugging) Oben erscheinen neue Symbole Stopp die aktuelle Ausführung Pausiert die aktuelle Ausführung Führt das Programm fort, falls es zuvor pausiert wurde Damit gewinnt man allerdings noch nicht viel Per Klick auf eine Zeilennummer im Editor setzt man einen Breakpoint
27 27 Breakpoints Das Programm hält an, sobald die markierte Zeile ausgeführt werden soll Falls nicht vorhanden sollte man nun das Variablen Fenster aktivieren Man erhält folgende Übersicht, über alle aktuelle aktiven Variablen
28 28 Breakpoints (II) Neben den Steuerungspunkten oben erscheinen neue Symbole Zur nächsten Zeile springen Zum nächsten Ausdruck springen In den Methodenaufruf springen Zum Aufruf der Methode zurückspringen
Programmieren in Java
Einführung in die (imperative) Programmierung 2 Wiederholung: Allgemein Hohe Programmiersprache Compiler Interpreter Maschinensprache Zielsystem 3 Wiederholung: Java Java Compiler Bytecode JRE Just-In-Time
MehrProgrammieren in Java
Einführung in die (imperative) Programmierung: Methoden 2 Wiederholung: if-else Anweisung int number =?; if ( BEDINGUNG ) { if (number > 0) { SATZ; BLOCK System.out.println("Größer 0"); else { SATZ; BLOCK
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
MehrProgrammieren in Java
Einführung in die (imperative) Programmierung (Teil 3) 2 Wiederholung (Datentyp) Ein Datentyp beschreibt eine Menge von Werten der gleichen Art Der Datentyp legt zudem fest, welche Operationen auf seinen
MehrMethoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
MehrProgrammieren in Java
Einführung in die (imperative) Programmierung (Teil 3) 2 Wiederholung (Datentyp) Ein Datentyp beschreibt eine Menge von Werten der gleichen Art Der Datentyp legt zudem fest, welche Operationen auf seinen
MehrGrundlagen der OO- Programmierung in C#
Grundlagen der OO- Programmierung in C# Technische Grundlagen 1 Dr. Beatrice Amrhein Überblick Visual Studio: Editor und Debugging Die Datentypen Methoden in C# Die Speicherverwaltung 2 Visual Studio 3
MehrVorlesung Programmieren
Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von
MehrEinführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
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
MehrProgrammieren in Java
Einführung in die (imperative) Programmierung: Arrays & Strings 2 Wiederholung (Methoden) MODIFIKATOREN optional RÜCKGABETYP BEZEICHNER ( DATENTYP PARAM-, ) BEZEICHNER optional { SATZ; BLOCK return AUSDRUCK
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
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.
MehrThemen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen
Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich
Mehr5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)
5.1 Mehr Basistypen Außer int, stellt Java weitere Basistypen zur Verfügung. Zu jedem Basistyp gibt es eine Menge möglicher Werte. Jeder Wert eines Basistyps benötigt die gleiche Menge Platz, um ihn im
MehrEinführung in C. EDV1-04C-Einführung 1
Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags
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
MehrWerkzeuge zur Programmentwicklung
Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul
MehrProgrammieren in Java
Einführung in die (imperative) Programmierung 2 Wiederholung Wozu Programmiersprachen? Maschinencode Assembler Compiler Höhere Programmiersprachen Syntax: Programmiersprachen gehorchen einer Grammatik
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Funktionen Rückblick Operatoren logische Verknüpfungen Zusammengesetzte Operatoren ( Zuweisungsoperatoren ) Kontrollstrukturen Bedingte Anweisungen (if-abfrage, switch-konstrukt)
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
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
MehrC++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
MehrProgrammiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
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 Welche Arten von Anweisungen gibt es? Anweisungen
MehrRO-Tutorien 3 / 6 / 12
RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
MehrTag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)
Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration
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
MehrInstitut für Programmierung und Reaktive Systeme. Java 3. Markus Reschke
Java 3 Markus Reschke 08.10.2014 Kommentare Kommentare nützlich zum späteren Verständnis Zwei Arten Einzeiliger Kommentar bis zum Zeilenende mit // Mehrzeiliger Kommentar mit /*Text*/ 1 double x = 5; //
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
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
MehrC# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services
C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften
MehrTutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen
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/
Mehr1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r
1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen
Mehr1. Referenzdatentypen: Felder und Strings
1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen
MehrEinführung in die Programmierung 1
Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
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
MehrVariablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel
4213 Variablen 17.834 float Flugzeug 36812736294 I write code Hund long String Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 3 + 4 1 Variablen sind wie Becher. Sie speichern etwas. // Variablen
MehrAuD-Tafelübung T-B5b
6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit
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
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.3. Anweisungen und Kontrollstrukturen - 1 - Anweisung Anweisung Zuweisung Methodenaufruf
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
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
Mehr3. Anweisungen und Kontrollstrukturen
3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen
MehrWelche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
MehrDie Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache. Dr. Beatrice Amrhein
Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache Dr. Beatrice Amrhein Überblick Speicherverwaltung: Stack und Heap Ein- und Ausgabe über die Console Variablen und Operatoren Parameter
MehrII. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )
Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:
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.
Mehr4.4 Imperative Algorithmen Prozeduren
4.4.2 Prozeduren Der Wert eines Ausdrucks u in Zustand z Z lässt sich damit auch leicht definieren (jetzt W Z statt W σ ) Dazu erweitern wir die rekursive Definition von Folie 57 (Wert eines Ausdrucks):
MehrPrimitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration
Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration CoMa-Übung III TU Berlin 30.10.2013 Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration 30.10.2013 1 /
MehrVorlesung Programmieren
Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die
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
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen
5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden
MehrSchwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen
Schwerpunkte 10. Felder (Arrays) Teil 1 Java-Beispiele: Echo.java Primzahlen.java Monate.java Klassifikation von Typen in Programmiersprachen Array: einziger strukturierter Typ in Java Deklaration, Erzeugung
MehrC++ - Objektorientierte Programmierung Konstante und statische Elemente
C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja
MehrProgrammieren in Java
Einführung in die Objektorientierung Objekt-Relationen 2 Klassen In der Objektorientierung dienen Klassen als Blaupause für Objekte Eine Klasse beschreibt die Eigenschaften eines Objektes die Fähigkeiten
MehrVorlesung Programmieren
Vorlesung Programmieren 3. Kontrollstrukturen 09.11.2016 Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND
MehrVorkurs Informatik WiSe 16/17
Java Schleifen und Arrays Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 06.10.2016 Technische Universität Braunschweig, IPS Überblick Kommentare Typen Kontrollstrukturen Arrays 06.10.2016 Dr. Werner
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Einführung in die strukturierte Programmierung Teil 5 Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile
MehrProgrammierkurs C++ Variablen und Datentypen
Programmierkurs C++ Variablen und Datentypen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Überblick Welche Datentypen gibt es in
MehrArrays. Einleitung. Deklarieren einer Array Variablen
Arrays Einleitung bisher jede Variable einzeln deklariert: 12 3 14 12 32 32 3 32 5 3 double sum; int count; ÿ Sie können Zweck und Aufbau von Array-Datentypen erklären ÿ Sie können einen Array korrekt
Mehr3.2 Datentypen und Methoden
Kap03.fm Seite 217 Dienstag, 7. September 2010 1:48 13 3.2 Datentypen und Methoden 217 3.2 Datentypen und Methoden Wie bei vielen höheren Programmiersprachen gibt es auch in Java einfache und strukturierte
MehrRO-Tutorien 15 und 16
Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 2 am 04.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft
Mehrpue13 January 28, 2017
pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern
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)
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
MehrOrganisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50
Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine
MehrInformatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5
Informatik 1 (251-0832-00) D-MAVT F2010 Schleifen, Felder Nachbesprechung Blatt 3 Aufgabe 1 ASCII... A > a Vorsicht: Lösen Sie sich von intuitiven Schlussfolgerungen. A ist nicht grösser als a, denn in
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,
MehrZeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.
Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike
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
MehrMethoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
MehrEINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15
EINI LW/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
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.
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
MehrFragenkatalog ESOP WS 16/17
Fragenkatalog ESOP WS 16/17 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
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.
MehrEinstieg in die Informatik mit Java
1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
MehrJava Datentypen und Variablen
Informatik 1 für Nebenfachstudierende Grundmodul Java Datentypen und Variablen Kai-Steffen Hielscher Folienversion: 24. Januar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Einführung in die strukturierte Programmierung Teil 5 Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind ausgewählte
MehrOrganisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr
Organisatorisches Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, 14.10., 14 Uhr bis Do, 23.10., 8Uhr. 14.10.2014 IT I - VO 1 1 IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen:
MehrKlassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg
Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive
MehrEinstieg in die Informatik mit Java
Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere
MehrEinstieg in die Informatik mit Java
Vorlesung vom 25.4.07, Anweisungen Übersicht 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung, Vorbereitungen 4 Verbundanweisung 5 Bedingte Anweisung 6 Auswahlanweisung 7 for
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrGrundlagen der Programmierung Teil1 Einheit III Okt. 2009
Grundlagen der Programmierung Teil1 Einheit III - 23. Okt. 2009 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Ausdrücke & Anweisungen
MehrProgrammierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder
Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Syntax und Semantik): 1. Was ist Syntax? Was ist Semantik? Erläutern Sie den Unterschied. 2.
MehrDie Programmiersprache C Eine Einführung
Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrEine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.
Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,
MehrWie entwerfe ich ein Programm?
Wie entwerfe ich ein Programm? Welche Objekte brauche ich? Flussdiagramme für Programmablauf Vorcode Testcode Hauptcode Wir spielen Lotto! Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 5 +
Mehr