Praktische Softwaretechnologie Vorlesung 2

Ähnliche Dokumente
Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

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

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

Primitive Datentypen

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Einführung in C. EDV1-04C-Einführung 1

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

Programmieren I + II Regeln der Code-Formatierung

Algorithmen zur Datenanalyse in C++

Einstieg in die Informatik mit Java

Java I Vorlesung Imperatives Programmieren

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Einführung in die Programmierung 1

Methoden und Wrapperklassen

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

Unterlagen. CPP-Uebungen-08/

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

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Programmieren I + II Regeln der Code-Formatierung

Vorkurs Informatik WiSe 16/17

Imperative Programmierung in Java. Algorithmen und Datenstrukturen II 1

Informatik I - Einstiegskurs

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

Softwareentwicklung Java allgemein, Kommentare, Datentypen, Variablen, Konstanten

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

3.2 Datentypen und Methoden

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

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

Die Programmiersprache C Eine Einführung

2 Eine einfache Programmiersprache

RO-Tutorien 3 / 6 / 12

3. Java - Sprachkonstrukte I

Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration

Grundlagen der OO- Programmierung in C#

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

Distributed Computing Group

Wo sind wir? Übersicht lexikale Struktur von Java

Die einfachsten Anweisungen

RO-Tutorien 15 und 16

AuD-Tafelübung T-B5b

Einleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++

Algorithmen und Datenstrukturen II

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel

Welche Informatik-Kenntnisse bringen Sie mit?

Tag 4 Repetitorium Informatik (Java)

Grundlagen von C# - 1

Datenstrukturen und Algorithmen

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Repetitorium Informatik (Java)

C++ vs. Java. Hello world! Java C++ class HelloWorld { static public void main(string args) { System.out.println("Hello World!

Java Einführung Programmcode

Java Datentypen und Variablen

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

Einführung in die C-Programmierung

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

JAVA-Datentypen und deren Wertebereich

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen

Grundlagen der Programmierung Teil1 Einheit III Okt. 2009

Java-Schulung Grundlagen

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

JAVA - Methoden

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen

MiniJava-Sprachbericht Version 3.1

Sprachkonstrukte Verzweigungen und Array-Strukturen

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java: Eine kurze Einführung an Beispielen

1 Klassen und Objekte

Einstieg in die Informatik mit Java

Java - Programmierung - Prozedurale Programmierung 1

Übungen zu Programmieren - Code-Formatierung -

Praktische Softwaretechnologie Vorlesung 3

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java

Kapitel 16: Java Grundlagen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1. Abbildungsverzeichnis 2

Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache. Dr. Beatrice Amrhein

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays

Martin Unold INFORMATIK. Geoinformatik und Vermessung

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Einführung in Java. Ausgewählte Quellen zu Java

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Kleines Java-Glossar zum Praktikum Einführung in das Programmieren

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp

EINFÜHRUNG IN DIE PROGRAMMIERUNG

1 Klassen anlegen und Objekte erzeugen

Imperative Programmierung in Java. Algorithmen und Datenstrukturen II 1

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Datenbankanwendungsprogrammierung Crashkurs Java

Objektorientierung (OO)

Vorlesung Informatik II

Javakurs für Anfänger

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Einführung in Java. Silke Trißl Wissensmanagement in der Bioinformatik. Linux, Unix, Windows, Macintosh, Kann aus Bausteinen zusammengesetzt werden

Transkript:

Praktische Softwaretechnologie Vorlesung 2 Martin Giese Johann Radon Institute for Computational and Applied Mathematics Österr. Akademie der Wissenschaften Linz PSWT 2006 p.1/34

Bücher James Gosling, Bill Joy, Guy Steele The Java TM Language Specification PSWT 2006 p.2/34

Bücher James Gosling, Bill Joy, Guy Steele, Gilad Bracha The Java TM Language Specification (2nd/3rd edition) (online) PSWT 2006 p.2/34

Bücher James Gosling, Bill Joy, Guy Steele, Gilad Bracha The Java TM Language Specification (2nd/3rd edition) (online) Ken Arnold, James Gosling, David Holmes The Java TM Programming Language PSWT 2006 p.2/34

Bücher James Gosling, Bill Joy, Guy Steele, Gilad Bracha The Java TM Language Specification (2nd/3rd edition) (online) Ken Arnold, James Gosling, David Holmes The Java TM Programming Language S. Zakhour, S. Hommel, et al The Java TM Tutorial (online) PSWT 2006 p.2/34

Bücher James Gosling, Bill Joy, Guy Steele, Gilad Bracha The Java TM Language Specification (2nd/3rd edition) (online) Ken Arnold, James Gosling, David Holmes The Java TM Programming Language S. Zakhour, S. Hommel, et al The Java TM Tutorial (online) Xiaoping Jia Object-Oriented Software Development Using Java Principles... PSWT 2006 p.2/34

Bücher James Gosling, Bill Joy, Guy Steele, Gilad Bracha The Java TM Language Specification (2nd/3rd edition) (online) Ken Arnold, James Gosling, David Holmes The Java TM Programming Language S. Zakhour, S. Hommel, et al The Java TM Tutorial (online) Xiaoping Jia Object-Oriented Software Development Using Java Principles... Bruce Eckel Thinking in Java (3rd edition online) PSWT 2006 p.2/34

Geschichte von Java Als Oak von James Gosling (erste Version von Emacs) 1991 begonnen Erste öffentliche Version 1995 Bis Ende 1995: Integration in Netscape (auch JavaScript) Sprachdefinition 1996 von Gosling, Bill Joy (BSD Unix, csh, vi, Teile von TCP/IP,... ), Guy Steele (Common LISP Buch, Scheme,... ) PSWT 2006 p.3/34

Geschichte von Java Als Oak von James Gosling (erste Version von Emacs) 1991 begonnen Erste öffentliche Version 1995 Bis Ende 1995: Integration in Netscape (auch JavaScript) Sprachdefinition 1996 von Gosling, Bill Joy (BSD Unix, csh, vi, Teile von TCP/IP,... ), Guy Steele (Common LISP Buch, Scheme,... ) Zum Vergleich: Anfänge des World Wide Web 1990 1991 Netscape: 1994 Internet Explorer: 1995 PSWT 2006 p.3/34

Übersetzung von C Programmen int main(int argc, char* argv[]) { printf("hello World\n"); hello.c C Compiler Ausfuehrbares Programm hello.exe PSWT 2006 p.4/34

Übersetzung von Java Programmen class HelloWorld { public static void main(string args[]) { System.out.println("Hello World"); HelloWorld.java Java Compiler (javac) Byte-Code Datei HelloWorld.class Byte-Code Interpreter (java) PSWT 2006 p.5/34

Konsequenzen von Byte-Code.class Dateien Plattform-unabhängig auf verschiedenen Systemen lauffähig Compiler Plattform-unabhängig PSWT 2006 p.6/34

Konsequenzen von Byte-Code.class Dateien Plattform-unabhängig auf verschiedenen Systemen lauffähig Compiler Plattform-unabhängig Code sehr kompakt gut für Übertragung über Netzwerk PSWT 2006 p.6/34

Konsequenzen von Byte-Code.class Dateien Plattform-unabhängig auf verschiedenen Systemen lauffähig Compiler Plattform-unabhängig Code sehr kompakt gut für Übertragung über Netzwerk Interpreter kann Zugriffsrechte überprüfen Vertrauen in fremden Code nicht nötig PSWT 2006 p.6/34

Konsequenzen von Byte-Code.class Dateien Plattform-unabhängig auf verschiedenen Systemen lauffähig Compiler Plattform-unabhängig Code sehr kompakt gut für Übertragung über Netzwerk Interpreter kann Zugriffsrechte überprüfen Vertrauen in fremden Code nicht nötig Reflektion leichter PSWT 2006 p.6/34

Konsequenzen von Byte-Code.class Dateien Plattform-unabhängig auf verschiedenen Systemen lauffähig Compiler Plattform-unabhängig Code sehr kompakt gut für Übertragung über Netzwerk Interpreter kann Zugriffsrechte überprüfen Vertrauen in fremden Code nicht nötig Reflektion leichter Nicht so schnell wie Maschinensprache PSWT 2006 p.6/34

Konsequenzen von Byte-Code.class Dateien Plattform-unabhängig auf verschiedenen Systemen lauffähig Compiler Plattform-unabhängig Code sehr kompakt gut für Übertragung über Netzwerk Interpreter kann Zugriffsrechte überprüfen Vertrauen in fremden Code nicht nötig Reflektion leichter Nicht so schnell wie Maschinensprache Mit JIT aber fast! PSWT 2006 p.6/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); PSWT 2006 p.7/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); Das class Schlüsselwort. Java Programme bestehen aus Klassen- und Interface-Definitionen PSWT 2006 p.7/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); Der Klassenname. Groß geschrieben, bei mehreren Wörtern: durchgroßbuchstabentrennen ( camel case ). PSWT 2006 p.7/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); Geschweifte Klammern wie in C. Dazwischen Deklaration von allen Attributen und Methoden. PSWT 2006 p.7/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); Das public Schlüsselwort. Diese Methode kann von jeder anderen Klasse aus aufgerufen werden. PSWT 2006 p.7/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); Das static Schlüsselwort. Diese statische Methode wird von von allen Instanzen der Klasse geteilt. PSWT 2006 p.7/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); Der leere Typ void. Diese Methode hat keinen Rückgabewert. PSWT 2006 p.7/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); Der Methodenname. Methodennamen fangen mit kleinen Buchstaben an, weiter in camel case. Methoden mit Namen main können als Hauptprogramm aufgerufen werden: java HelloWorld Aufruf von HelloWorld.main(... ) PSWT 2006 p.7/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); Die Klasse String für Unicode Zeichenketten ist in den Standardbibliotheken enthalten. Der Typ String[] bezeichnet arrays von Strings. PSWT 2006 p.7/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); Der Name des Arguments. Argumente, Attribute, Variablen auch mit Kleinbuchstaben und camel case. Argumente des Hauptprogramms werden aus der Kommandozeile genommen. PSWT 2006 p.7/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); Die System Klasse enthält Methoden um auf die Laufzeit-Umgebung zuzugreifen: I/O, Environment, etc. PSWT 2006 p.7/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); out ist ein statisches Attribut der Klasse System. System.out hat den Typ java.io.printstream und ist die Standard Textausgabe. PSWT 2006 p.7/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); println ist eine Methode der Klasse PrintStream. Sie schreibt einen String in den Stream, gefolgt von einem Zeilenumbruch. PSWT 2006 p.7/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); Ein String Literal. PSWT 2006 p.7/34

Beispiel: HelloWorld class HelloWorld { public static void main(string[] args) { System.out.println("Hello World"); Statements werden mit Semikolon beendet. PSWT 2006 p.7/34

HelloWorld Diagramm HelloWorld +main(args:string[]) System +in: InputStream +out: PrintStream +err: PrintStream +...() PrintStream +println(s:string)...() Standard Ausgabe PSWT 2006 p.8/34

Datentypen 2 Arten von Datentypen: primitive Typen: int, char, float, etc. wie entsprechende Typen in C PSWT 2006 p.9/34

Datentypen 2 Arten von Datentypen: primitive Typen: int, char, float, etc. wie entsprechende Typen in C Referenztypen: Referenzen auf Objekte, ungefähr wie Zeiger auf struct in C PSWT 2006 p.9/34

Datentypen 2 Arten von Datentypen: primitive Typen: int, char, float, etc. wie entsprechende Typen in C Referenztypen: Referenzen auf Objekte, ungefähr wie Zeiger auf struct in C Arrays, Strings, u.a. werden von der Sprache direkt unterstützt, sind aber letztlich Objekttypen. PSWT 2006 p.9/34

Primitive Typen byte: 2 7... + 2 7 1 short: 2 15... + 2 15 1 int: 2 31... + 2 31 1 long: 2 63... + 2 63 1 float: 32-bit IEEE 754 Fließkommazahl double: 64-bit IEEE 754 Fließkommazahl boolean: true oder false char: ein 16-bit Unicode Zeichen PSWT 2006 p.10/34

Primitive Typen byte: 2 7... + 2 7 1 short: 2 15... + 2 15 1 int: 2 31... + 2 31 1 long: 2 63... + 2 63 1 float: 32-bit IEEE 754 Fließkommazahl double: 64-bit IEEE 754 Fließkommazahl boolean: true oder false char: ein 16-bit Unicode Zeichen Maschinenunabhängig PSWT 2006 p.10/34

Primitive Typen byte: 2 7... + 2 7 1 short: 2 15... + 2 15 1 int: 2 31... + 2 31 1 long: 2 63... + 2 63 1 float: 32-bit IEEE 754 Fließkommazahl double: 64-bit IEEE 754 Fließkommazahl boolean: true oder false char: ein 16-bit Unicode Zeichen Arithmetik modulo 2 n PSWT 2006 p.10/34

Primitive Typen byte: 2 7... + 2 7 1 short: 2 15... + 2 15 1 int: 2 31... + 2 31 1 long: 2 63... + 2 63 1 float: 32-bit IEEE 754 Fließkommazahl double: 64-bit IEEE 754 Fließkommazahl boolean: true oder false char: ein 16-bit Unicode Zeichen kein unsigned PSWT 2006 p.10/34

Primitive Typen byte: 2 7... + 2 7 1 short: 2 15... + 2 15 1 int: 2 31... + 2 31 1 long: 2 63... + 2 63 1 float: 32-bit IEEE 754 Fließkommazahl double: 64-bit IEEE 754 Fließkommazahl boolean: true oder false char: ein 16-bit Unicode Zeichen Defaultwerte 0, false,... PSWT 2006 p.10/34

Literale int: 23, 027 (oktal), 0x17 (hex) long: 9223372036854775807L float: 12.34f, 1.234e1f double: 12.34, 1.234e1, 12.34d boolean: true, false char: A, Ä, \n, \, \", \\, PSWT 2006 p.11/34

Variablendeklarationen Einfach (initialisiert mit default Wert): int i; Mit Initialisierung: int i = 23; Auch mitten im Block: int f(int i) { int j;... tue etwas mit i und j... boolean jpostitiv = (j > 0);... PSWT 2006 p.12/34

Arrays Arrays fast wie in C, aber: immer dynamisch alloziert! int f() { int a[10]; a[2] = 3;... wie in C geht nicht! PSWT 2006 p.13/34

Arrays (forts.) In Java: int f() { int[] a; // a Referenz auf ein Array von int a = new int[10]; // Platz für 10 int Werte allozieren a[2] = 3;... Arrays als Objekte realisiert int[] ist Referenztyp PSWT 2006 p.14/34

Arrays (forts.) Anzahl der Elemente eines Arrays: a.length a[0] ist erstes, a[a.length-1] letztes Element Keine Pointer-Arithmetik! In C: a+1 Zeiger auf Array ab dem 2. Element In Java: Separate Referenz auf Array und Index nötig PSWT 2006 p.15/34

Mehrdimensionale Arrays int[][] m; m: 1 2 13 0 8 1 5 2 3 PSWT 2006 p.16/34

Allozieren von mehrdimensionalen Arrays Ein 5 mal 5 Array: int[][] m; m = new int[][5]; for (int i=0;i<m.length;i++) { m[i] = new int[5]; oder, als Abkürzung dafür: int[][] m; m = new int[5][5]; PSWT 2006 p.17/34

Strings Unicode Strings Literale: "Eine Zeile\nNoch eine Zeile" Verketten von Strings: String a = "Eine Zeile"; String b = "Noch eine Zeile"; String zweizeilen = a + "\n" + b; Addition mit anderen Typen rechts: String s = "Die Antwort: " + 42; s ist nun "Die Antwort: 42" PSWT 2006 p.18/34

Mehr über Strings Auch Strings sind Referenztypen: String a = "einmalig"; String b = a; Hier wird die Referenz auf den String kopiert. String Objekte ändern sich nach ihrer Erzeugung nie ( immutable ) a = "absolut " + a; PSWT 2006 p.19/34

Mehr über Strings Auch Strings sind Referenztypen: String a = "einmalig"; String b = a; Hier wird die Referenz auf den String kopiert. String Objekte ändern sich nach ihrer Erzeugung nie ( immutable ) a = "absolut " + a; erzeugt einen neuen String "absolut einmalig" PSWT 2006 p.19/34

Mehr über Strings Auch Strings sind Referenztypen: String a = "einmalig"; String b = a; Hier wird die Referenz auf den String kopiert. String Objekte ändern sich nach ihrer Erzeugung nie ( immutable ) a = "absolut " + a; erzeugt einen neuen String "absolut einmalig" Speichert in a eine Referenz auf den neuen String PSWT 2006 p.19/34

Mehr über Strings Auch Strings sind Referenztypen: String a = "einmalig"; String b = a; Hier wird die Referenz auf den String kopiert. String Objekte ändern sich nach ihrer Erzeugung nie ( immutable ) a = "absolut " + a; erzeugt einen neuen String "absolut einmalig" Speichert in a eine Referenz auf den neuen String b verweist nach wie vor auf den alten String PSWT 2006 p.19/34

Operatoren Operatoren ähnlich wie in C Arithmetik: +, -, *, /, % Zuweisung: =, +=, -=... Vergleich: ==,!=, <, >, <=, >= Inkrement/Dekrement: ++, -- Logische Verknüpfungen: &&,,! Bit-weise: &,, ~ Konditional:? : PSWT 2006 p.20/34

Kontrollstrukturen: if-then-else int abs(int x) { if (x < 0) { return -x; else { return x; PSWT 2006 p.21/34

Kontrollstrukturen: switch String monat(int i) { switch(i) { case 1: return "Jänner"; break; case 2: return "Februar"; break;... default: return "Fehler!"; break; PSWT 2006 p.22/34

Kontrollstrukturen: while int quersumme(int i) { int q = 0; while (i!= 0) { q += i % 10; i /= 10; return q; PSWT 2006 p.23/34

Kontrollstrukturen: do-while String line; boolean end = false; do { line = input.readline();... end =... while (!end) PSWT 2006 p.24/34

Kontrollstrukturen: for int[] squares = new int[10]; for(int i=0; i<squares.length; i++) { squares[i] = i*i; for(int i=0; i<squares.length; i++) { System.out.println(squares[i]); PSWT 2006 p.25/34

Kontrollstrukturen: return int sgn(int i) { if (i == 0) { return 0; else if (i < 0) { return -1; else { return 1; PSWT 2006 p.26/34

Kontrollstrukturen: break/continue Ohne label: for(...;...;...) {... if (...) { break;... PSWT 2006 p.27/34

Kontrollstrukturen: break/continue Mit label: aussen: for(...;...;...) { for(...;...;...) {... if (...) { break aussen;... PSWT 2006 p.28/34

Statische Methoden Bislang noch keine selbst erzeugten Objekte. können keine Methoden auf Objekten aufrufen. PSWT 2006 p.29/34

Statische Methoden Bislang noch keine selbst erzeugten Objekte. können keine Methoden auf Objekten aufrufen. Hauptprogramm: public static void main(string[] args) PSWT 2006 p.29/34

Statische Methoden Bislang noch keine selbst erzeugten Objekte. können keine Methoden auf Objekten aufrufen. Hauptprogramm: public static void main(string[] args) Eigene statische Methoden: public static int mymethod(int i) PSWT 2006 p.29/34

Statische Methoden Bislang noch keine selbst erzeugten Objekte. können keine Methoden auf Objekten aufrufen. Hauptprogramm: public static void main(string[] args) Eigene statische Methoden: public static int mymethod(int i) Aufruf aus main durch result = mymethod(23); PSWT 2006 p.29/34

Statische Methoden Bislang noch keine selbst erzeugten Objekte. können keine Methoden auf Objekten aufrufen. Hauptprogramm: public static void main(string[] args) Eigene statische Methoden: public static int mymethod(int i) Aufruf aus main durch result = mymethod(23); globale Daten auch statisch static int[] qu; PSWT 2006 p.29/34

.java Dateien Im allg. eine Klassendefinition pro.java Datei. Name der Klasse muß mit Dateinamen übereinstimmen! Z.Bsp. Datei Exercise.java: class Exercise { static int zaehler; static double f(int i) {... public static void main(strig[] args) {... PSWT 2006 p.30/34

Kommentare 3 Arten: Einzeiler, von // bis Zeilenende Mehrzeilige, zwischen /* und */ JavaDoc, zwischen /** und */ PSWT 2006 p.31/34

Aufgabe 2 Vertiefen und Ergänzen des Stoffs durch Lesen im Java Tutorial: http://java.sun.com/docs/books/tutorial/java/index.html Object-Oriented Programming Concepts Language Basics PSWT 2006 p.32/34

Aufgabe 3 HelloWorld die Luxus-Ausgabe. java Hallo Hallo, wer ist denn da? java Hallo Martin Hallo Martin! java Hallo Tim Struppi Hallo Tim und Struppi! java Hallo Tick Trick Track Hallo Tick, Trick und Track! PSWT 2006 p.33/34

Aufgabe 4 Ein Programm zur Berechnung von Binomialkoeffizienten: ( ) n 0 = 1 ( ) n n = 1 ( ) n + 1 k + 1 = ( ) n k + ( ) n k + 1 und Und zwar... ( ) n k = 0 falls k < 0 oder k > n PSWT 2006 p.34/34

Aufgabe 4 Ein Programm zur Berechnung von Binomialkoeffizienten: ( ) n 0 = 1 ( ) n n = 1 ( ) n + 1 k + 1 = ( ) n k + ( ) n k + 1 und Und zwar... ( ) n k = 0 falls k < 0 oder k > n zuerst als zweifach rekursive Funktion PSWT 2006 p.34/34

Aufgabe 4 Ein Programm zur Berechnung von Binomialkoeffizienten: ( ) n 0 = 1 ( ) n n = 1 ( ) n + 1 k + 1 = ( ) n k + ( ) n k + 1 und Und zwar... ( ) n k = 0 falls k < 0 oder k > n zuerst als zweifach rekursive Funktion dann mit einem Array als Speicher für schon berechnete Werte PSWT 2006 p.34/34