Fakultät für Wirtschaftswissenschaften Einführung in die Programmierung Ausführbare Klassen Uwe Lämmel www.wi.hs-wismar.de/~laemmel [email protected] Uwe Lämmel Algorithmen Folie 1 Inhalt Arten von Klassen ausführbare Klassen – main-Methode – statische Methoden Bibliotheksklassen Uwe Lämmel Algorithmen Folie 2 Klasse Klasse Bauplan ausführbare Bauplan beschreibt Objekte: Merkmale Konstruktoren Zugriffsmethoden weitere Methoden keine Ausführung Objekte werden in anderen Klassen erzeugt Methode an Objekt gesendet: stud1.getName(); Uwe Lämmel Bibliothek nur Ausführung in main-Methode keine Objekte der Klasse kann in Kommandozeile aktiviert werden: C:\temp>java MyProg statische Methoden möglich: public static void ausgabe()… Algorithmen Folie 3 Beispiel: Zahleneingabe und Berechnung 1 /** * Ausführbare Klasse: Einlesen von Zahlen * */ class ZahlenEingabe { public static void main(String[] args) throws Exception{ LineIO io = new LineIO(); int maxAnzahl = 100; int[] zahlen = new int[maxAnzahl]; int anzahl = 0; int zahl; int endeZahl = -1; // Einlesen der Zahlen folgt hier… Uwe Lämmel Algorithmen Folie 4 Beispiel: Zahleneingabe und Berechnung 2 //Einlesen von Zahlen do { zahl = io.readInt(" Bitte Zahl eingeben [-1 für Ende]: "); // Wenn Zahl nicht Ende und noch Platz im Array if(zahl != endeZahl && anzahl < maxAnzahl){ //in Array eintragen zahlen[anzahl] = zahl; anzahl++; } while(zahl != endeZahl); //Anzahl bestimmen? io.writeln("Es wurden "+anzahl+" Zahlen eingelesen."); //Ausgeben for(int i=0 ; i<anzahl ; i++) io.write(zahlen[i],4); io.writeln(); … Uwe Lämmel Algorithmen Folie 5 Erweiterung: statische Methoden class ZahlenBearbeiten { public static int [] zahlenEingeben() { … } public static int summe( int[] folge, int anz) { … } public static void ausgabe( int[] folge, int anz) { …} public static void main(String[] args) throws Exception{ … } } // ZahlenBearbeiten Uwe Lämmel Algorithmen Folie 6 Ausführbare Klasse KEINE Objekte: – keine Merkmale, Konstruktoren, Zugriffsmethoden main-Methode (ist immer static !) eventuell: – weitere statische Methoden – statische Variabel Uwe Lämmel Algorithmen Folie 7 Bibliotheksklasse KEINE Objekte: – keine Merkmale, Konstruktoren, Zugriffsmethoden KEINE main-Methode Sammlung von statischen Methoden (z.B. java.lang.Math) Beispiel: mathematische Funktionen, Sortierfunktionen, … Uwe Lämmel Algorithmen Folie 8 Aufgabe: Sieb des Eratosthenes Zahl n einlesen Array mit Elementen von 0..n erzeugen; – Alle Komponenten auf true setzen Mit 2 beginnen bis n: alle Vielfachen im Array „streichen“, d.h. auf false setzen Ausgabe der Primzahlen zwischen 0..n Uwe Lämmel Algorithmen Folie 9 Zeichenketten und statische Methoden Suche nach einem Zeichen Ermittlung der Häufigkeiten von Zeichen Uwe Lämmel Algorithmen Folie 10 Ende Uwe Lämmel Algorithmen Folie 11