next up previous contents
Nächste Seite: Eine Beispielklasse (krypto.java) Aufwärts: Objektorientierte Programmierung (OOP) Vorherige Seite: Objektorientierte Programmierung (OOP)   Inhalt

Objekte und Methoden verwenden

Mit Hilfe objektorientierter Programmierung können solche Programmieraufgaben einfacher und übersichtlicher gelöst werden. Wir versuchen beispielsweise ein umfassenderes Programm zur Verschlüsselung zu entwickeln. Zunächst fassen wir einige Aufgaben zusammen, die dieses Programm lösen können soll, wie z.B.:

Die notwendigen Variablen und Methoden fassen wir in eine eigene Klasse zusammen, die wir krypto nennen wollen. Von dieser Klasse verwenden wir im nächsten Beispiel die folgenden Methoden:

Damit lässt sich ein Beispiel zum Verschlüsseln und Entschlüsseln einer Textdatei kurz realisieren (krtest.java):

import java.io.*;
import krypto.*;

public class krtest {
    public static void main (String args[]) throws Exception {

        krypto daten = new krypto();
        String klarzeile;
        String geheimzeile;

        try {
            BufferedReader lesen;
            DataOutputStream schreiben;

            lesen = daten.ropen("krein.txt");
            schreiben = daten.wopen("kraus.txt");
            klarzeile = daten.zeilelesen(lesen);
            geheimzeile = daten.encaesar(klarzeile, 3);
            daten.zeileschreiben(schreiben,geheimzeile);
            System.out.println(".");

            lesen = daten.ropen("kraus.txt");
            daten.ausgeben(lesen);
            System.out.println("---------------");

            lesen = daten.ropen("kraus.txt");
            schreiben = daten.wopen("krkla.txt");
            geheimzeile = daten.zeilelesen(lesen);
            klarzeile = daten.decaesar(geheimzeile, 3);
            daten.zeileschreiben(schreiben,klarzeile);

            lesen = daten.ropen("krkla.txt");
            daten.ausgeben(lesen);
            
        }
        catch (Exception e) {
            System.out.println(e.toString());
        }
    }
}

Im gleichen Verzeichnis liegt die Datei krein.txt mit folgendem Inhalt vor:

indieserzeilestehtklartext
desgleicheninderzweiten
unddasistdieletztezeile

Beim Aufruf des Programmes (der ``Klasse'') erhalten wir folgendes Ergebnis:

alfred@newbie:~/java/krypto > java krtest
.
LQGLHVHUCHLOHVWHKWNODUWHAW
---------------
INDIESERZEILESTEHTKLARTEXT
Der Punkt am Anfang der Zeile wird beim Einlesen einer Klartext-Zeile ausgegeben (die Zahl der ausgegebenen Punkte entspricht somit der Anzahl der eingelesenen Klartext-Zeilen...).

Beachte, dass für das obige Beispiel die Klasse krypto importiert wird! Liegt diese Klasse im gleichen Verzeichnis wie der Beispiel-Quelltext, könnte der Import allerdings auch entfallen, weil alle Klassen im gleichen Verzeichnis bei der Laufzeit zur Verfügung stehen.


Erweitere das Beispiel so, dass nicht nur die erste Zeile einer Textdatei, sondern alle Zeilen bis ans Dateiende eingelesen und verschlüsselt werden!

alfred@newbie:~/java/krypto > java krdat
.
.
.
LQGLHVHUCHLOHVWHKWNODUWHAW
GHVJOHLFKHQLQGHUCZHLWHQ
XQGGDVLVWGLHOHWCWHCHLOH
---------------
INDIESERZEILESTEHTKLARTEXT
DESGLEICHENINDERZWEITEN
UNDDASISTDIELETZTEZEILE

next up previous contents
Nächste Seite: Eine Beispielklasse (krypto.java) Aufwärts: Objektorientierte Programmierung (OOP) Vorherige Seite: Objektorientierte Programmierung (OOP)   Inhalt
Alfred Nussbaumer 2003-02-10