mit Java Ansprechpartner Dr. Thomas Lux / Christian Klimetzek Christian Klimetzek, M.Sc. Raum GC 3/136 Mail: thomas.lux@rub.de



Ähnliche Dokumente
1. Einführung. Grundbegriffe: Programm vs. Software. 1.1 Programmierung & Software 1.2 Programmiersprachen

5. Strukturierte Programmierung

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Wirtschaftsinformatik II (Theorie) (Teil 1) Einführung

Kontrollstrukturen, Strukturierte Programmierung

Dr. Monika Meiler. Inhalt

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz Institut für Angewandte Informatik

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

5. Tutorium zu Programmieren

Entwurf von Algorithmen - Kontrollstrukturen

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Kapitel 7 Software-Entwicklungssysteme

Einführung in die Programmierung

Erwin Grüner

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Software Engineering I

3. Methodik der Programmerstellung

Programmierkurs Java

Computeranwendung und Programmierung (CuP)

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Übersicht Programmablaufsteuerung

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Einführung in die C++ Programmierung für Ingenieure

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Einführung in die Programmierung

Objektorientierte Programmierung

Vorlesung Informatik II

Dr. Monika Meiler. Inhalt

Kontrollstrukturen - Universität Köln

E-PRIME TUTORIUM Die Programmiersprache BASIC

VBA-Programmierung: Zusammenfassung

Java-Programmierung mit NetBeans

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

Einführung in die Java- Programmierung

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Einführung in die Programmierung

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die C-Programmierung

P r o g r a m m a b l a u f s t e u e r u n g

Modellierung und Programmierung 1

Graphic Coding. Klausur. 9. Februar Kurs A

Vorkurs Informatik WiSe 15/16

Programmieren in Haskell Einführung

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

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München

Programmierung in C. Grundlagen. Stefan Kallerhoff

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

IT-Basics 2. DI Gerhard Fließ

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Modul 122 VBA Scribt.docx

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

Übungen Programmieren 1 Felix Rohrer. Übungen

Java Kurs für Anfänger Einheit 5 Methoden

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Die Programmiersprache C99: Zusammenfassung

1 Vom Problem zum Programm

Einführung in Eclipse und Java

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Studentische Lösung zum Übungsblatt Nr. 7

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik-

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Klausur in Programmieren

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

C/C++ Programmierung

Wir arbeiten mit Zufallszahlen

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Lua Grundlagen Einführung in die Lua Programmiersprache

Grundlagen der Programmiersprache C++

VisualBasic - Variablen

Delegatesund Ereignisse

Grundlagen von C. Ausarbeitung von Jonas Gresens

Software Engineering Interaktionsdiagramme

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

J.5 Die Java Virtual Machine

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Objektorientierte Programmierung. Kapitel 12: Interfaces

Druckerscriptsprache

Funktionale Programmierung mit Haskell

2. Die Darstellung von Algorithmen

Erster Bug: eine Motte

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

1. Übung zu "Numerik partieller Differentialgleichungen"

Fallunterscheidung: if-statement

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Tutorium Rechnerorganisation

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

II.1.1. Erste Schritte - 1 -

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

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur in Programmieren

Programmieren was ist das genau?

Transkript:

Objektorientierte Programmierung mit Java / Christian Klimetzek Lehrstuhl für Wirtschaftsinformatik Prof. Dr. Roland Gabriel Ansprechpartner p Lehrstuhl hl für Wirtschaftsinformatik i f tik Raum GC 3/136 Mail: thomas.lux@rub.de Christian Klimetzek, M.Sc. Raum GC 3/134 Mail: cklimetzek@winf.rub.de

Terminplanung Veranstaltung im Block am 2., 3., 4. und 5. April 2012 Vormittag ca. 10 bis 12 Uhr Nachmittags ca. 13.30 bis ca. 15.30 Uhr Übungstermine 10. und 11 April Klausur am 18. April, von 14 bis 16 Uhr Literatur Viele Bücher, aber auch sehr viel gute Informationen im Internet: The Java Tutorials http://java.sun.com/docs/books/tutorial/ Java ist auch eine Insel" http://openbook.galileocomputing.de/javainsel8/ Software: Java: http://www.oracle.com/technetwork/java/ Eclipse: http://www.eclipse.org/downloads

Gliederung 1. Einführung 2. Grundlagen: IDE (Eclipse) und Programmiersprache (Java) 3. Methodik der Programmerstellung 4. Strukturierte Programmierung 5. Einfache Datentypen 6. Kontrollstrukturen 1. Einführung 11P 1.1 Programmierung &S Software 1.2 Programmiersprachen

Programm Eine zur Lösung einer Aufgabe vollständige Anweisung zusammen mit allen erforderlichen Vereinbarungen heißt PROGRAMM. Ein Programm setzt sich aus Befehlen zusammen, die von der Zentraleinheit in logischer Reihenfolge abgearbeitet werden. Der Vorgang der Erstellung einer derartigen Anweisung heißt PROGRAMMIEREN. Software Die Menge von PROGRAMMEN, zugehörigen DATEN und notwendigen DOKUMENTATIONEN, die zusammengefasst erlauben, mit Hilfe eines Computers Aufgaben zu erledigen, nennt man SOFTWARE. Software-Engineering/Software-Technik: Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden, Konzepten, Notationen und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Software-Systemen. Systemen (Balzert, 1996)

Software - Charakteristika Software ist ein immaterielles i Produkt Software ist schwer zu bewerten Software unterliegt keinem Verschleiß Software ist im allgemeinen leichter und schneller änderbar als ein technisches Produkt Software benötigt keine Ersatzteile Software altert Software - Tendenzen Zunehmende Bedeutung im Verhältnis zur Hardware Strategischer Wettbewerbsfaktor Wachsende Komplexität Zunahme der Standardsoftware Zunehmende Fremdentwicklung Zunehmende Altlasten Zunehmende Qualitätsanforderungen

Software - Systematisierung Software Systemsoftware (Basissoftware) Anwendungssoftware (application software) Betriebssysteme Technisch/Wissenschaftliche Programme Steuerprogramme Übersetzungsprogramme Dienstprogramme Kommerzielle Programme (d.h. auf betriebliche Funktionen bezogene Programme) Branchenprogramme Systemnahe Software (z.b. Datenbankverwaltungssysteme, t Kommunikationsprogramme) Programmiersprachen/ Programmentwicklungssysteme (CASE-Systeme) Systemsoftware Die Software, die für eine spezielle Hardware oder eine Hardwarefamilie entwickelt wurde, um den Betrieb und die Wartung dieser Hardware zu ermöglichen bzw. zu erleichtern, nennt man SYSTEMSOFTWARE. Die Systemsoftware steuert und überwacht die Abwicklung von Anwendungssoftware auf der jeweiligen Maschinenkonfiguration.

Anwendungssoftware Die Anwendungssoftware unterstützt tüt t die Aufgaben des Anwenders und baut auf der Systemsoftware der verwendeten Hardware auf. Individualsoftware vs. Standardsoftware Eigenentwicklung vs. Fremdentwicklung Offene Systeme vs. Proprietäre Systeme Softwareschichten Benutzer Benutzeroberfläche Anwendungssoftware Benutzer Benutzer Kommunikation Betriebs - system Assembler CASE Compiler Individuell entwickelte Programme DBMS Dienstpro- gramme Branchenpakete Inter- preter Funktional orient. Pakete Benutzer

Programmiersprachen Eine PROGRAMMIERSPRACHE ist eine Künstliche Sprache zum Abfassen von Computerprogrammen (DIN 44300). Programmiersprachen sollen es ermöglichen, den Lösungsweg (Algorithmus) für eine spezielle Problemstellung in einer der Maschine verständlichen Sprache zu formulieren. Programmierumgebung g g Eine Programmierumgebung ist ein Softwaresystem, t das eine Sammlung von Werkzeugen, die zur Entwicklung von Software dient, zur Verfügung stellt. Wesentliche Komponenten: TEXTEDITOR: zur Erfassung des Quelltextes ÜBERSETZUNGSPROGRAMME: Programm, das Anweisungen in einer höheren Sprache liest, analysiert und in bedeutungsgleiche Maschinenbefehle umwandelt DEBUGGER: ermöglicht ein schrittweises Abarbeiten des Programms zu Testzwecken HILFESYSTEM: erlaubt die kontextsensitive Abfrage von Informationen zur Programmsyntax uä u.ä. GUI-BUILDER: Modellierung der Benutzeroberfläche

CASE-Systeme Computer Aided d Software Engineering-Systeme i Eine CASE-System ist eine integrierte SOFTWARE- Entwicklungsumgebung, g g die den gesamten Softwarelebenszyklus (Problemanalyse, Systemspezifikation, Systementwurf, Implementierung, Systemtest, Wartung und Pflege) unterstützt. CASE-System: Eclipse

Programmiersprachenstammbau m Sprachgenerationen Sprachen der ersten Generation: MASCHINENSPRACHEN Sprachen der zweiten Generation: ASSEMBLERSPRACHEN Sprachen der dritten Generation: HÖHERE PROGRAMMIERSPRACHEN Sprachen der vierten Generation: 4GL-SYSTEME Alternative Sprachrichtungen: SPRACHEN DER KÜNSTLICHEN INTELLIGENZ (Sprachen der fünften Generation) OBJEKTORIENTIERTE PROGRAMMIERSPRACHEN VISUELLE PROGRAMMIERSPRACHEN Maschinensprache Assemblersprachen Höhere Programmiersprachen 4GL-Systeme Alternative Sprachrichtungen

Maschinensprachen (1. Generation) Jeder Befehl besteht aus einer Folge der Binärzeichen i 0 und 1 entsprechend dem Befehlssatz des jeweiligen Prozessors. Beispiel: Addiere 3+4 (Großrechner) Befehl Addition, Operanden 3, 4) 00011010 0011 0100 unverständlich, unübersichtlich, fehleranfällig Assemblersprachen (2. Generation) Eine maschinenorientierte Sprache, die den Aufbau der Befehle der Maschinensprache beibehält, die Instruktions-teile jedoch nicht primär verschlüsselt, lt sondern durch Symbolik (mnemotechnische h Abkürzungen) ausdrückt. Beispiel: Addiere 3+4 Assemblerbefehl ADD 3, 4 Die Übersetzung in Maschinensprache erfolgt mit Hilfe eines ASSEMBLIERERS (1:1-Übersetzung). optimale Speicherausnutzung und Verarbeitungsgeschwindigkeit enge Hardware-Orientierung, unübersichtlich, fehleranfällig

Höhere / Prozedurale Programmiersprachen (3. Generation) Weitgehend genormte Sprachen, die für einen speziellen Anwendungsbereich konzipiert (problemorientiert) sind und nahezu unabhängig von einem bestimmten Rechnertyp sind. Die Programmierung erfolgt durch die Formulierung von Algorithmen (Algorithmus = Abfolge von Operationen, die jeweils Daten bearbeiten). b Beispiel: Addiere 3+4 Operation SUMME = 3 + 4 Übersetzung in Maschinensprache erfolgt durch einen Compiler/Interpreter (1:n-Übersetzung) schlechtere Performance Übersetzungsprogramm g I Ein Programm, das nicht in Maschinensprache h abgefaßt ist, wird QUELLPROGRAMM (QUELLCODE/SOURCECODE) genannt. Ein in Maschinensprache vorliegendes Programm (=Zielprogramm des Übersetzungsvorgangs) heißt OBJEKTPROGRAMM (OBJEKTCODE). Unter einem ÜBERSETZUNGSPROGRAMM (TRANSLATOR) versteht man ein Programm, das Anweisungen in einer höheren Sprache oder in Assemblersprache liest, analysiert (Optimierung) i und in bedeutungsgleiche Maschinenbefehle umwandelt.

Übersetzungs-programm g II QUELLCODE: PROGRAM test; BEGIN WriteLN ( Hallo! );... ÜBERSETZUNGS- PROGRAMM (Assemblierer, Compiler, Interpreter) OBJEKTCODE: 0101000100111 0110010011111 1110110001100 1101000011011 1100011... Hallo! Compiler vs. Interpreter Compiler Ein Übersetzungsprogramm, das in einer höheren Programmiersprache abgefaßten Quellcode komplett in Zielanweisungen einer maschinenorientierten Programmiersprache umwandelt (kompiliert). Das erzeugte Objektprogramm kann für spätere Verarbeitungsläufe abgespeichert werden, so daß vor der Ausführung keine Übersetzung mehr nötig ist. Interpreter Ein Programm zur schrittweisen se Übersetzung von Quellcode in lauffähigen Maschinencode, welcher sofort (zeilenweise) ausgeführt wird. Im Unterschied zum Kompilieren entsteht kein vollständiges, aufbewahrungsfähiges Objektprogramm. Bei jedem Programmstart erfolgt ein erneuter Übersetzungsvorgang

Beispiele für 3-GL-Sprachen I COBOL (COmmon Business Oriented Language) Entwicklung in den 50er Jahren betriebswirtschaftliche Anwendungen (Verarbeitung umfangreicher Datenbestände) meistgenutzte Programmiersprache auf Großrechnern Standard: ANSI-COBOL-85 FORTRAN (FORmula TRANslator) Entwicklung in den 50er Jahren von IBM technisch-wissenschaftliche Anwendungen (effiziente Programme für komplexe mathematische Algorithmen) Standard: FORTRAN 90 BASIC (Beginners All-Purpose Symbolic Instruction Code) Entwicklung in den 60er Jahren als vereinfachtes FORTRAN fehlende Unterstützung der strukturierten Programmierung führte zu Spaghetticode Weiterentwicklung (MICROSOFT) zur professionellen Makro- und Programmiersprache VISUAL BASIC (Visuelle Programmierung) Beispiele für 3-GL-Sprachen II C Entwicklung in den 70er Jahren in den Bell Laboratories des amerikanischen Telekommunikationskonzerns AT&T effizientes Laufzeitverhalten eng mit dem Betriebssystem UNIX verbunden (UNIX zu 90% in C geschrieben) universell einsetzbar auf allen gängigen Rechnern objektorientierte Nachfolger: C++ Makrosprachen: Automatisierung von wiederkehrenden Abläufen innerhalb von Anwendungen (z.b. Textverarbeitung, Tabellenkalkulation) Proprietär: Der Befehlsumfang wird ausschließlich von einem einzigen Hersteller definiert bzw. weiterentwickelt zumeist herstellerspezifische Dialekte der Programmiersprache BASIC z.b. Visual Basic for Application (VBA) von MICROSOFT, LotusScript von LOTUS

Beispiele für 3-GL-Sprachen III PASCAL 1971 von Prof. Niklaus Wirth an der ETH Zürich entwickelt benannt nach französischen Mathematiker und Philosophen Blaise Pascal (1623-1662) unterstützt die strukturierte Programmierung durch leichte Erlernbarkeit für Ausbildungszwecke geeignet geringe Verbreitung im Bereich kommerzielle Anwendungsentwicklung durch unkomfortable Ein- und Ausgabeanweisungen und unzureichende Dateiverarbeitung Nachfolger: MODULA 2 (modulare Programmierung) Nicht-prozedurale Sprachen 4GL-Systeme (4. Generation) Deskriptive Programmierung Der Programmierer muß nicht mehr angeben, auf welche Weise ein Problem Schritt für Schritt gelöst werden soll, sondern er legt in beschreibender Form das Resultat t fest, was geschehen h soll. Beispiel: Datenbanksprache Structured Query Language (SQL) SELECT Vorname, Nachname, Telefon FROM Kunden WHERE Ort = Bochum ORDER BY Nachname Proprietär, hohe Inanspruchnahme der Hardwareressourcen bei Umsetzung, beschränkter Anwendungsbereich

Alternative Richtungen: Sprachen der künstlichen Intelligenz (5. Generation) Anwendungsgebiete: Expertensysteme, Robotersteuerung, Data Mining Funktionale Programmiersprachen mathematische Funktionen auf Basis von Basisfunktionen (Aneinanderkettung, Iteration, ti Rekursion) LISP (LISt-Processing Language): 1958 am MIT (Massachusetts Institute of Technology) entwickelt grundlegende Struktur der Liste für Programme und Daten Logische Programmiersprachen Prinzipien der mathematischen Logik: aus Fakten und Regeln werden mit Hilfe der Prädikatenlogik neue Fakten gewonnen PROLOG (PROgramming LOGic): 1972 in Marseille entwickelt kaum Ablaufsteuerung, Verwendung von Deduktionsverfahren Objekt Alternative Richtungen: Objektorientierte Programmiersprachen Daten: beschreiben den Zustand des Objekts Methoden: beschreiben das Verhalten des Objekts Klassen: Objekte mit gemeinsamer Struktur und gemeinsamen Verhalten weitere Konzepte: einfache/mehrfache Vererbung, Polymorphismus Objektorientierte Programmiersprachen (OOP) Simula (1967), Smalltalk (1972), Eiffel (1988), Java (1995) Hybridsprachen C++ (1985), ObjectPascal (1985), Modula-3 (1985)

Alternative Richtungen: Visuelle Programmiersprachen Objekt- und ereignisorientierte i i t Modellierung des optischen Erscheinungsbildes des Programms Kontroll-/Steuerelemente besitzen Eigenschaften (z.b. Farbe) und Ereignisse (z.b. Mausklick) den Ereignissen werden Ereignisprozeduren zugeordnet VISUAL BASIC von MICROSOFT DELPHI von BORLAND 2 Grundlagen: Eclipse &J Java Die Programmiersprache Java Die integrierte Entwicklungsumgebung Eclipse

Der Mensch als Referenz The mechanism of human thought and communication have been engineered for a millions of years, and we should respect them as being of sound design. Moreover, since we must work with this design for the next million years, it will save time if we make our computer models compatible with the mind, rather than the other way around. Dan Ingalls (1981) Java Objektorientierte ti t Programmiersprache Sun Microsystems, seit 2010 Oracle Frei verfügbar, für Anwender und Entwickler Java-Technologie: JDK (Java Development Kit) JRE (Java Runtime Environment) (JVM Java Virtual Maschine)

Eigenschaften von Java einfach, objektorientiert, ti t verteilt und vertraut t robust und sicher architekturneutral und portabel Leistungsfähig interpretierbar, parallelisierbar und dynamisch Einführung in Eclipse Menüleiste mit Standardaktionen Perspektive Syntax-Highlighting durch verschiedene Farben Editorfenster Projektstruktur Methoden & Variablen Übersicht Berichte: Fehler, Ausgabe, Doku Folie 38 02.04.2012

Projekt exportieren / importieren File Export / Import Als Dateityp JAR (Java ARchiv) Alle Projekte / Dateien markieren, die exportiert werden sollen die Quellcodes sollen auch exportiert werden! Name vergeben Folie 39 02.04.2012 Neue Klasse anlegen mit rechter Maustaste auf den Pfad klicken, in dem die neue Klasse angelegt werden soll "Class" auswählen Vererbungsstruktur festlegen Namen vergeben soll es ein direkt ausführbares Programm sein? Folie 40 02.04.2012

Anweisungen Standardcode für ein Programm von überall aufrufbar (Datei-) Name automatische Dokumentation der zu übergebenden Parameter Folie 41 02.04.2012 public class Standard { /** * @param args */ public static void main(string[] args) { // TODO Auto-generated methodstub System.out.println("Hallo Welt"); } } Anfangs- und Ende Markierung von logischen Blöcken IMMER PAARWEISE!!! von überall aufrufbar (public), muss nicht instanziert werden (static) (einmalige) Hauptfunktion, wird automatisch gestartet einzeiliger Kommentar ("//"), wo der Programmierer noch Aufgaben zu erledigen hat Befehl zur Parameter innerhalb von "( Textausgabe )", was ausgegeben werden soll Anweisungen Kommentare dienen nur dokumentatorischen t Zwecken sollten(!) zur Erklärung der Anweisungen / des Programms eingesetzt werden werden nicht ausgeführt // einzeiliger Kommentar /* mehrzeiliger Kommentar beginnt * Kommentarzeile * mehrzeiliger Kommentar endet */ Folie 42 02.04.2012

Anweisungen Textausgabe Anweisung zum Ausgaben von Text in der Konsole: System.out.println(Parameter); Parameter: das, was ausgegeben g werden soll alle Anweisungen schließen mit einem " ; " // Ausgabe von Zeichenketten System.out.println ("Hallo Welt"); // Ausgabe von Zahlen (werden in Zeichen gewandelt) System.out.println (12345); // Zuweisung an Variablen & Ausgabe String text = "Hallo Java"; System.out.println (text); Folie 43 02.04.2012 Anweisungen Methodenübersicht System.out Methode print(args) println(args); format(format, arg)s; Bedeutung druckt die übergebenen Argumente aus druckt die übergebenen Argumente aus und wechselt danach in die nächste Zeile druckt die übergebenen Argumente in dem angegebenen Format aus System.out.format("Preis %6.2f%n", 2.95); //6 Stellen insgesamt,2 nach Komma System.out.format( format("preis %6.2f%n 2f%n", 199.90); 90); // f = Fließkommazahl //Preis 2,95 //Preis 199,90 System.out.format( format("% %,9d%n 9d%n", 12345); // 9 Stellen insgesamt, d = Ganzzahl // 12.345 //%n = nächste Zeile

3. Methodik der Programmerstellung 31V 3.1 Vorgehen 3.2 Programmerstellung 3.2.1 Konventionen 3.2.2 Schlüsselwörter und Bezeichner 3.2.3 Fehlertypen 3.2.4 Programmierstil 3.3 Formaler Aufbau eines Programms Vorgehensweise Aufteilung in einzelne Arbeitsschritte Methode der schrittweisen Verfeinerung (Top-Down-Strategie) Program una mmierspra abhängig acheng Problem- aufbereitung Problem- analyse Programm- erstellung Definition der Aufgabe Festlegen der Programmstruktur nach dem EVA-Prinzip: EINGABE - VERARBEITUNG - AUSGABE Algorithmus in einer graphikorientierten Beschreibungssprache h (Struktogramm) jeder Programmablauf basiert auf wenigen Grundstrukturen (Sequenz, Auswahl, Wiederholung) Formulierung in einer höheren Programmiersprache Übersetzen des Quellcodes in Maschinensprache durch den Compiler Fehlerbeseitigung und Programmtest

Programmerstellung: Konventionen kein Unterschied zwischen Groß- und dkleinschreibung ib i.d.r. keine Verwendung deutscher Sonderzeichen (ä,ö,ü,ß) öüß)imquellcode jede Anweisung endet i.d.r. mit dem Semikolon (;) Punkt als Dezimaltrennzeichen Programmerstellung: Schlüsselwörter vs. Bezeichner Schlüsselwörter / reservierte Wörter integraler Bestandteil einer Programmiersprache, die nicht neu definiert werden können ermöglichen eine korrekte Übersetzung und Ausführung des Quellcodes, da sie die Programmstruktur bestimmen Beispiele: class, public, import, new, double Bezeichner / Namen benutzerdefiniert dienen der Identifikation bestimmter Objekte (z.b. Datenobjekte, Programmteile) Standard-Funktionen und Standard-Prozeduren Syntaktischer Aufbau: werden aus Buchstaben und Ziffern gebildet, wobei das erste Zeichen stets ein Buchstabe sein muss Verwendung von Sonderzeichen und Umlauten ist nicht erlaubt (Ausnahme: Unterstrich _ ) Bezeichner können beliebig lang sein, es sind aber nur die ersten 63 Zeichen relevant Beispiele: nettopreis, anz_studenten

Programmerstellung: Fehlerarten Fehler zur Übersetzungszeit (Compiler-Fehler) Beim Übersetzen des Quellcodes in die Maschinensprache werden die syntaktischen und die semantischen Fehler erkannt. Eclipse zeigt Fehler als Symbol an Laufzeitfehler (Runtime-Error) Diese Fehler treten beim Ablauf des Programms auf und führen zum Programmabbruch durch das Betriebssystem. Beispiel: Division durch 0, Wertebereichsüberschreitungen Logische Fehler Die Aufgabenstellung wird durch das Programm nicht gelöst, weil z.b. ein unbrauchbarer Algorithmus gewählt wurde. Der Compiler erkennt keine logischen Fehler! Programmerstellung: Programmierstil Lesbarkeit und Verständlichkeit Erleichterung der Fehlersuche, Wartung und Pflege Stil-Regeln: Optische Trennung der Programmbausteine Leerzeilen Einrücken des Programmtextes sprechende Namen für Bezeichner bzw. Verwendung von anerkannten Namenskonventionen (ungarische Notation von Charles Simonyi) Einsatz von Konstanten Strukturierung der Programme nach Eingabe, Verarbeitung und Ausgabe (EVA-Prinzip) Großzügiger Einsatz von Kommentaren Benutzerfreundlich programmieren

4. Strukturierte Programmierung 41Zi 4.1 Ziele 4.2 Prinzipien 4.3 Basisstrukturen Ziele der strukturierten Programmierung g Unterstützung tüt einer methodischen h Vorgehensweise beim Programmentwurf lineare Form des Programmcodes ohne unbedingte Sprünge (kein Spaghetticode ) Ergebnis sind hierarchisch gegliederte Programmstrukturen Steigerung der Lesbarkeit/Übersichtlichkeit Steigerung der Zuverlässigkeit Verbesserung der Wartung und Pflege

Prinzipien der strukturierten Programmierung Prinzip der schrittweisen Verfeinerung (Top-Down-Strategie): Strukturierung des Programms durch verschiedene Abstraktionsebenen Prinzip der Modularisierung: Gesamtaufgabe wird solange weiter in logisch zusammenhängende Teilaufgaben zerlegt, bis kleine überschaubare Einheiten (Module) entstehen (Top-Down-Methode) Prinzip der linearen Kontrollstrukturen: Jeder Programmablauf ist auf die Grundstrukturen S Sequenz, Auswahl und Wiederholung zurückzuführen. Struktogrammtechnik Einsatz in der Phase der Problemanalyse Struktogramm-Notation wurde 1973 von Nassi und Shneiderman entwickelt (Nassi-Shneiderman-Diagramme) jeder Strukturblock ist ein Rechteck, mit einem Eingang (obere Kante und einem Ausgang (untere Kante) Zwang zur STRUKTURIERTEN PROGRAMMIERUNG, da keine Sprunganweisungen abzubilden sind jeder Programmablauf basiert auf wenigen Grundstrukturen: Sequenz Auswahl Wiederholung

Repräsentationsformen der Grundstrukturen prozeduraler Programmierung Pseudo-Code Programmablaufplan Struktogramm - Sequenz Anweisung 1; Anweisung 1; Anweisung 1; Anweisung 2; Anweisung 2; Anweisung 3; Anweisung 2; Anweisung 3; Anweisung 3; if Ausdruck then Ja-Anweisung (; else Nein-Anweisung) end if; Wahr Auswah hl (eineiseitig) und zwe Ausdruck Ja- (Nein- Anweisung Anweisung) Ja- Anweisung Ausdruck Falsch (Nein- Anweisung) Mehrfach - Auswahl case Ausdruck is when Fall1 -> Anweisung 1; when Fall2 -> Anweisung 2;...; when Sonst -> Anweisung n; end case ; Ausdruck Fall 1 Fall 2... Anw. Anw.... 1 2 Sonst Anw. n Ausdruck Fall 1 Fall 2... Sonst Anw. 1 Anw. 2... Anw. n Repräsentationsformen der Grundstrukturen prozeduraler Programmierung Pseudo-Code Programmablaufplan Struktogramm - Schleife mit Bedingung g im Kopf while Ausdruck loop Wiederholungsanweisung end loop ; Schleife 1 Ausdruck Anweisung Ende Schleife 1 Ausdruck Wiederholungs- Anweisung Schlei ife mit Beding gung im Fuß loop Wiederholungsanweisung exit when Ausdruck; end loop ; Schleife 2 Anweisung Ausdruck Ende Schleife 2 Wiederholungs- Anweisung Ausdruck Schleif fe mit fester Anzahl Durchl äufe for Zähler in Bereich loop Wiederholungsanweisung end loop ; Schleife 3 AW; EW; SW Anweisung Ende Schleife 3 AW = Anfangswert, EW = Endwert, SW = Schrittweite für Zähler := Anfangswert to Endwert Wiederholungs- Anweisung

Struktogrammtechnik: Sequenz mehrere Anweisungen sind hintereinander auszuführen Abarbeitung erfolgt von oben nach unten Verarbeitung Anweisung 1 Verarbeitung Anweisung 2 Verarbeitung Anweisung 3 Verarbeitung Anweisung 4 Beispiel: Nachdem der Kundenauftrag eingegangen ist, wird die Ware zusammengestellt und danach verschickt. Anschließend wird die Rechnung angefertigt und versandt. Struktogrammtechnik: Auswahl I Anweisungen werden in Abhängigkeit it von bestimmten t Bedingungen ausgeführt Ergebnis eines booleschen Ausdrucks steuert den weiteren Programmablauf 3 verschiedene Auswahl-Konzepte einseitige Auswahl (bedingte Verarbeitung) zweiseitige Auswahl (einfache Alternative) Mehrfachauswahl (mehrfache Alternative)

Struktogrammtechnik: Auswahl II Einseitige Auswahl: Ist die Bedingung erfüllt (d.h. wahr), wird der linke Strukturblock (Anweisung 1) verarbeitet, ansonsten wird der Programmablauf mit dem nachfolgenden Strukturblock fortgesetzt. Beispiel: Wenn ein Kunde im vergangenen Jahr Waren bezogen hat, erhält er eine Weihnachtskarte, hat er keine Waren bezogen, so passiert nichts. Beispiel: Wenn ein Kunde im vergangenen Jahr Waren bezogen hat, erhält er eine Weihnachtskarte, sonst wird er im Kundenverzeichnis gelöscht wahr Verarbeitung Anweisung 1 Bedingung falsch Zweiseitige Auswahl: In Abhängigkeit von dem Auswertungsergebnis (wahr oder falsch) der Bedingung kommt entweder der linke Struktur-block (Anweisung 1) oder der rechte Strukturblock (Anweisung 2) zur Verarbeitung. Bedingung wahr falsch Verarbeitung Verarbeitung Anweisung 1 Anweisung 2 Struktogrammtechnik: Mehrfachauswahl h hl Abhängig von einer Steuerungsgröße (Selektor) tritt eine Option aus einer Auswahl von Alternativen ein. Hierbei gelangt die Option zur Ausführung, deren Marke mit dem aktuellen Wert des Selektors übereinstimmt. Steuerungsgröße Marke 1 Marke 2 usw. Marke n sonst Verarbeitung Verarbeitung Anweisung 1 Anweisung 2... Verarbeitung Anweisung n Verarbeitung Anweisung n+1 Beispiel: Wenn ein Kunde im vergangenen Jahr Waren im Wert größer als 1000 DM bezogen hat, erhält er einen Treuebonus von 10%, hat er Waren zwischen 500 DM und 1000 DM bezogen, erhält er einen Bonus von 5%, hat er Waren bis 500 DM bestellt, erhält er einen Bonus von 2%, sonst wird er im Kundenverzeichnis gelöscht.

Struktogrammtechnik: Wiederholung I Eine oder mehrere Anweisungen sollen in Abhängigkeit von einer Bedingung wiederholt oder für eine gegebene g Anzahl von Wiederholungen durchlaufen werden. Ergebnis eines booleschen Ausdrucks steuert den weiteren Programmablauf 3 verschiedene Wiederholungskonstrukte Wiederholung mit Abfrage vor jedem Wiederholungsdurchlauf Wiederholung mit Abfrage nach jedem Wiederholungsdurchlauf Wiederholung mit fester Wiederholungszahl Struktogrammtechnik: Wiederholung II Wiederholung mit Abfrage vor jedem Wiederholungsdurchlauf: Es erfolgt eine Prüfung VOR der abzuarbeitenden Anweisung, ob die Verarbeitung zu wiederholen bzw. überhaupt ein erstes Mal durchzuführen ist. Ist die Bedingung nicht mehr gefüllt wird hinter der zu wiederholenden Anweisungsfolge fortgefahren. Beispiel: Solange ein Kunde in Schleifenbedingung jedem Jahr mindestens eine Bestellung aufgibt, wird ihm der Verarbeitung Jahreskatalog kostenlos Anweisung 1 zugesandt. Wiederholung mit Abfrage nach jedem Wiederholungsdurchlauf: Es wird NACH jedem Durchlauf der Schleife geprüft, ob die Verarbeitung wiederholt werden soll. Ist die Bedingung erfüllt, wird mit der nächsten Anweisung fortgefahren. Beispiel: Wiederhole Aktionen zur Neukundenwerbung bei Verarbeitung dem potentiellen Kunden, bis Anweisung 1 der Kunde die erste Bestellung erteilt. Schleifenbedingung

5. Einfache Datentypen 51K 5.1 Konstanten t vs. Variablen 5.2 Systematisierungen der Datentypen 5.3 Ausgewählte einfache Datentypen Konstanten Datenfelder, die während eines Programmablaufs einen konstanten t Wert haben (darf im Programm nicht verändert werden) Bestandteile: Name: (Datentyp:) Adresse: mwst (double) $1010:$203A Wert: 016 0.16 Einmalige Deklaration Syntaxdiagramm (Deklarationsteil): final Datentyp Bezeichner = Konstante ;

Variablen Datenfelder, die während eines Programmablaufs veränderbare Werte annehmen können Bestandteile: Name: rech_betrag Datentyp: t l Deklaration Adresse: real $1000:$2A35 Wert: 12.59 Wertänderung bei Verarbeitung Syntaxdiagramm (Deklaration): Datentyp Bezeichner ;, Datentypen - Systematisierung (Zusammensetzung) Ein Datentyp legt eine Menge von Werten (Wertebereich) sowie eine Sammlung von darauf zugeschnittenen Operationen fest. Datentypen Klassifikationskriterium: Zusammensetzung unstrukturierte (einfache) Datentypen referenzierte Datentypen Aufzählungstypen Teilbereichstypen Standardtypen integer boolean char double Interface Klassen String Array ordinale/abzählbare Datentypen: bilden eine geordnete Menge, bei der jedem möglichen Wert eine ganzzahlige Ordinalzahl zugeordnet wird Standardfunktionen: Ord (x) (Ordinalzahl) Pred (x) (Predecessor:Vorgänger) Succ (x) (Successor: Nachfolger)

Datentypen - Systematisierung (Speicherverwaltung) Datentypen Klassifikationskriteriu m: Speicherverwaltung statische Datentypen dynamische Datentypen unstrukturierte strukturierte File Datentypen Datentypen Pointer Dynamische Variablen erhalten ihren Speicherplatz nicht zur Übersetzungszeit, sondern erst zur Laufzeit. Das Ziel dynamischer Datentypen ist, keinen Speicherplatz bei einer unbekannten Zahl von zu speichernden Datenobjekten zu verschwenden. Anweisungen Datentypen t primitive iti Datentypen t Typname Speicherverbrauch Wertebereich in Byte boolean 1 true / false char 2 alle Unicodezeichen (65k versch. mgl.) int 4-2 31...2 31-1 double 8 +/-1.797* 10 308 referenzierter Datentyp String 2 Byte pro Zeichen 0 bis 2 15-2 Zeichen Folie 68 02.04.2012

Deklaration boolean Wahrheit; char Zeichen; int Wert; double Preis; String Nachricht; Zuweisung Anweisungen Variablen Wahrheit = false; Zeichen ='R'; R; Wert = 42; Preis = 2.95; Nachricht = "Hallo Java Kurs"; Deklaration & Zuweisung kombiniert int eine_zahl = 42; Folie 69 02.04.2012 6. Kontrollstrukturen 6.1 Systematik tik 6.2 Einfache Anweisungen 6.2.1 Leere Anweisung, Sprunganweisung 6.2.2 Wertzuweisung 6.3 Strukturierte Anweisungen 6.3.1 Verbundanweisung 6.3.2 Bedingte Anweisungen 633 6.3.3 Wiederholungsanweisungen 6.4 Methodenanweisung

Systematik Anweisungen einfache Anweisungen strukturierte Anweisungen Wertzuweisungeis Methodenanweisung Sprunganweisung leere Anweisung Verbundanweisung eis ng Bedingte Anweisungen IF-Anweisung SWITCH-Anweisung Wiederholungsanweisungen FOR-Anweisung DO-WHILE-Anweisung WHILE-DO-Anweisung Leere Anweisung Leere Anweisung besteht aus nichts und bewirkt nichts Beispiel: ;; Vorsicht! Leere Anweisung kann unerwünschte Wirkung haben:

Leere Anweisung, Sprunganweisung, Methodenanweisung Sprunganweisung Anweisungen werden nicht mehr in der Reihenfolge abgearbeitet, in der sie aufgeführt sind, sondern es erfolgt ein Spring zu einer definierten Sprungmarke (LABEL) Label steht in Zusammenhang mit Wiederholungsanweisung: Definition des Labels, z.b. loop1: Abbrechen der Anweisung: break loop1 Erneuter Durchlauf der Anweisung: coninue loop1 Wertzuweisung ein Ausdruck wird ausgewertet t und das Ergebnis wird einer Variablen zugewiesen alte Wert der Variablen wird überschrieben i.d.r. müssen die Variable und das Ausdrucksergebnis vom gleichen Datentyp sein Bezeichner = Ausdruck ; Beispiel: y = c ; i = i + 1; b = 10 = 12; x = i + (j % 7);

Verbundanweisung Eine Verbundanweisung faßt eine Folge von Anweisungen syntaktisch zu einer Anweisung zusammen. Die Verbundanweisung wird benötigt, weil an vielen Stellen eines Java-Programms nur die Ausführung einer einzigen Anweisung zugelassen { ist. Anweisung } ; Bedingte Anweisungen Ausführung der Anweisung nur dann, wenn eine bestimmte Bedingung erfüllt ist Formulierung der Bedingung als boolescher Ausdruck (duale Weiche) Bedingte Anweisungen in Java: IF-Anweisung bedingte Verarbeitung if (Bedingung) Anweisung ; einfache Alternative if (Bedingung) Anweisung ; else Anweisung; CASE-Anweisung

If-Anweisung Wenn der boolsche Ausdruck zutrifft, d.h. true ist, wird dieanweisung ausgeführt, hat der boolesche Ausdruck den Wert false, wird die Anweisung nach else ausgeführt. if ( boolscher Ausdruck ) Anweisung ; ; else Anweisung Der else-zweig g ist optional. In diesem Fall (Bedingte Verarbeitung) wird nach dem if-zweig ein Semikolon gesetzt. Falls der boolsche Ausdruck true ist, wird die Anweisung ausgeführt, die danach folgt, ansonsten wird sie übersprungen und die nächste Anweisung im Programm abgearbeitet. Einseitige Auswahl if (Bedingung) Anweisung; if (Bedingung) { Anweisung_1; Anweisung_2; } wahr Verarbeitung Anweisung 1 Bedingung falsch Beispiel: if (a > b) System.out.println ( A ist größer als B );

Zweiseitige Auswahl if (Bedingung) Anweisung; else Anweisung; if (Bedingung) { Anweisung_1; Anweisung_2; } else {Anweisung_1; Anweisung_2; } wahr Bedingung falsch Verarbeitung Verarbeitung Anweisung 1 Anweisung 2 Beispiel: if (a > b) System.out.println ( A ist größer als B ); else System.out.println ( A ist kleiner oder gleich B ); Geschachtelte IF-Anweisung Nach der booleschen Bedingung und nach dem else kann jeweils eine beliebige Anweisung folgen, also auch eine weitere IF-Anweisung (Geschachtelte IF- Anweisung). Verwendung finden diese geschachtelten IF-Anweisungen dann, wenn mehr als zwei Fälle abzuprüfen sind bzw. wenn die Ausführung einer Anweisung von mehreren Bedingungen abhängig gemacht werden sollen. Beachte: Anweisung kann komplex und unübersichtlich werden! Insbesondere die Zuordnung des else-zweiges genau prüfen! Beispiel: if <Ausdruck_1> if <Ausdruck_2> if <Ausdruck_3> ANWEISUNG; else... ;

SWITCH-Anweisung Bedingte Anweisung Besteht aus dem Ausdruck (Selektor) und einer (beliebig langen) Liste von Zweigen, die durch Marken gekennzeichnet sind Ausführung derjenigen Anweisung, deren Marke einem Selektor entspricht Selektor muß ordinalen Typs sein SWITCH-Anweisung: Struktogramm Ausdruck Marke 1 Marke 2 Marke n sonst Anweisung Anweisung Anweisung Anweisung 1 2 n n+1

SWITCH-Anweisung: Syntax switch ( Ausdruck ) { case Marke : Anweisung ; break ; default : Anweisung ; } Switch Auswahl switch (Selektor) { case Konstante_1: Anweisung; break; case Konstante_2: Anweisung; break; default: Anweisung; } Beispiel: switch (a){ case 1: System.out.println ( Eins ); break; case 2: System.out.println ( Zwei ); break; default: System.out.println ( Nicht dabei ); }

Aufgabe Switch Ein Programm taschenrechner h soll zwei ganze Zahlen entweder addieren, subtrahieren, multiplizieren li i oder dividieren. idi Ein Menü soll dem Anwender die Auswahl ermöglichen. Bei der Division i i soll die unerlaubte Division i i durch 0 ausgeschlossen werden. Wiederholungs-anweisungen g Kopfgesteuerte t Schleifen Abbruchbedingung wird vor Ausführung der Anweisung geprüft FOR-Anweisung, WHILE-Anweisung Fußgesteuerte Schleife Abbruchbedingung wird nach Ausführung der Anweisung geprüft REPEAT-Anweisung

Struktogrammtechnik: Wiederholung mit fester Wiederholungszahl Bei einer ZÄHLSCHLEIFE ist die Anzahl der Wiederholung von Anfang an bekannt. Ein Schleifenzähler läuft von einem Anfangs- zu einem Endwert. Schleifenbedingung Verarbeitung Anweisung 1 Beispiel: Bei ausstehenden Zahlungen werden 3 mal Mahnungen verschickt, bis die Unterlagen an die Rechtsabteilung übergeben werden. FOR-Anweisung: Syntax for ( Laufvariable ; Bedingung ; Schrittweite ) { Anweisung ; }

FOR - Schleife Schleifenbedingung Verarbeitung Anweisung 1 for (Startwert; boole scher Ausdruck, Inkrement) Anweisung; Beispiel: int x; for (x=1; x < 10; x++){ System.out.println t tl ( For-Schleife ); System.out.println ( Wert von x: +x); } WHILE-Anweisung Syntax while Struktogramm boolescher Ausdruck Anweisung Schleifenbedingung Anweisung

WHILE-Anweisung Der boolesche Ausdruck wird am Eingang der WHILE-Schleife überprüft Wenn der Ausdruck den Wert true zurückliefert, wird der Anweisungsteil ausgeführt und der Ausdruck erneut ausgewertet Der Vorgang wiederholt sich, bis der boolesche Ausdruck den Wert false zurückgibt WHILE - Schleife while (boole scher Ausdruck) Anweisung; Schleifenbedingung Verarbeitung Anweisung 1 Beispiel: int x = 1; while (x++ < 10){ System.out.println ( While-Schleife ); System.out.println ( Wert von x: +x); }

do-while-anweisung Syntax do Anweisung while boolescher Ausdruck Struktogramm ; Anweisung Schleifenbedingung do-while-anweisung Der boolesche Ausdruck wird nach dem ersten Durchlaufen der Schleife geprüft es erfolgt wenigstens ein Schleifendurchlauf Wenn der Ausdruck den Wert false zurückliefert, wird die Schleife erneut durchlaufen Der Vorgang wiederholt sich, bis der boolesche Ausdruck den Wert true zurückgibt

DO WHILE Schleife do Anweisung; while (boole scher Ausdruck); Verarbeitung Anweisung 1 Schleifenbedingung Beispiel: int x = 1; do { System.out.println ( Do-Schleife ); System.out.println ( Wert von x: +x); } while (x++ < 10); Resümee: FOR-Anweisung Kopfgesteuerte t Schleife Laufvariable: ordinaler Typ Anzahl der Durchläufe muß im voraus bekannt sein Automatische Zählung der Durchläufe in der Schleifenanweisung

Resümee: WHILE- vs. DO-WHILE Anweisung WHILE-Anweisung Kopfgesteuerte Schleife Anzahl der Durchläuft wird über Abbruchbedingung gesteuert Steuervariable) Abbruchbedingung: boolescher Ausdruck ( Abbruch bei false ) DO-WHILE-Anweisung Fußgesteuerte Schleife Mindestens ein Durchlauf (!) Anzahl der Durchläufe wird über Abbruchbedingung gesteuert (Steuervariable) Abbruchbedingung: boolescher Ausdruck ( Abbruch bei true ) Methodenanweisung Eine Methode ist eine Anzahl von Anweisungen, die mit einem Namen versehen worden sind und unter diesem Namen aufgerufen werden können. Vorteile Wiederkehrende Aufgaben müssen nicht mehrfach kodiert werden Komplexe Programme werden in Teilaufgaben zerlegt Eine Methode besteht aus einem Methodenkopf und Methodenrumpf f (Inhalt) Beim Aufruf können von Fall zu Fall verschiedene Parameter übergeben werden.

Methodenanweisung Aufbau und Syntax: void Datentyp Methodenname ( Parameter ), { (Inhalt d. Methode } Methodenanweisung Methoden mit Wertrückgabe Methoden können über ihren Namen einen Wert zurück liefern Voraussetzung: Im Methodenkopf ist der Datentyp des Rückgabewertes anzugeben Innerhalb der Methode ist der Rückgabewert (mit return) ) zu definieren Beispiel:

Methodenanweisung Methoden ohne Wertrückgabe Methode liefert keinen Wert zurück Voraussetzung: Im Methodenkopf ist die Methode als void deklariert Beispiel: i Methodenanweisung Methoden mit Parameterliste t Einer Methode kann beim Aufruf ein oder mehrere Werte übergeben werden Voraussetzung: In der Parameterliste im Methodenkopf sind die erwarteten Wertebezeichner mit Datentyp aufgeführt Beim Aufruf der Methode sind die Werte in der Parameterliste anzugeben Beispiel:

Methodenanweisung Methoden mit Parameterliste t Beachte bei der Parameterliste: Die Reihenfolge und Anzahl der zu übergebenden Werte muss im Methodenaufruf und in der Parameterliste der Methode exakt übereinstimmen Die Variablenbezeichner der Parameterliste im Methodenkopf sind ausschließlich innerhalb der Methode bekannt! bei gleicher Bezeichnung, z.b. einer globalen l Variablen a und einer Parametervariablen a wird in der Methode die Parametervariable a genutzt! Beispiel: