Programmieren I Kapitel 4. Erste vollständige Programme Martin Griebl Universität Passau Kapitel 4: Programmierpraxis Ziel: Java­Programme schreiben und ausführen ■ Programmieren, übersetzen und ausführen ■ main­Methode ■ Bibliotheken Martin Griebl Universität Passau Programmerstellung ■ Modellieren des Problems ■ Spezifizieren der genauen Aufgabenstellung ■ Entwurf der Lösung ■ Codieren in der Programmiersprache ■ Testen ■ Dokumentieren Martin Griebl Universität Passau Programmieren in Java (1)Programmtext mit Editor schreiben Konventionen: Klassenname = Dateiname; Endung .java (2)Programmtext mit javac in Bytecode übersetzen ggf. reklamierte Fehler im Programmtext korrigieren (­> 1) generiert Bytecode (Endung: .class) (3)Bytecode mit java ausführen ■ gestartet wird Methode main ggf. erkannte Fehler korrigieren (­> 1) Alternativ: integrierte Entwicklungsumgebung (eclipse) Martin Griebl Universität Passau main ■ ■ Format: public static void main (String[] args){ ... } Regel: halte main (und seine Klasse) klein; es sollte (im Moment) nur ein einziges Objekt – üblicherweise einer anderen Klasse – kreieren und diesem die Kontrolle übergeben. ■ Ablauf: java <<klassenname>> generiert ein anonymes Objekt des entsprechenden Typs und führt dessen main aus; das Programm endet, wenn main (und seine darin aufgerufenen Aktionen) komplett abgearbeitet sind. Martin Griebl Universität Passau Beispiel ■ ■ ■ DoNothingWorld: class DoNothing { public static void main (String[] args){ } } Bildschirmausgabe: System.out.println(<<String>>); Beispiel: System.out.println(“Guten Morgen“); Hello World (ohne Objekte): class Hello { public static void main (String[] args){ System.out.println(“Hello World!“); } } Martin Griebl Universität Passau Beispiel ■ Hello World (mit Objekten): class HelloObj { // no attributes, no methods, except // one constructor method: HelloObj () { System.out.println(“Hello World!“); } } class MyHelloMain { public static void main (String[] args) { HelloObj h = new HelloObj(); } } Martin Griebl Universität Passau Beispiel ■ Ein sinnvolles Beispiel: Wurf ■ Klassen Wurf und Werfer ■ Physik nur aus der Formelsammlung ■ Verwendung einer selbst geschriebenen Klasse Terminal ■ private Methoden Martin Griebl Universität Passau Bibliotheken ■ ■ Wir betrachten Bibliotheken im Moment nur aus Anwendersicht Terminal bietet: print, println, read<<Typ>>, ask<<Typ>>, Matrizen­ und Vektor­IO ■ Standardbibs: java.io, java.util, java.net, java.math,.... ■ java.math bietet: PI, E, abs, round, ceil, pow, max, ... Martin Griebl Universität Passau Zusammenfassung ■ Programmierprozess ■ Übersetzen und ausführen ■ main ■ Bibliotheken Martin Griebl Universität Passau