620.900 Propädeutikum zur Programmierung Lösung der Aufgabe

Werbung
620.900 Propädeutikum zur
Programmierung
Andreas Bollin
Institute für Informatik Systeme
Universität Klagenfurt
[email protected]
Tel: 0463 / 2700 - 3516
Lösung der Aufgabe (1/1)
?
Lösung Aufgabe 3:
?
ISYS (ab)
DezBin (?N; ?b1 ... ?bn)
Propädeutikum zur Programmierung – Teil 3
Seite 2 von 27
1
Klassen und Objekte (1/5)
?
class DezBin1 {
DezBin
in Java
(Variante 1):
public static void main (String [] args) {
int n = 254; int p = 0;
if (n == 0) System.out.println ("0");
?
?
else while (n > 0) {
Wie sieht die
Ausgabe aus?
if (n % 2 == 1)
System.out.println ("1*2^"+p);
Was, wenn
ich für n
verschiedene
Werte einsetzen will?
else
System.out.println ("0*2^"+p);
p = p+1; n = n / 2;
}
}
}
ISYS (ab)
Propädeutikum zur Programmierung – Teil 3
Seite 3 von 27
Klassen und Objekte (2/5)
?
?
DezBin
in Java
(Variante 2):
void Calc (int n) {
int p = 0;
if (n == 0) System.out.println ("0");
else while (n > 0) {
Idee: Wiederverwenden
von Code!
if (n % 2 == 1)
System.out.println ("1*2^"+p);
else
System.out.println ("0*2^"+p);
p = p+1; n = n / 2;
}
}
ISYS (ab)
Propädeutikum zur Programmierung – Teil 3
Seite 4 von 27
2
Klassen und Objekte (3/5)
?
?
DezBin
in Java
(Variante 2):
class DezBin2 {
static void Calc (int n) {
.....
}
Idee: Wiederverwenden
von Code!
public static void main (String [] args) {
int n = 254; System.out.println (n + " = ");
Calc (n);
?
Calc ist eine
Methode
der Klasse
DezBin2
ISYS (ab)
n = 129; System.out.println (n + " = ");
Calc (n);
}
}
Propädeutikum zur Programmierung – Teil 3
Seite 5 von 27
Klassen und Objekte (4/5)
?
Grundgedanke: Rationalisierung der
Programmierung durch Verwenden von Objekten
?
?
?
?
Kapseln von Daten und Funktionen in Klassen
?
?
?
ISYS (ab)
Idee erstmals in Simula-67 angewandt und in Smalltalk
vollstandig ausgebaut.
Wiederverwenden von Funktionen und Prozeduren (=
Methoden).
Wiederverwenden von Datentypen.
Klassen beschreiben eine Menge von Objekten.
Dadurch Wiederverwenden von ÄHNLICHEN Objekten.
Aber auch Einbau von Sicherheitsmechanismen möglich.
Propädeutikum zur Programmierung – Teil 3
Seite 6 von 27
3
Klassen und Objekte (5/5)
?
Einige Beispiele:
?
?
?
?
?
Klasse „Mathematik“ mit Methoden zum Berechnen des
ggT, Primzahltest, ...
Klasse Simulation mit Methoden zum Zeichnen von 2D
und 3D-Objekten
Klassen können nun Eigenschaften (Methoden, ...)
von anderen Klassen weiterverwenden.
Hat man eine Klasse (=Beschreibung, Muster), so
kann man sich davon Objekte erzeugen.
Objekte können dann auf andere Objekte
zugreifen (weiterverwenden), mit ihnen über
Nachrichten kommunizieren.
ISYS (ab)
Propädeutikum zur Programmierung – Teil 3
Seite 7 von 27
Klassen in Java (1/3)
?
?
In Java gibt es bereits eine Vielzahl an
(wiederverwendbaren, vordefinierter) Klassen.
Diese werden in Packages gesammelt und über
das import Kommando in die eigene Klasse
übernommen:
?
?
?
?
ISYS (ab)
import
import
import
import
java.awt;
sio;
java.math;
java.sql;
Propädeutikum zur Programmierung – Teil 3
Seite 8 von 27
4
Klassen in Java (2/3)
?
Typische Java-Programm:
import java.lang.String;
import sio;
class Typisch {
static void Methode1 (String [] s) { ... }
static int Methode2 (char c) { ... }
....
public static void main (String [] args) { ... }
}
ISYS (ab)
Propädeutikum zur Programmierung – Teil 3
Seite 9 von 27
Klassen in Java (3/3)
?
Java hat ein eindeutiges Namensschema für
Klassen und Methoden:
?
Package-Name.Klassenname.Methodenname
import java.lang.String.substring()
?
?
Namensschema spiegelt Directory-Struktur wider.
Beim Importieren kann man auch abkürzen:
import java.lang.*;
ISYS (ab)
Propädeutikum zur Programmierung – Teil 3
Seite 10 von 27
5
Ein-/Ausgabe in Java (1/2)
?
Ein-/Ausgabe nicht Teil der Sprache, aber Teil der
Java-Bibliothek
?
?
?
Ein-/Ausgabe einer Zahl:
?
?
?
?
int i = In.readInt () // Zahl lesen und in i ablegen
Out.print(„Test“); // Ausgabe von Test
Out.println(„Test“); // Ausgabe incl. CRLF
Zugriff auf Dateien:
?
?
ISYS (ab)
Sehr komplex!
Für ESOP: Einfache Klasse
„In.java“ und „Out.java“
In.open(„abc.txt“); // Öffnen der Datei
In.close()
// Schließen der Datei
Propädeutikum zur Programmierung – Teil 3
Seite 11 von 27
Ein-/Ausgabe in Java (2/2)
?
Beispiel:
class IOTest {
public static void main (String [] args) {
int i,j,sum;
Out.println("Bitte 2 Zahlen eingeben:");
i = In.readInt(); j = In.readInt();
Out.open("abc.txt");
Out.println("Sum =" + (i+j));
Out.close();
}
}
ISYS (ab)
Propädeutikum zur Programmierung – Teil 3
Seite 12 von 27
6
Beispiele (1/5)
?
Bsp01: Terminieren alle 3 Schleifen?
Schleife 1
Schleife 2
Schleife 3
i = 100; j = 27;
i = 1; j = 20;
int i = 1, j = 1;
while (i != j ) {
while (i+j < j) {
do {
i = i / 2;
i = i + 2;
i = i + 1;
j = j / 3;
j = j - 1;
j = j + 1;
}
}
?
} while (i < 200);
Schleifen 1,3 terminieren, 2 nicht ausgef.!
ISYS (ab)
Propädeutikum zur Programmierung – Teil 3
Seite 20 von 27
Aufgaben (1/1)
?
Bis 12.10.2001 (9 Uhr):
?
?
Eintragen der email-Adresse in der Nora.
Email an [email protected] mit:
?
?
?
Bis 12.11.2001 (9 Uhr):
?
Email an [email protected] mit:
?
?
ISYS (ab)
3 Punkten: Was hat mit gefallen?
3 Punkten: Was würde ich besser/anders machen?
2-3 Punkte: Was wünsche ich mir an Inhalt für den
Novemberblock? (Fragen zum ESOP-Stoff)
Beide Aufgaben gehen in die Endnote ein!
Propädeutikum zur Programmierung – Teil 3
Seite 25 von 27
7
Weitere Informationen (1/2)
?
Literatur
?
?
?
?
Sprechen Sie Java. Hanspeter Mössenböck.
dpunkt.Verlag, 2001.
Java in a Nutshell. David Flanagan. O‘Reilly, 1999.
Lehrbuch der Programmierung mit Java. Klaus Echtle,
Michael Goedicke. dpunkt.Verlag, 2000.
Online-Dokumentation - Links
?
?
?
ISYS (ab)
www.boku.ac.at/javaeinf/jein.html
java.sun.com/j2se/1.3/docs.html
bscw-itec.uni-klu.ac.at
Propädeutikum zur Programmierung – Teil 3
Seite 26 von 27
Weitere Informationen (2/2)
?
Weitere interessante Links
?
?
?
?
?
ISYS (ab)
forum.java.sun.com
Entwicklerplatform
www.google.de
Suchmaschine
www.cetus-links.org
Objektorientierung, Linkssammlung
www.ifi.uni-klu.ac.at/Courses-Exams/courses/005
SW1 Homepage
www.ifi.uni-klu.ac.at/Andreas.Bollin/private/lehre.html
Weitere interessante Lehrveranstaltungen ?
Propädeutikum zur Programmierung – Teil 3
Seite 27 von 27
8
Herunterladen