Java 2 in 21 Tagen

Post on 26-Oct-2015

92 views 1 download

description

Java 2 in 21 Tagen

Transcript of Java 2 in 21 Tagen

  • ;-_=_Scrolldown to the Underground_=_-;

    Java 2 in 21 Tagen

    http://kickme.to/tiger/

  • InhaltsverzeichnisTag 1 Eine Handvoll Java

    Was ist Java?Warum lesen Sie dieses Buch?Eintauchen in die Java-ProgrammierungZusammenfassungFragen und Antworten

    Tag 2 Objektorientierte Programmierung - ein erster EindruckIn Objekten denkenObjekte und KlassenKlassen und deren Verhalten organisierenZusammenfassungFragen und Antworten

    Tag 3 Das Java-ABC

    Anweisungen und AusdrckeVariablen und DatentypenKommentareLiteraleAusdrcke und OperatorenString-ArithmetikZusammenfassungFragen und Antworten

    Tag 4 Arbeiten mit ObjektenErstellen neuer Objekte

    Inhaltsverzeichnis

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/inhalt.html (1 von 9) [19.04.2000 15:59:03]

  • SpeichermanagementVerwenden von Klassen- und InstanzvariablenAufrufen von MethodenKlassenmethodenReferenzen auf ObjekteCasting und Konvertieren von Objekten und PrimitivtypenObjekte vergleichen und mehrBestimmen der Klasse eines ObjektsKlassen und Methoden mit Reflexion inspizierenZusammenfassungFragen und Antworten

    Tag 5 Arrays, Bedingungen und Schleifen

    Arraysswitch-Bedingungenfor-Schleifenwhile- und do-SchleifenUnterbrechen von SchleifenBenannte SchleifenZusammenfassungFragen und Antworten

    Tag 6 Java: Eine Klassesprache

    Definieren von KlassenErstellen von Instanz- und KlassenvariablenErstellen von MethodenEntwickeln von Java-ApplikationenZusammenfassungFragen und Antworten

    Tag 7 Mehr ber Methoden

    Finalizer-MethodenZusammenfassung

    Inhaltsverzeichnis

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/inhalt.html (2 von 9) [19.04.2000 15:59:03]

  • Fragen und Antworten

    Tag 8 Grundlagen der Java-Applets

    Unterschiede zwischen Applets und AnwendungenSicherheitseinschrnkungen von AppletsEine Java-Version whlenErstellen von AppletsZusammenfassung

    Tag 9 Programme mit Grafik, Fonts und Farbe verfeinern

    Die Klasse GraphicsZeichnen und FllenText und SchriftenFarbeFortgeschrittene Grafikoperationen mit Java2DZusammenfassungFragen und Antworten

    Tag 10 Bilder, Sound und Animation

    Animationen unter Java erstellenDas Flimmern in Animationen reduzierenBilder laden und anzeigenAnimationen mit BildernKlnge laden und verwendenZusammenfassungFragen und Antworten

    Tag 11 Einfache Benutzeroberflchen fr Applets

    Das Abstract Windowing ToolkitDie Basiskomponenten der BenutzeroberflcheZusammenfassungFragen und Antworten

    Tag 12 Benutzerschnittstellen entwerfen

    Inhaltsverzeichnis

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/inhalt.html (3 von 9) [19.04.2000 15:59:03]

  • Das elementare Layout einer BenutzerschnittstelleVerschiedene Layout-Manager gleichzeitigFortgeschrittene Layout-ManagerZusammenfassungFragen und Antworten

    Tag 13 Ereignisverarbeitung in Applets

    EreignisverarbeitungMausklicks behandelnMausbewegungen behandelnBehandlung von TastaturereignissenBeispiel: Zeichen eingeben, anzeigen und versetzenDer generische EventhandlerHandhabung von Ereignissen der BenutzeroberflcheBeispiel: HintergrundfarbwechslerEreigniscode einfgenZusammenfassungFragen und Antworten

    Tag 14 Fortgeschrittene Benutzeroberflchen mit dem AWT

    Fenster, Frames und DialogfelderMensAWT-Stand-alone-Applikationen erstellenKomplettes Beispiel: RGB/HSB-KonverterZusammenfassungFragen und Anworten

    Tag 15 Pakete, Schnittstellen und mehr

    ModifierZugriffskontrolle fr Methoden und VariablenVier SchutzebenenKonventionen fr den Zugriff auf InstanzvariablenZugriffskontrolle und Vererbung

    Inhaltsverzeichnis

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/inhalt.html (4 von 9) [19.04.2000 15:59:03]

  • Accessor-MethodenKlassenvariablen und -methodenDer final-Modifierabstract-Methoden und -KlassenVerzeichnisstruktur definierenPakete und KlassenschutzWas sind Schnittstellen?Das Problem der EinfachvererbungSchnittstellen und KlassenInterne KlassenZusammenfassungFragen und Antworten

    Tag 16 Ausnahmezustnde: Fehlerbehandlung und Sicherheit

    Programmieren im groenProgrammieren im kleinenEinschrnkungen beim ProgrammierenDie finally-KlauselDigitale Signaturen zur Identifikation von AppletsZusammenfassungFragen und Antworten

    Tag 17 Java und Streams

    Eingabedatenstreams und ReaderAusgabedatenstreams und WriterZusammenhngende KlassenZusammenfassungFragen und Antworten

    Tag 18 Kommunikation ber das Internet

    Netzwerkprogrammierung in JavaTrivia: Ein einfacher Socket-Client und -ServerZusammenfassung

    Inhaltsverzeichnis

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/inhalt.html (5 von 9) [19.04.2000 15:59:03]

  • Fragen und Antworten

    Tag 19 JavaBeans und andere fortgeschrittene Features

    Applet-TricksAusschneiden, Kopieren und EinfgenZusammenfassungFragen und Antworten

    Tag 20 Benutzerschnittstellen mit Swing

    Die Vorteile von SwingDer Umgang mit SwingNeue Features von SwingZusammenfassungFragen und Antworten

    Tag 21 Ereignisbehandlung mit Swing

    Das HauptereignisMit Methoden arbeitenZusammenfassungFragen und Antworten

    Anhang A Java-Sprachbersicht

    Reservierte WrterKommentareLiteraleVariablendeklarationWertzuweisung an VariablenOperatorenObjekteArraysSchleifen und BedingungenKlassendefinitionenMethoden- und Konstruktor-DefinitionenImport

    Inhaltsverzeichnis

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/inhalt.html (6 von 9) [19.04.2000 15:59:03]

  • berwachung

    Anhang B Die Java-Klassenbibliothek

    java.appletjava.awtJava.awt.colorjava.awt.datatransferjava.awt.dndjava.awt.eventJava.awt.fontjava.awt.geomjava.awt.imjava.awt.imagejava.awt.image.renderablejava.awt.peer (nur Java 1.1)java.awt.printjava.beansjava.beans.beancontextjava.iojava.langjava.lang.refjava.lang.reflectjava.mathjava.netjava.rmijava.rmi.activationjava.rmi.dgcjava.rmi.registryjava.rmi.serverjava.securityjava.security.acljava.security.certjava.security.interfaces

    Inhaltsverzeichnis

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/inhalt.html (7 von 9) [19.04.2000 15:59:03]

  • java.security.specjava.sqljava.textjava.utiljava.util.zipjavax.accessibilityjavax.swingjavax.swing.eventjavax.swing.undo

    Anhang C Java-Ressourcen im Internet

    Die Website zur amerikanischen Ausgabe des BuchesAndere BcherDie JavaSoft-SiteAndere WebsitesJava NewsgroupsBerufschancen

    Anhang D Die Konfiguration des Java Development Kit

    Die Konfiguration unter Windows 95 und Windows NTDie Konfiguration unter Unix

    Anhang E Texteditoren und das JDK

    Die Auswahl eines TexteditorsDateitypen in Windows 95 registrieren

    Anhang F Inhalt der CD-ROM zum Buch

    Stichwortverzeichnis

    Ein Imprint des Markt&Technik Buch- und Software-Verlag GmbH.

    Inhaltsverzeichnis

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/inhalt.html (8 von 9) [19.04.2000 15:59:03]

  • Elektronische Fassung des Titels: Java 2 in 21 Tagen, ISBN: 3-8272-5578-3Inhaltsverzeichnis

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/inhalt.html (9 von 9) [19.04.2000 15:59:03]

  • Woche 1

    Tag 1

    Eine Handvoll JavaDies stellt das Ergebnis des fast 15 Jahre dauernden Versuchs dar, eine bessere Programmiersprachebzw. eine bessere Programmierumgebung zu schaffen, um einfachere und verllichere Software zuerzeugen.

    Bill Joy, Mitbegrnder von Sun Microsystems

    Der verrckte Glckner hatte recht. An einem Ort wie diesem gibt es Geld zu verdienen.

    Der Mann ohne Namen aus Fr eine Hand voll Dollars

    Als die Programmiersprache Java im November 1995 das erste Mal der ffentlichkeit prsentiert wurde,hatte dies viel hnlichkeit mit einem Revolverhelden la Clint Eastwood , der in eine unfreundlicheWesternstadt kommt.

    Wie Clint war auch Java etwas, was die Bewohner der Stadt noch nie zuvor gesehen hatten. Java wareine Programmiersprache, die auf Webseiten lief und einen eigenen Platz neben Grafiken, Text, Audiound den allgengenwrtigen Under construction- Zeichen beanspruchte. Die Leute kamen von weit herins Silicon Valley - meistens ber Internet-Verbindungen, manche aber auch persnlich -, um einen Blickauf die Sprache zu werfen.

    Die Legenden um Java berholten allerdings manchmal die Wirklichkeit ein wenig...Java-Programme laufen ohne Modifikation reibungslos auf unterschiedlichenComputerplattformen!

    n

    Java beendet Microsofts Hegemonie bei den Betriebssystemen!n Java macht Computerbuchauatoren zu international verehrten Berhmtheiten!n

    In hnlicher Weise haftete den Revolverhelden, die Clint spielte, schnell eine Legende an ...Er it Kugeln zum Frhstck!n Er schlgt so fest, da Dein Grovater einen blauen Fleck bekommt!n Er kann jemanden mit einem Blick tten!n

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (1 von 25) [19.04.2000 15:59:17]

  • Java hat in den letzten drei Jahren viele der Erwartungen des anfnglichen Hypes erfllt. Das Release 1.2ist ein weiterer Beweis des anhaltenden Erfolges und Wachstums der Programmiersprache.

    Beginnend mit dem heutigen Tag werden Sie viel ber die Sprache Java lernen und warum sie so schnellin der Computerindustrie prominent wurde. Sie werden mit Java 1.2 - der aktuellsten Version -Applikationen erstellen, die sowohl auf Ihrem PC laufen, als auch ber ein Netzwerk wie das Internetausgefhrt werden knnen. Auerdem werden Sie mit Java 1.0.2 Programme erstellen, die auf Webseitenausgefhrt werden. Dies war die Java-Version, mit der Java bekannt wurde. Sie wird auch heute nochvon den meisten Browsern untersttzt.

    Wenn Sie das Ende des Buches so bei Seite 17.228 erreicht haben, dann werden Sie wahrscheinlich eineweitere Gemeinsamkeit von Java und Clint Eastwood erkannt haben ...

    Java ist cool.

    Nicht in dem Sinne aus der Dusche kommend fluchen: Wo zum Henker ist mein Handtuch? und auchnicht im Sinne Ich bin ein Rap-Star und kann 75 frauenfeindliche Bemerkungen in einer Minutemurmeln.

    Java ist cool, weil es eine bemerkenswerte Programmiersprache ist, die es vielen Programmieren leichtermacht, bemerkenswerte Dinge zu tun. Java ist cool, da es sichtweisenverndernde Konzepte wie dieobjektorientierte Programmierung verstndlicher macht.Wie das Wort Salsa ist Java cool, weil es einfach Spa macht, das Wort laut auszusprechen. Javaauszusprechen ist wesentlich schner als Visual Basic, C plus plus, Algol oder Mumps.

    (Mumps! zu sagen macht in gewisser Weise auch Spa; gegenber den anderen Begriffen ist Javaallerdings wesentlich cooler.)Wenn Sie sich durch die 21 Tage dieses Buches gearbeitet haben, werden Sie ein Experte fr die gesamteBandbreite der Mglichkeiten von Java sein. Dies schliet Grafik, Dateiein- und ausgaben, den Entwurfvon Benutzerschnittstellen, die Ereignisbehandlung, die Datenbankprogrammierung und Animation mitein. Sie werden Programme schreiben, die in Webseiten laufen, und andere, die auf Ihrem PC ausgefhrtwerden.

    Die Ziele des heutigen Tages sind dagegen ziemlich bescheiden. Sie lernen etwas ber die folgendenThemen:

    Was Java heute darstellt, und wie es dazu kam.n Warum es sich lohnt, Java zu lernen, und warum Java ein wrdiger Konkurrent zu anderenProgrammiersprachen ist.

    n

    Was Sie bentigen, um mit dem Schreiben von Java-Programmen zu beginnen - welche Software,welche Fhigkeiten und einige Grundbegriffe.

    n

    Wie Sie Ihr erstes Java-Programm schreiben.n

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (2 von 25) [19.04.2000 15:59:17]

  • Was ist Java?Ausgehend von dem riesigen Presserummel, den es um Java in den letzten paar Jahren gab, und dergroen Zahl von Bchern zu Java (1.054 laut der aktuellsten Zhlung von JavaWorld), werden Sieeventuell einen etwas bertriebenen Eindruck davon haben, was Java zu leisten imstande ist.

    Java ist eine Programmiersprache, die sehr gut dafr ausgerstet ist, Software zu entwerfen, die inVerbindung mit dem Internet luft. Java ist aber auch eine objektorientierte Sprache, die von einerMethode Gebrauch macht, die in der Welt des Software- Design immer ntzlicher wird. Auerdem istJava eine plattformbergreifende Sprache. Das heit, Java-Programme knnen so entwickelt werden, daSie in gleicher Weise auf Microsoft Windows, Apple Macintosh und Solaris-Maschinen - um nur einigezu nennen - laufen.

    Java ist wesentlich nher an beliebten Programmiersprachen, wie z. B. C, C++, Visual Basic und Delphi,als HTML oder eine simple Skriptsprache wie JavaScript.

    Lebensraum: WebJava ist bekannt fr seine Fhigkeit, in Webseiten zu laufen. Sowohl der Netscape Navigator als auch derMicrosoft Internet Explorer knnen ein Java-Programm herunterladen und es lokal auf dem System desBenutzers ausfhren.

    Diese Programme, die Applets genannt werden, werden in Webseiten auf hnliche Weise wie Bildereingebunden. Im Gegensatz zu Bildern knnen Applets interaktiv sein - sie knnen Eingaben desBenutzers entgegennehmen, darauf reagieren und sich stndig verndernde Inhalte prsentieren.

    Applets knnen zur Erzeugung von Animationen, Grafiken, Formularen, die sofort auf die Eingaben desLesers reagieren, Spielen oder anderen interaktiven Effekte auf einer Webseite neben Text und Bildernverwendet werden. Abbildung 1.1 zeigt ein Applet, das im Netscape Navigator 4.04 luft. Java wird hierdazu verwendet, einen Spieler gegen drei Gegner aus dem Computer-Domino zu spielen.

    Das Domino-Applet wurde von Eric Carroll geschrieben, einem Java-Programmierer undComic-Zeichner. Er ist auch der Gegner aus dem Computer mit der Igelfrisur in Abbildung 1.1. Siefinden das Domino-Applet und seine Homepage unter: http:// www.void.org/~eric/domino.html.

    Applets werden ber das World Wide Web heruntergeladen, wie das auch bei HTML- Seiten, Grafikenbzw. beliebigen anderen Elementen einer Website der Fall ist. In einem Browser, der fr dieVerarbeitung von Java ausgelegt ist, startet die Ausfhrung des Applets, nachdem es heruntergeladen ist.

    Applets werden mit Java geschrieben, anschlieend werden sie in eine Form kompiliert, die es erlaubt,das Programm auszufhren. Zu guter Letzt werden sie auf einem Web-Server abgelegt. Die meistenWeb-Server sind in der Lage, Java-Dateien zu bertragen, ohne da etwas an deren Konfigurationgendert werden mte.

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (3 von 25) [19.04.2000 15:59:17]

  • Fast alle Applets werden heute mit Java 1.0.2, der ersten verbreiteten Java-Version, geschrieben, da diemeisten fhrenden Browser-Hersteller langsam bei der Integration von Java 1.1 und 1.2 sind. Netscapehat einen Softwarepatch verffentlicht, der den Navigator um die Untersttzung von Java 1.1 erweitert.Microsoft hat hingegen keinerlei Plne bezglich der Java-1.1- Untersttzung im Internet Explorer 4verffentlicht.

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (4 von 25) [19.04.2000 15:59:17]

  • Abbildung 1.1:Ein Applet im Netscape Navigator 4.04

    Web-User mit einem Browser, der Java nicht untersttzt, sehen statt des Applets eventuell einen Text,eine Grafik oder gar nichts - abhngig davon, ob der Designer der Seite eine Alternative zu demJava-Applet vorgesehen hat. Sie lernen im Laufe des Buches mehr ber die Zusammenarbeit zwischenApplets, Browsern und dem World Wide Web.

    Obwohl Applets die beliebteste Anwendung fr Java darstellen, sind sie nur eine Mglichkeit, dieSprache zu verwenden. Wie bei Visual C++, Visual Basic und Delphi handelt es sich bei Java um einerobuste Sprache, mit der sich die unterschiedlichste Software entwickeln lt. Diese Software kanngrafische Benutzeroberflchen, Netzwerke, Datenbankanbindungen und andere sehr ausgefeilteFunktionalitten untersttzen. Zur Unterscheidung von Applets werden Java-Programme, die nicht berdas Web ausgefhrt werden, Applikationen genannt.

    Die inoffizielle Biographie von JavaDie Programmiersprache Java wurde 1991 bei Sun Microsystems als Teil des Green- Projekts entwickelt.Das Green-Projekt war eine Forschungsgruppe, die Software zur Steuerung vonKonsumelektronikgerten entwickelte. Die Wissenschaftler hofften, die Programmiersprache zuentwickeln, die die intelligenten Anwendungen der Zukunft steuert - interaktive Fernseher, interaktiveToaster usw. Suns Wissenschaftler wollten auerdem, da die einzelnen Gerte miteinanderkommunizieren knnen. Auf diese Weise sollte der Rasenmher den Mixer anweisen knnen, Ihnenmitzuteilen, da Ihre Nachbarn wieder zu Hause sind und nackt in der Sonne baden.

    Um ihre Forschungen voranzutreiben, entwickelten die Green-Wissenschaftler einen Gerteprototypenmit dem Namen Star7 - ein ferngesteuertes Gert, das in der Lage war, mit Angehrigen seiner Art zukommunizieren. Die ursprngliche Idee war es, das Betriebssystem des Star7 in C++ zu entwickeln, derextrem beliebten, von Bjarne Stroustrup entwickelten objektorientierten Programmiersprache. Allerdingshatte James Gosling vom Green-Projekt bald genug von C++ in bezug auf diese Aufgabenstellung. Ausdiesem Grund verbarrikadierte er sich in seinem Bro und schrieb eine neue Programmiersprache, umden Star7 besser steuern zu knnen. Die Sprache nannte Gosling Oak - zu deutsch: Eiche - zu ehren einesBaumes, den er von seinem Brofenster aus sehen konnte.

    Sun stellte spter fest, da der Name Oak bereits vergeben war, hielt sich allerdings bei derNeubennenung der Sprache nicht an Goslings Blick-aus- dem-Fenster-Methode. Wre dem sogewesen, htten Sie vielleicht eine Sprache mit einem der folgenden Namen in 21 Tagendurcharbeiten mssen:

    Shrubbery (Gebsch)n OfficeBuildingNextDoor (Brogebude gegenber)n LightPole (Laterne)n WindowWasher (Fensterwscher)n SecretaryLeavingForLunch (Sekretrin geht zum Mittagessen)n WeirdSecurityGuard (Seltsamer Wachmann)n FatGuyMowing (Dicker Mann beim Mhen)n

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (5 von 25) [19.04.2000 15:59:17]

  • Da bei der Entwicklung von Java andere Anwendungen als der Standard-PC im Vordergrund standen,mute Java klein, effizient und leicht auf eine ganze Reihe von Hardware-Plattformen und -Gertenportierbar sein. Auerdem mute Java zuverlssig sein. Man hat gelernt, mit den gelegentlichenSystemcrashs und Strungen einer 5-Mbyte-Applikation zu leben. Allerdings lt sich ber einenschlecht programmierten Toaster, dessen unangenehme Angewohnheit sich in Form einer Stichflammeuert, nicht so einfach hinwegsehen.

    Obwohl Java sich nicht als Entwicklungstool fr die Steuerung von Gerten und interaktiven Fernsehernhervorgetan hat, erwiesen sich die Eigenschaften, die gut fr den Star7 waren, auch als gut fr das Web:

    Java war klein - dadurch lieen sich Programme schneller ber das Web herunterladen.n Java war sicher - dies hielt Hacker davon ab, Programme mit zerstrerischen Absichten ber denBrowser in das System des Benutzers zu bringen.

    n

    Java war portabel - dies erlaubte es, da es unter Windows, auf dem Macintosh und anderenPlattformen ohne Modifikation lief.

    n

    Zustzlich konnte Java als allgemeine Programmiersprache fr die Entwicklung von Programmen, dieauf verschiedenen Plattformen ausgefhrt werden knnen, verwendet werden.

    Um das Potential von Java zu demonstrieren und das Forschungsprojekt vor der Zurckstellung zubewahren, wurde 1994 ein Web-Browser entwickelt, der Java-Applets ausfhren konnte. Der Browserzeigte zwei elementare Dinge von Java: Zum einen die Mglichkeiten in bezug auf das World Wide Webund zum anderen, welche Programme mit Java erstellt werden knnen. Die Programmierer PatrickNaughton und Jonathan Payne entwickelten den Browser, der ursprnglich WebRunner hie, aber dannin HotJava umgetauft wurde.

    Obwohl Java und der Browser HotJava sehr viel Aufmerksamkeit in der Web-Gemeinde auf sich zogen,trat die Sprache ihren eigentlichen Hhenflug erst an, als Netscape als erste Firma im August 1995 dieSprache lizenzierte. Der Netscape-Chef und Jungmillionr Marc Andreesen war einer der erstenauerhalb von Sun, die das Potential von Java erkannten. Auf der JavaOne-Konfernz im Mai 1996 war erein groer Befrworter der Sprache. Java ist eine groe Chance fr uns alle, teilte er den Anwesendenmit. Kurz nach Javas erstem ffentlichen Release gliederte Sun seine Java- Entwicklung in eine neueTochtergesellschaft mit dem Namen JavaSoft aus. Hunderte von Mitarbeitern wurden bereitgestellt, umdie Sprache weiter voranzubringen.

    Die verschiedenen Versionen der SpracheJavaSoft hat bisher drei Hauptversionen der Sprache Java verffentlicht:

    Java 1.0.2 - diese Version wird von den meisten Web-Browsern untersttzt.n Java 1.1.5 - das Release vom Frhling 1997. Es beinhaltete Verbesserungen im Bereich derBenutzerschnittstellen bei der Ereignisbehandlung und war konsistenter innerhalb der Sprache.

    n

    Java 1.2 - die neue Version. Diese wurde fr den ffentlichen Betatest zum ersten Mal imDezember 1997 verffentlicht.

    n

    Die Versionsnummern von Java entsprechen immer der Versionsnummer von Suns primrem

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (6 von 25) [19.04.2000 15:59:17]

  • Java-Entwicklungstool - dem Java Developer's Kit. Im allgemeinen wird es als JDK bezeichnet.Momentan ist das Kit in den Versionen 1.0.2, 1.1.5 und 1.2 verfgbar.

    In Verbindung mit dem JDK 1.2 wurde auch der Begriff Java 2 eingefhrt. Die exakte neueBezeichnung fr das bisherige JDK 1.2 ist jetzt Java 2 SDK v1.2. Der Einfachheit halber soll aber indiesem Buch weiterhin vom JDK 1.2 die Rede sein. Nhere Informationen zu den genauenBezeichnungen in Verbindung mit Java 2 finden Sie auf der Webseite:

    http://java.sun.com/products/jdk/1.2/java2.htmlDas JDK war immer schon kostenlos auf der Website von JavaSoft unter http://java.sun.com verfgbar.Diese Verfgbarkeit ist einer der Faktoren fr das rapide Wachstum von Java. Es ist immer das ersteEntwicklungstool, das eine neue Java-Version untersttzt, wenn diese verffentlicht wird - oftmals sechsMonate, bevor andere Entwicklungswerkzeuge diese Version untersttzen.

    Neben dem JDK gibt es mehr als ein Dutzend kommerzieller Java-Entwicklungstools frJava-Programmierer. Drunter die folgenden:

    Symantec Visual Cafn Borland JBuildern SuperCeden Rogue Wave JFactoryn Natural Intelligence Roastern SunSoft Java WorkShopn

    Momentan ist das JDK immer noch das einzige Tool, das die Version 1.2 der Sprache voll untersttzt.

    Die Programme in diesem Buch wurden mit dem JDK 1.2 Release Version, der aktuellsten Version desJDK, die beim Schreiben des Buches verfgbar war, getestet. Wenn Sie etwas anderes als das JDK beimDurcharbeiten des Buches verwenden, sollten Sie als erstes sicherstellen, da es das JDK 1.2 volluntersttzt.

    Spieglein, Spieglein an der Wand ...Jeder, der die genaue Zukunft von Java kennt, sollte sich lieber um Venture-Kapital bemhen, als einBuch zu schreiben. Die Technologie-Firma Kleiner, Perkins, Caufield and Byers (KPCB) hat $100Millionen bereitgestellt, um Start-up-Firmen zu untersttzen, deren Bettigungsfeld Java-bezogeneThemen sind.

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (7 von 25) [19.04.2000 15:59:17]

  • Die Erweiterungen in Java 1.2 bereiten Java gut auf seine Zukunft als ausgefeilte Sprache frunterschiedlichste Anwendungsgebiete vor. Frhe Versionen von Java waren besser fr kleinewebbasierte Software als fr vollwertige Applikationen, wie Groupware-Anwendungen, Office-Suitesund Netzwerk-Multiplayer-Spiele geeignet.

    Das kann man von Java um 1.2 herum nicht mehr behaupten. Die folgende Liste beschreibt einige derfortgeschritteneren Features, die mit der aktuellen Version eingefhrt wurden:

    Standardmige Untersttzung von Servelets - Java-Programmen, die auf einem Web-Serverlaufen, um einer Site bestimmte Funktionalitten hinzuzufgen.

    n

    Swing: Neue Features fr die Erstellung grafischer Benutzeroberflchen sowohl im Stilbestimmter Betriebsysteme als auch in einem neuen Java-Look&Feel.

    n

    Drag&Drop: Die Fhigkeit, Informationen interaktiv ber verschiedene Applikationen hinwegbzw. von einem Teil der Benutzerschnittstelle eines Programms zu einem anderen Teil zubertragen.

    n

    Komplette berarbeitung der Audio-Features von Java, was diese den Soundfhigkeiten andererSprachen annhert.

    n

    Sie bekommen in den nchsten drei Wochen die Mglichkeit, mit diesen und anderen neuen Features zuarbeiten.

    Warum lesen Sie dieses Buch?Frher war es einfacher, auszumachen, warum Leute ein Buch dieser Art whlten. Die meisten Leserwollten Java fr die Erstellung von Applets verwenden.

    Heute ist das nicht mehr so klar. Jede neue Version von Java fhrt Features ein, die Java ber seineWurzeln als interessante Web-Technologie hinaus erweitern.

    Allerdings bleiben die Strken von Java bestehen: Plattformunabhngigkeit, Objektorientierung und dieeinfache Erlernbarkeit.

    Java ist plattformunabhngigPlattformunabhngigkeit - die Fhigkeit, da ein und dasselbe Programm auf unterschiedlichenPlattformen und unter verschiedenen Betriebssystemen luft - ist einer der bedeutendsten Vorteile, dieJava gegenber anderen Programmiersprachen zu bieten hat.

    Wenn Sie z.B. ein Programm, in C oder einer der meisten anderen Programmiersprachen kompilieren,dann bersetzt der Compiler Ihre Quelldateien in Maschinensprache - Befehle, die fr den Prozessor inIhrem System spezifisch sind. Wenn Sie Ihren Code auf einer Maschine mit Intel-Prozessor kompilieren,dann wird das Programm auf anderen Maschinen mit Intel-Prozessor laufen, auf Macs, CommodoreVIC-20 oder anderen Maschinen dagegen nicht. Wenn Sie dasselbe Programm auf einer anderenPlattform verwenden wollen, mssen Sie Ihren Quellcode auf diese Plattform transferieren und dort neukompilieren, um den fr dieses System spezifischen Maschinencode zu erhalten. In vielen Fllen sind,auf Grund von Unterschieden innerhalb der Prozessoren und anderer Faktoren, nderungen an demQuellcode des Programms ntig, bevor es sich auf der neuen Maschine kompilieren lt.

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (8 von 25) [19.04.2000 15:59:17]

  • Die Abbildung 1.2 zeigt das Ergebnis eines plattformabhngigen Systems: Viele ausfhrbare Programmemssen fr viele Systeme erzeugt werden.

    Abbildung 1.2:Herkmmlich kompilierte Programme

    Java-Programme erreichen die Plattformunabhngigkeit ber eine virtuelle Maschine - eine ArtComputer im Computer. Die virtuelle Maschine nimmt das Java-Programm und konvertiert dieAnweisungen darin in Kommandos, die das jeweilige Betriebssystem verarbeiten kann. Dasselbekompilierte Programm, das in einem Format namens Bytecode vorliegt, kann so auf jeder beliebigenPlattform bzw. unter jedem beliebigen Betriebssystem ausgefhrt werden, das ber eine Java VirtualMachine (die amerikanische Bezeichnung, Abk.: JVM)Die virtuelle Maschine wird auch als Java Interpreter oder Java Runtime Environment(Java-Laufzeitumgebung) bezeichnet.Wenn es Ihnen Probleme bereitet, die Rolle der virtuellen Maschine zu verstehen, dann hilft vielleichtdie folgende Metapher: In der Originalserie von Star Trek (in Deutschland Raumschiff Enterprise) gab esein Gert, das Englisch (bzw. Deutsch) in die Sprache der Auerirdischen bersetzte, wenn sich diese mitder Crew der Enterprise unterhielten. Captain James T. Kirk mute nicht bei jeder Landung auf einemneuen Planeten eine neue Sprache lernen, da der Universalbersetzer seine Worte so umsetzte, da dieAliens ihn verstehen konnten. In gleicher Weise mssen Java-Programmierer nicht verschiedene

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (9 von 25) [19.04.2000 15:59:17]

  • Versionen eines Programms fr jede Plattform erstellen, auf der dieses landet, da die virtuelle Maschinesich um die notwendige bersetzung kmmert. (Natrlich setzte Kirk den bersetzer dazu ein, mit denFrauen der anderen Welten zu flirten. Wir knnen allerdings weder ausdrcklich noch implizit eineGarantie dafr geben, da Sie ber Java eine Verabredung bekommen.)Java ist auch auf Quellebene plattformunabhngig. Java-Programme werden vor der Kompilierung alsTextdateien gespeichert. Diese Dateien knnen auf jeder Plattform erzeugt werden, die Java untersttzt.Sie knnten z.B. ein Java-Programm auf einem Mac schreiben und dieses anschlieend unterWindows 95 kompilieren.

    Bytecode hnelt dem Maschinencode, der von anderen Sprachen erzeugt wird. Allerdings ist dieser nichtfr einen bestimmten Prozessor spezifisch. Er fhrt eine zustzliche Schicht zwischen dem Quellcodeund dem Maschinencode ein (siehe auch Abbildung 1.3).

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (10 von 25) [19.04.2000 15:59:17]

  • Abbildung 1.3:Java erzeugt Multiplattform-ProgrammeDie Java Virtual Machine kann sich an unterschiedlichen Orten befinden. Fr die Ausfhrung vonApplets ist die virtuelle Maschine in die einzelnen Browser integriert, die Java untersttzen. Deshalbmssen Sie sich keine Gedanken darber machen, ob sich die virtuelle Maschine auf dem System desBenutzers befindet.

    So ganz sorglos kann man die Sache allerdings dann doch nicht angehen. Sie mssen sich Gedankendarber machen, welche Java Virtual Machine der Browser untersttzt. Wenn Sie ein Applet erstellen,das neue Features von Java 1.2 verwendet, dann wird der Bytecode dieses Applets in einem Browser, derlediglich die virtuelle Maschine von Java 1.0.2 untersttzt, nicht funktionieren. Java Plug-In, eineBrowsererweiterung, die von JavaSoft entwickelt wurde, ermglicht es Entwicklern, eine andere virtuelleMaschine festzulegen, als eigentlich in dem Netscape Navigator oder dem Microsoft Internet Explorerintegriert ist. Dies ermglicht es Java-1.1- und 1.2- Applets, zu laufen, wenn die entsprechende virtuelleMaschine festgelegt wurde. Das JDK 1.2 enthlt das Java Plug-In in der Version 1.2. MehrInformationen ber Java Plug-In finden Sie auf der folgenden Webseite:

    http://java.sun.com/products/plugin/index.htmlJava-Applikationen knnen dagegen nur auf Systemen ausgefhrt werden, auf denen die entsprechendevirtuelle Maschine installiert wurde. Wenn Sie Java-1.2-Applikationen auf Ihrem Computer ausfhrenwollen, mssen Sie als erstes die virtuelle Maschine installieren.

    Wenn Sie an die Art gewhnt sind, mit der Sprachen wie Visual Basic und Delphi plattformabhngigenCode erzeugen, dann werden Sie vielleicht denken, da der Bytecode-Interpreter eine unntige Schichtzwischen Ihrem Code und dem Maschinencode darstellt.

    Dies wirft natrlich einige Performance-Fragen auf - Java-Programme werden langsamer ausgefhrt alsProgramme von plattformabhngig kompilierten Sprachen wie C. Und der Geschwindigkeitsunterschiedist der wesentliche Kritikpunkt an Java. Manche Entwicklungstools beinhalten Just-In-Time-Compiler,die den Java-Bytecode mit grerer Geschwindigkeit ausfhren knnen.

    Die Mglichkeit, da eine einzige Bytecode-Datei auf unterschiedlichsten Plattformen ausgefhrt werdenkann, ist entscheidend dafr, da Java im World Wide Web funktioniert, da das Web ebenfallsplattformunabhngig ist.

    Fr viele einfache Java-Programme ist die Geschwindigkeit kein Thema. Wenn Sie Programmeschreiben, die eine hhere Ausfhrungsgeschwindigkeit bentigen, als die virtuelle Maschine bietet,bieten sich mehrere Lsungen an:

    Sie knnen Aufrufe fr systemspezifischen Maschinencode in Ihre Java-Programme integrieren.Dies macht ein Programm allerdings plattformabhngig.

    n

    Verwenden Sie Just-In-Time-Compiler, die Java-Bytecode in systemspezifischen Codeumwandeln.

    n

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (11 von 25) [19.04.2000 15:59:17]

  • Egal welche der beiden Lsungen Sie verwenden, Sie gewinnen Geschwindigkeit auf Kosten derPortabilitt von Java. Eine Java-Applikation, die z. B. Windows-Funktionsaufrufe fr den Zugriff auf dieFestplatte verwendet, luft ohne nderung nicht auf einem Macintosh.

    Java ist objektorientiertWenn Sie mit der objektorientierten Programmierung bis jetzt noch nicht vertraut sind, dann werden Siein den nchsten sechs Tagen reichlich Gelegenheit erhalten, um dies zu ndern.

    Als objektorientierte Programmierung - auch OOP genannt - wird eine Methode bezeichnet, bei derComputerprogramme als eine Reihe von Objekten aufgebaut werden, die miteinander interagieren. Frandere ist es im wesentlichen eine Art, Programme zu organisieren. Jede Programmiersprache kann dazuverwendet werden, objektorientierte Programme zu erstellen.Allerdings ziehen Sie den grten Nutzen aus der objektorientierten Programmierung, wenn Sie eineSprache verwenden, die dafr entworfen wurde. Java erbte viele seiner OOP-Konzepte von C++, derSprache, auf der Java zu einem groen Teil basiert. Java entleiht auch Konzepte aus anderenobjektorientierten Sprachen.Am Tag 2 lernen Sie mehr ber objektorientierte Programmierung und Java.

    Java ist leicht zu erlernenNeben seiner Portabilitt und der Objektorientierung ist Java kleiner und einfacher als anderevergleichbare Sprachen. Dies rhrt von dem ursprnglichen Ziel fr Java her, eine Sprache zu sein, dieweniger Computermuskeln fr die Ausfhrung bentigt - niemand wird $3.000 fr einenPentium-II-Toaster mit MMX-Technologie ausgeben.

    Java sollte einfacher zu schreiben, kompilieren, debuggen und zu lernen sein. Die Sprache wurde sehrstark nach dem Vorbild von C++ modelliert, und vieles von der Syntax und der objektorientiertenStruktur kommt direkt von dieser Sprache. Wenn Sie C++- Programmierer sind, dann werden Sie in derLage sein, Java wesentlich schneller zu lernen, und knnen einiges in der ersten Woche dieses Buchesberspringen.

    Trotz Javas hnlichkeiten mit C++ wurden die komplexesten und fehlertrchtigsten Aspekte der Sprachenicht in Java aufgenommen. Sie werden z. B. keine Zeiger oder Zeigerarithmetik in Java finden, da dieseFeatures in einem Programm leicht zu Fehlern fhren und sie schwerer als andere zu beheben sind.Strings und Arrays sind Java- Objekte, und das Speichermanagement wird von Java automatisiert, anstattdies dem Programmierer zu bertragen. Erfahrene Programmierer werden diese Punkte vielleichtvermissen, wenn sie beginnen, mit Java zu programmieren, andere werden allerdings durch dasWeglassen Java wesentlich schneller lernen.

    Obwohl Java leichter zu lernen ist als viele andere Programmiersprachen, stellt Java fr jemanden ohneProgrammiererfahrung eine groe Herausforderung dar. Der Umgang mit Java ist komplexer als der mitHTML oder etwa JavaScript - allerdings gibt es nichts, was ein Anfnger nicht meistern knnte.

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (12 von 25) [19.04.2000 15:59:17]

  • Eintauchen in die Java-ProgrammierungLassen wir nun die Geschichtsstunde enden, und widmen wir uns der zweiten Hlfte des heutigen Tages.Sie erhalten Gelegenheit, Java in Aktion zu erleben, whrend Sie Ihr erstes Java-Programm - eineApplikation - erstellen.

    Bevor Sie allerdings beginnen knnen, mssen Sie ein Java-1.2-Entwicklungstool auf Ihrem Systeminstallieren.

    Ein Entwicklungstool auswhlenUm Java-Programme zu schreiben, bentigen Sie eine Entwicklungssoftware fr Java. Falls Ihr Systembereits in der Lage ist, Applets auszufhren, wenn Sie im Internet surfen, werden Sie vielleicht denken,da damit schon alles fr die Entwicklung vorbereitet ist. Dies ist allerdings nicht der Fall - Sie brauchennoch eine Entwicklungssoftware, um eigene Java-Programme zu erstellen und auszufhren.

    Wenn Sie dieses Buch voll ausschpfen wollen, bentigen Sie ein Entwicklungstool, das Java 1.2komplett untersttzt. Momentan kommt nur das Java Developer's Kit (JDK) in Frage. Das JDK ist immerdas erste Tool, das eine neue Java-Version untersttzt, und das JDK 1.2 Release Version ist, whrend ichdieses Buch schreibe, die aktuellste Version.

    Das JDK besteht aus einer Reihe kommandozeilenorientierter Programme. Diese Programme sind reintextorientiert und besitzen keine grafische Benutzeroberflche. Als Programmierer fhrt man dieeinzelnen Programme aus, indem man an der Eingabeaufforderung Befehle wie den folgenden eingibt:java GetFunky.classDieses Kommando weist das Programm java - den Bytecode-Interpreter - an, eine Datei mit demNamen GetFunky.class auszufhren. (Wie Sie noch zu einem spteren Zeitpunkt am heutigen Tag sehenwerden, tragen alle kompilierten Java-Programme die Erweiterung .class.)Anwender von Windows 95 mssen die MS-DOS-Eingabeaufforderung verwenden (Start | Programme |MS-DOS-Eingabeaufforderung in der Taskleiste), um ein Fenster zu ffnen, in das Befehle eingegebenwerden knnen.

    Dies ist natrlich weit entfernt von den modernen Entwicklungstools, die eine grafischeBenutzeroberflche, Debugger, Quellcode-Editoren und andere nette Details bieten.Wenn Sie ein anderes Java-Entwicklungstool haben und sicher sind, da es Java 1.2 untersttzt, dannknnen Sie es verwenden, um die Programme in diesem Buch zu erstellen. Andernfalls sollten Sie dasJDK verwenden.

    Die Installation des JDKDie Version 1.2 des Java Developer's Kit ist momentan fr die folgenden Plattformen verfgbar:

    Windows 95n Windows NTn

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (13 von 25) [19.04.2000 15:59:17]

  • Solaris SPARCn Solaris x86n

    Wenn Sie auf einer anderen Plattform arbeiten, wie z. B. dem Apple Macintosh, dann knnen Sie durcheinen Besuch der offiziellen Java-Site von Sun (http://java.sun.com) feststellen, ob es dort inzwischeneine 1.2-Version des JDK fr diese Plattform gibt. Aktuell finden Sie eine Liste aller bekanntenVersionen des JDK fr die verschiedenen Plattformen auf der folgenden Seite:http://java.sun.com:80/cgi-bin/java-ports.cgiWenn Sie das JDK von einer CD mit Varianten fr verschiedene Betriebssysteme installieren, mssenSie die Datei entsprechend Ihrer Computerplattform auswhlen:

    Windows-95- und Windows-NT-Anwender: Die Installationsdatei jdk12- win32.exe befindet sichim Verzeichnis \JDK\Win95nt4.

    n

    Solaris-SPARC-Anwender: Die Installationsdatei jdk12-solaris2-sparc.bin befindet sich imVerzeichnis \JDK\Sparcsol.

    n

    Solaris-x86-Anwender: Die Installationsdatei jdk12-solaris2-x86.bin befindet sich im Verzeichnis\JDK\Intelsol.

    n

    Wenn Sie keinen Zugriff auf ein CD-ROM-Laufwerk haben, dann knnen Sie sich das JDK auch ausdem World Wide Web herunterladen. Suns offizielle Windows- und Solaris-Versionen finden Sie auf derfolgenden Webseite:http://www.javasoft.com/products/JDK/1.2/index.htmlDiese Seite beinhaltet Informationen zur Installation und einen Link, um das JDK fr Ihre Plattformherunterzuladen und es in einem Ordner auf Ihrem System zu speichern.

    Nachdem Sie die Datei heruntergeladen haben, sollten Sie prfen, ob die gesamte Datei heruntergeladenwurde. Bei den Installationsanweisungen im Web ist auch die Gre der JDK-Datei fr Ihre Plattformaufgefhrt.

    Um die Gre der Datei unter Windows 95 oder NT zu prfen, wechseln Sie zu dem Ordner, der dieDatei enthlt, und klicken mit der rechten Maustaste auf die Datei. Es erscheint ein Kontextmen.Whlen Sie in diesem Men den Eintrag Eigenschaften. In dem Dialog, der sich ffnet, wird nebenanderen relevanten Informationen die Gre der Datei angezeigt.

    Die Installation unter Windows 95 und NT

    Bevor Sie das JDK auf Ihrem System installieren, sollten Sie sicherstellen, da keine anderenJava-Entwicklungstools installiert sind. Wenn mehr als ein Java-Entwicklungstool installiert ist, kann daszu Konfigurationsproblemen fhren, wenn Sie versuchen, das JDK zu verwenden.

    Um das JDK unter Windows 95 oder NT zu installieren, klicken Sie doppelt auf die Installationsdateioder verwenden das Kommando Start | Ausfhren, um die Datei zu lokalisieren und auszufhren.Im Anschlu an den Dialog, der Sie fragt, ob Sie das JDK 1.2 installieren wollen, wird derInstallationsassistent (siehe auch Abbildung 1.4) angezeigt. Sie knnen in diesem Fenster festlegen, wiedas JDK auf Ihrem System installiert werden soll.

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (14 von 25) [19.04.2000 15:59:17]

  • Die Standardeinstellungen in diesem Assistenten sollten in der Regel fr die meisten Anwenderzutreffend sein. Das JDK wird im Ordner \jdk1.2 auf Ihrem C:-Laufwerk installiert, solange Sie nicht aufdie Schaltflche Browse... klicken, um einen anderen Ordner zu whlen.

    Probleme, die Sie eventuell mit der Konfiguration des JDK haben, lassen sich leichter beheben, wenn Sieden Standardordner \jdk1.2 verwenden.

    Abbildung 1.4:Der Installationsassistent des JDKDer Assistent installiert drei Komponenten des JDK:

    Programmdateien: Die ausfhrbaren Dateien, die bentigt werden, um Ihre Java- Projekte zuerstellen, zu kompilieren und zu testen.

    n

    Bibliotheks- und Header-Dateien: Dateien, die nur von Programmierern verwendet werden, dienativen Code aus ihren Java-Programmen heraus aufrufen. Diese sind fr die Tutorials in diesemBuch nicht wichtig.

    n

    Demodateien: Java-1.2-Programme, die sowohl in ausfhrbarer Form als auch im Quelltextvorliegen. Den Quelltext knnen Sie durcharbeiten, um mehr ber die Sprache zu lernen.

    n

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (15 von 25) [19.04.2000 15:59:17]

  • Wenn Sie die Standardinstallation akzeptieren, bentigen Sie 23 Mbyte auf Ihrer Festplatte. Falls Sie alleOptionen auer den Programmdateien weglassen, spart Ihnen das 2,4 Mbyte - fr den Fall, da Sie Platzsparen mssen, um das JDK auf eine berfllte Platte zu quetschen.

    Zustzlich knnen Sie die Quelldateien installieren - der Quelltext der Sprache Java selbst ist ffentlichverfgbar. Allerdings bentigen diese Dateien mehr als 11 Mbyte und werden in diesem Buch nichtbentigt.

    Nachdem Sie das JDK installiert haben, werden Sie vielleicht bemerken, da zwei der installiertenDateien in den Unterordnern JDK\lib bzw. JDK\jre\lib den Namen tools.jar bzw. rt.jar tragen. Obwohldiese Dateien JAR-Archive sind, sollten Sie sie nicht entpacken. Das JDK kann sie in diesen Ordnern indem Archiv-Format lesen.

    Die Installation unter Solaris

    Die Solaris-Version des JDK von Sun kann auf den folgenden Plattformen installiert werden:SPARC-Systemen mit Solaris 2.4 oder hhern x86-Systemen mit Solaris 2.5 oder hhern

    Das JDK-Installationsarchiv sollte in ein Verzeichnis entpackt werden, in dem noch keinUnterverzeichnis mit dem Namen jdk1.2 existiert, da Sie ansonsten bereits vorhandene Dateien aufIhrem System berschreiben.

    Wenn Sie die Installationsdatei heruntergeladen haben, sollten Sie sicherstellen, da Sie auf die Dateiber das Shell-Kommando chmod a+x korrekt zugreifen knnen.

    SPARC-Anwender wrden z. B. das folgende Kommando verwenden:% chmod a+x jdk12-solaris2-sparc.binUm das JDK zu installieren, nachdem Sie chmod ausgefhrt haben, verwenden Sie das Shell-Fenster undgeben das Kommando ./ gefolgt von dem Namen der Archivdatei ein, wie das im folgenden der Fall ist:% ./jdk12-solaris2-sparc.bin

    Die Installation testen

    In einer idealen Welt sollte das JDK nach der Installation richtig funktionieren. Kse sollte fettfrei sein,Prsidenten sollten tugendhaft sein, und Jimmy Johnson sollte der Trainer der Dallas Cowboys sein.

    Die grten Probleme beim Erlernen von Java ergeben sich aus Fehlern bei der Konfiguration des JDK.

    Windows-Anwender knnen Ihre Installation des JDK testen, indem Sie die MS-DOS-Eingabeaufforderung verwenden (Start | Programme | MS-DOS-Eingabeaufforderung in der Taskleiste).Dies ffnet ein Fenster, in dem Sie Befehle unter MS-DOS (dem Betriebssystem, das Windows 3.1

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (16 von 25) [19.04.2000 15:59:17]

  • vorausging) eingeben knnen.Die MS-DOS-Eingabeaufforderung wird auch einfach Eingabeaufforderung, Kommandozeile oderPrompt genannt. Diese Namen sollen zum Ausdruck bringen, da Sie hier Befehle eingeben knnen, diedas Betriebssystem ausfhrt.

    MS-DOS kann fr Leute, die an grafische Benutzeroberflchen wie Windows 95 gewhnt sind,einschchternd sein. Allerdings knnen Sie das JDK, ohne ein bichen MS-DOS zu lernen, nichteinsetzen. Dieses Buch wird Ihnen diverse Tips geben, damit Sie so wenig MS-DOS wie mglich lernenmssen.

    Um zu testen, ob Ihr System die richtige Version des JDK finden kann, geben Sie an derEingabeaufforderung das folgende Kommando ein:java -versionSie sollten als Reaktion die folgende Meldung erhalten:java version "1.2"Wenn Sie die falsche Versionsnummer an dieser Stelle sehen oder die Meldung Befehl oder Dateinamenicht gefunden, dann kann Ihr System die richtige Version der Datei java.exe (die Datei, dieJava-Programme ausfhrt) nicht finden.Dieser Fehler mu korrigiert werden, bevor Sie damit beginnen, Java-Programme zu schreiben. InAnhang D finden Sie Informationen zur Konfiguration des JDK.

    Die erste Java-ApplikationLassen Sie uns nun mit der eigentlichen Arbeit beginnen. Starten Sie mit einer Applikation: einProgramm, das mit das Seltsamste, was einer Berhmtheit von jemandem aus der Mengeentgegengebrllt wurde, auf dem Bildschirm anzeigt: What's the frequency, Kenneth?

    Am 4. Oktober 1986 schrie ein Mann What's the frequency, Kenneth? Fernsehkoordinator Dan Ratherentgegen, kurz bevor er ihn auf einer ffentlichen Strae in New York City zusammenschlug. Jahrelangverstand niemand das Motiv fr diesen Angriff, und die Pop-Gruppe R.E.M. machte diesen Ausspruch ineinem Song unsterblich. Der Mann wurde spter verhaftet, nachdem er 1994 einen Techniker von NBCniedergeschossen hatte. Er erzhlte einem Psychiater, da die TV-Sender ihn verfolgen wrden.

    Java-Applikationen sind alleinstehende Programme, die keinen Web-Browser zur Ausfhrung bentigen.Sie sind fast wie die Programme, die Sie hauptschlich auf Ihrem System verwenden: Sie starten dieselokal ber die Maus oder ber einen Befehl an der Eingabeaufforderung.

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (17 von 25) [19.04.2000 15:59:17]

  • Obwohl ein Java-Programm so entworfen werden kann, da es sowohl ein Applet als auch eineApplikation ist, werden die meisten Programme, auf die Sie stoen, entweder das eine oder das anderesein.

    In der gesamten ersten Woche, in der Sie die Sprache Java lernen, werden Sie Applikationen schreiben.Dieses Wissen wird in der zweiten Woche um die Applet-Programmierung erweitert. Wenn Sie einer derLeser sein sollten, die nur an der Applet- Programmierung interessiert sind, sollten Sie trotzdem nichtversuchen, direkt zur zweiten Woche zu springen. Alles, was Sie bei der Erstellung einfacherJava-Applikationen lernen, ist ebenso fr die Erstellung von Applets gltig, und bei den Grundlagen zubeginnen, ist das beste. Sie werden in den Tagen 8 bis 14 eine ganze Menge Applets erstellen.

    Die Erstellung des Quellcodes

    Wie das bei den meisten Programmiersprachen der Fall ist, werden Ihre Java-Quelldateien als reineTextdateien gespeichert. Sie knnen diese mit jedem beliebigen Editor oder Textverarbeitungsprogrammerstellen, der/das reinen Text speichern kann - einem Format, das auch ASCII- oder DOS-Text genanntwird. Windows-95-Anwender knnen Java-Programme mit Notepad, DOS Edit bzw. WordPad oderWinWord erstellen - vorausgesetzt sie achten darauf, da sie die Dateien im Text-Format abspeichernanstatt in dem jeweiligen WinWord-Format. Unix-Anwender knnen Programme mit emacs, pico und vierstellen. Den Mac-Anwendern steht SimpleText fr die Erstellung von Java-Quelldateien zurVerfgung.

    Das Java Developer's Kit beinhaltet keinen Texteditor. Die meisten anderen Entwicklungstools verfgenaber ber Ihren eigenen Editor, um die Quelltexte zu erstellen.Wenn Sie Windows 95 oder NT verwenden, dann fgt ein Texteditor wie Notepad eventuell .txt alszustzliche Erweiterung an den Dateinamen einer Java-Datei an, die Sie speichern. Dies htte zur Folge,da z. B. aus dem Dateinamen GetFunky.java GetFunky.java.txt wird. Um dieses Problem zu vermeiden,sollten Sie den Dateinamen beim Speichern in Anfhrungszeichen einschlieen - Abbildung 1.5 zeigtdiese Technik beim Speichern der Quelltext-Datei Craps.java mit Notepad von Windows.

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (18 von 25) [19.04.2000 15:59:17]

  • Abbildung 1.5:Das Speichern einer Quelldatei

    Eine wesentlich bessere Lsung ist es, die .java-Dateien fest mit dem Texteditor, den Sie verwenden, zuverknpfen. Dies ermglicht es Ihnen ber einen Doppelklick auf den Namen, eine Quelltextdatei ineinem Ordner zur Bearbeitung zu ffnen. Wie Sie eine solche Verknpfung einrichten, erfahren Sie inAnhang E.

    Das Programm schreiben

    Starten Sie den Editor Ihrer Wahl, und geben Sie das Java-Programm ein, das in Listing 1.1 aufgefhrtist. Achten Sie darauf, da Sie alle geschweiften Klammern, eckigen Klammern und Anfhrungszeichengenauso wie in dem Listing eingeben. Achten Sie auerdem darauf, da Sie die Gro- undKleinschreibung richtig aus dem Text bernehmen.

    Listing 1.1: Der Quellcode der HalloDan-Applikation1: class HelloDan {2: public static void main (String[] arguments) {3: System.out.println("What's the frequency, Kenneth?");4: }5: }

    Die Zeilennummern und die Doppelpunkte an der linken Seite im Listing 1.1 sind nicht Teil desProgramms - sie wurden eingefgt, damit man sich im Buch auf bestimmte Zeilen in einem Programmbeziehen kann. Sollten Sie sich bei einem Quelltext in diesem Buch einmal nicht ganz sicher sein, dannknnen Sie diesen mit der entsprechenden Kopie auf der CD des Buches vergleichen.

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (19 von 25) [19.04.2000 15:59:17]

  • Nachdem Sie das Programm abgetippt haben, sichern Sie die Datei irgendwo auf Ihrer Platte unter demNamen HelloDan.java.

    Wenn Sie Anwender des JDK unter Windows 95 sind und versuchen, so wenig wie irgendmglich berMS-DOS zu lernen, dann ffnen Sie auf Ihrem System den Stammordner und legen einen neuenUnterordner mit dem Namen J21Work an. Speichern Sie HelloDan.java und alle anderenJava-Quelldateien aus diesem Buch in dieses Verzeichnis. Sie werden bald verstehen, warum.Dieser Dateiname ist sehr wichtig. Java-Quelldateien mssen mit der Erweiterung .java gesichertwerden, und der Name mu demjenigen in dem Haupt-class-Statement in der Quelldatei entsprechen.Die Gro-/Kleinschreibung spielt ebenfalls eine wesentliche Rolle, diese mu nmlich ebenfallsbereinstimmen.

    Java-Quelldateien werden in Bytecode kompiliert. Die entstehenden Dateien tragen die Erweiterung.class. In manchen Beziehungen ist der Begriff Klasse synonym mit Programm (in den nchsten dreiTagen werden Sie mehr ber Klassen lernen).In der zweiten Zeile von Listing 1.1 wird festgelegt, da das Java-Programm aus der Klasse HelloDanbesteht, was wiederum bedeutet, da der Dateiname HelloDan.java sein mu. Wenn Sie Ihre Quelldateianders benennen (dazu zhlt sogar hellodan.java oder Hellodan.java), werden Sie nicht in der Lage sein,das Programm zu kompilieren.

    Kompilierung und Ausfhrung unter Windows

    Jetzt sind Sie bereit, die Datei zu kompilieren. Wenn Sie ein anderes Entwicklungswerkzeug als das JDKverwenden, sollten Sie in der Dokumentation der Software nachsehen, wie die Kompilierung vonJava-Programmen im Detail funktioniert. Es wird wahrscheinlich eine sehr einfache Operation sein, wiez. B. ein Klick auf eine Schaltflche oder ein Kommando in einem Men.

    Beim JDK verwenden Sie das Kommandozeilen-Tool javac, den Java-Compiler. Der Compiler liest eine.java-Quelldatei und erzeugt ein oder mehrere .class-Dateien, die von der Java Virtual Machineausgefhrt werden knnen.

    Windows-95-Anwender sollten die MS-DOS-Eingabeaufforderung starten (Start | Programme |MS-DOS-Eingabeaufforderung) und in den Ordner wechseln, der HelloDan.java enthlt.Wenn Sie die Datei in den neu erstellten Ordner J21Work direkt unterhalb des Stammverzeichnissesgespeichert haben, dann ist dafr das folgende MS-DOS-Kommando ntig:cd \J21Work

    cd ist die Abkrzung fr change Directory (engl. Wechsle das Verzeichnis) - die Begriffe Ordnerund Verzeichnis sind gleichbedeutend.

    Wenn Sie sich in dem richtigen Ordner befinden, knnen Sie HelloDan.java kompilieren, indem Sie

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (20 von 25) [19.04.2000 15:59:17]

  • folgendes an der Eingabeaufforderung eingeben:javac HelloDan.java

    Wenn Sie das dir-Kommando verwenden, um unter MS-DOS alle Dateien in einem Ordner anzeigen zulassen, werden Sie mit Sicherheit bemerken, da die Datei zwei Namen hat - den einen, den Sie ihrgegeben haben, und eine verkrzte Version wie z. B. HELLOD~1.JAV. Diese Abkrzung rhrt von derArt her, wie Windows 95 Dateinamen mit mehr als acht Zeichen als Namen und mehr als drei Zeichenfr die Erweiterung verwaltet. Wenn Sie mit den JDK-Tools arbeiten, verwenden Sie bei denKommandos immer den Dateinamen, die Sie einer Datei gegeben haben, und nicht die verkrzteVersion.

    Abbildung 1.6 zeigt die MS-DOS-Kommandos, mit denen in den Ordner \J21Work gewechselt, dieDateien in dem Ordner aufgelistet und die Datei HelloDan.java kompiliert werden. Auf diesen Wegknnen Sie sicherstellen, da Sie die richtigen Kommandos verwenden.

    Abbildung 1.6:

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (21 von 25) [19.04.2000 15:59:17]

  • Java-Programme im MS-DOS-Fenster kompilierenDer Compiler des JDK gibt keinerlei Meldung aus, wenn das Programm erfolgreich kompiliert wurde.Wenn das Programm ohne Fehler kompiliert werden konnte, dann befindet sich in dem Ordner, der auchHelloDan.java beinhaltet, eine Datei mit dem Namen HelloDan.class. Diese .class-Datei stellt denBytecode dar, der von der Java Virtual Machine ausgefhrt werden kann. Wenn Sie irgendwelcheFehlermeldungen erhalten, sollten Sie noch einmal zu der Quelldatei zurckkehren und prfen, ob Siewirklich alles so abgetippt haben, wie es in Listing 1.1 steht.

    Sobald Sie eine .class-Datei haben, knnen Sie diese mit dem Bytecode-Interpreter ausfhren. DieJDK-Version des Interpreters hat den Namen java und wird auch von der Eingabeaufforderung ausaufgerufen. Starten Sie HelloDan, indem Sie in den Ordner wechseln, der HelloDan.class beinhaltet, undgeben Sie anschlieend folgendes Kommando ein:java HelloDan

    Wenn die Meldung Class Not Found angezeigt wird und Sie sich in dem Ordner befinden, in dem sichauch HelloDan.class befindet, dann mssen Sie eventuell eine Einstellung in Ihrer autoexec.batverndern (siehe Anhang D).Abbildung 1.7 zeigt die Ausgabe, wenn das Programm erfolgreich ausgefhrt werden konnte, und dieKommandos, um zu diesem Punkt zu gelangen.

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (22 von 25) [19.04.2000 15:59:17]

  • Abbildung 1.7:Eine Java-Applikation im MS-DOS-Fenster

    Kompilierung und Ausfhrung unter Solaris

    Um die Java-Quelldatei auf einem Solaris-System auszufhren, verwenden Sie denKommandozeilen-Compiler, der mit dem JDK geliefert wird. Von der Unix-Kommandozeile auswechseln Sie mit cd zu dem Verzeichnis, das die Quelldatei HelloDan.java beinhaltet. Wenn Sie dasVerzeichnis J21Work, das den Windows-Anwendern empfohlen wurde, verwenden, dann benutzen Siedas folgende Kommando:cd ~/J21Work

    Nachdem Sie sich in dem richtigen Verzeichnis befinden, verwenden Sie das javac- Kommandozusammen mit dem Namen der Datei:javac HelloDan.javaSolange es keine Fehler gibt, erhalten Sie eine Datei mit dem Namen HelloDan.class . Dabei handelt essich um die Datei mit dem Java-Bytecode, der von der Virtual Machine ausgefhrt werden kann. WennSie irgendwelche Fehlermeldungen erhalten, dann sollten Sie noch einmal zu der Quelldateizurckkehren und prfen, ob Sie wirklich alles so abgetippt haben, wie es in Listing 1.1 steht.

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (23 von 25) [19.04.2000 15:59:17]

  • Sobald Sie eine .class-Datei haben, knnen Sie diese Datei mit dem Bytecode-Interpreter ausfhren.

    Die JDK-Version der Java-Interpreters heit java und wird ebenfalls von der Kommandozeile ausaufgerufen. Fhren Sie HelloDan aus, indem Sie in das Verzeichnis wechseln, in dem sich die DateiHelloDan.class befindet und folgendes eingeben:java HelloDanWenn Ihr Programm richtig getippt war und fehlerlos kompiliert wurde, dann sollten Sie den AusdruckWhat's the frequency, Kenneth? auf dem Bildschirm angezeigt bekommen.

    Wenn die Meldung Class Not Found angezeigt wird und Sie sich in dem Ordner befinden, in dem sichauch HelloDan.class befindet, dann mssen Sie eventuell die Einstellung verndern, wie Ihr Systemversucht, das JDK zu finden (siehe Anhang D).

    ZusammenfassungNun da Sie ein Java-Entwicklungstool installiert und es bereits fr Ihr erstes Java-Programm verwendethaben, drfen Sie den Titel Java-Programmierer tragen.

    Das ist keine Unwahrheit, nach all dem, was Sie am heutigen Tag getan haben. Sie haben nicht nur einefunktionierende Java-Applikation erstellt, sondern auch eine Tour durch die Geschichte von Javamitgemacht und die Strken, Schwchen und die Zukunft der Sprache kennengelernt.

    Java ist eine objektorientierte Programmiersprache, die viel hnlichkeit mit C++ besitzt. Sie wurde soentworfen, da sie einfacher, weniger fehlertrchtig und leichter zu erlernen ist als C++. Sie istplattformunabhngig und klein, zwei Features, die sie ideal fr die Ausfhrung inWorld-Wide-Webseiten machen.

    Applets sind Programme, die im Web laufen. Applikationen sind hingegen alle anderen Arten vonSoftware, die mit Java geschrieben werden knnen.

    Das ist eine ganze Menge zum Verdauen. Sie sollten jetzt aber die Grundlagen besitzen, um komplexereApplikationen und Ihr erstes Applet zu erstellen. Nach dem morgigen Tag werden Sie auch den TitelObjektorientierter Programmierer tragen drfen.

    Fragen und AntwortenFrage:Welche Beziehung besteht zwischen JavaScript und Java?Antwort:Beide haben die ersten vier Buchstaben des Namens gemeinsam. Ein weitverbreitetes Miverstndnis imWeb ist, da JavaScript und Java mehr gemeinsam haben, als das wirklich der Fall ist. Java ist die

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (24 von 25) [19.04.2000 15:59:17]

  • vielseitige Programmiersprache, die Sie in diesem Buch lernen; Sie verwenden sie, um Applets zuerstellen. JavaScript ist eine von Netscape entwickelte Script-Sprache, die gewisse hnlichkeiten mitJava aufweist; mit dieser Sprache knnen Sie einige schmucke Sachen auf Webseiten veranstalten. Eshandelt sich um vllig unabhngige Sprachen, die fr unterschiedliche Zwecke eingesetzt werden.Frage:Wo kann ich mehr ber Java lernen, und wo finde ich Applets und Applikationen, um ein bichenherumzuspielen?

    Antwort:Sie knnen den Rest dieses Buches lesen! Im Anschlu an diesen Absatz finden Sie noch einige andereQuellen fr Informationen zu Java und Java-Applets:

    Die Java-Homepage (http://www.java.sun.com) ist die offizielle Quelle fr Informationen zu Java,dem JDK, neuen Releases und zu Entwicklungstools wie dem Java Workshop. Auerdem findenSie dort umfangreiche Dokumentationen.

    n

    Gamelan (http://www.gamelan.com) ist ein Archiv fr Applets und Informationen zu Java - allesorganisiert in Kategorien. Wenn Sie mit Applets oder Applikationen spielen wollen, dann solltenSie hier suchen.

    n

    Wenn Sie Diskussionen ber Java suchen, dann sollten Sie in der Newsgroup comp.lang.java undden untergeordneten Newsgroups comp.lang.java.programmer , comp.lang.java.tech,comp.lang.java.advocacy usw. fndig werden. (Sie bentigen einen UseNet Newsreader, um aufdiese Newsgroups zugreifen zu knnen.)

    n

    Ein Imprint des Markt&Technik Buch- und Software-Verlag GmbH.Elektronische Fassung des Titels: Java 2 in 21 Tagen, ISBN: 3-8272-5578-3

    Eine Handvoll Java

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/01.html (25 von 25) [19.04.2000 15:59:17]

  • Woche 1

    Tag 2Objektorientierte Programmierung - ein ersterEindruckObjektorientierte Programmierung ist fast wie Bier.Die meisten, die das erste Mal ein Glas des malzigen Getrnks zu sich nehmen, mgen es nicht und stellen unterUmstnden die Zurechnungsfhigkeit derjenigen in Frage, die ein Loblied auf dieses Getrnk singen. Was hab' ich Dirangetan, fragen sie, da Du mich dieses Hllenzeug trinken lt?

    Nach einiger Zeit kann es durchaus sein, da die, die trotzdem weiter Bier trinken, es schtzen lernen. (Bei manchen wirddieser Zeitraum Studium genannt.)Objektorientierte Programmierung ist, wie Bier, ein Geschmack, an den man sich gewhnen mu. Es ist zum einen eineder bemerkenswertesten Ideen der Programmierung, die in den letzten Jahren eingefhrt wurden, und zum anderen derQuell groer Bestrzung bei den Programmierern, die damit nicht vertraut sind.In gewisser Weise ist dieser Ruf gerechtfertigt. Objektorientierte Programmierung, auch OOP genannt, ist ein Fach, dasman jahrelang studieren und ben kann. Die Grundidee ist allerdings einfach: Organisieren Sie Ihre Programme auf eineArt, die die Art widerspiegelt, mit der Objekte in der realen Welt organisiert sind.Heute werden Sie einen ersten Eindruck davon erhalten, wie Java die Prinzipien der objektorientierten Programmierungverinnerlicht. Die folgenden Themen werden wir behandeln:

    Programme in Form von sogenannten Klassen organisieren und wie diese Klassen verwendet werden, um Objektezu erzeugen.

    n

    Eine Klasse ber zwei Aspekte ihrer Struktur entwerfen: wie sie sich verhalten und ber welche Attribute sieverfgen soll.

    n

    Klassen so miteinander verbinden, da eine Klasse die Funktionalitt von einer anderen erbt.n Klassen ber Pakete und Schnittstellen miteinander verbinden.n

    Wenn Sie mit der objektorientierten Programmierung bereits vertraut sind, wird vieles der heutigen Lektion eineWiederholung fr Sie sein. Selbst, wenn Sie die einfhrenden Abschnitte berspringen wollen, sollten Sie dasBeispielprogramm erstellen, um Erfahrung bei der Erzeugung Ihres ersten Applets zu sammeln.

    In Objekten denkenObjektorientierte Programmierung ist in ihrem Kern eine Methode, Computerprogramme zu strukturieren. Sie stellen sichein Computerprogramm eventuell als Liste von Anweisungen vor, die dem Computer mitteilen, was er zu tun hat, oder alseine Menge kleiner Programme, die auf bestimmte Ereignisse, die der Benutzer auslst, reagieren.

    Die OOP sieht ein Programm auf eine vllig andere Art. Hier ist ein Programm eine Reihe von Objekten, die in

    Objektorientierte Programmierung - ein erster Eindruck

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/02.html (1 von 26) [19.04.2000 15:59:31]

  • vordefinierter Art und Weise zusammenarbeiten, um bestimmte Aufgaben zu erledigen. Nehmen wir LEGO-Steine alsBeispiel zur Verdeutlichung.

    LEGO-Steine sind - fr die unter Ihnen, die keine Kinder haben oder kein inneres Kind, das beschftigt werden mu -kleine Plastikblcke, die in unterschiedlichsten Farben und Gren verkauft werden. Diese Steine haben kleine, rundeNoppen auf der einen Seite, die fest in die entsprechenden Lcher anderer Steine passen. ber Kombinationen dieserSteine lassen sich grere Formen erzeugen. Es gibt viele verschiedene LEGO-Teile, wie z.B. Rder, Motoren, Gelenkeund Flaschenzge, die man dazu verwenden kann.

    Mit LEGO-Bausteinen knnen Sie alle mglichen Dinge bauen: Burgen, Autos, lange Anhnger, Hosentrger,Sportkleidung... einfach alles, was Sie sich vorstellen knnen. Jedes LEGO-Steinchen ist ein Objekt, das mit anderenObjekten auf eine ganz bestimmte Art zusammenpat, um ein greres Objekt zu erzeugen.Nehmen wir ein anderes Beispiel. Mit ein bichen Erfahrung und Hilfe knnen Sie in den nchsten Computerladen gehenund sich einen kompletten PC aus verschiedenen Einzelteilen zusammenbauen: Motherboard, CPU, Grafikkarte,Festplatte, Tastatur, usw. Idealerweise erhalten Sie, nachdem Sie die einzelnen Komponenten zusammengesetzt haben, einSystem, in dem alle Einheiten zusammenarbeiten, um ein greres System zu bilden. Sie knnen dieses grere Systemdann vorrangig zur Lsung der Probleme verwenden, fr die Sie den Computer gekauft haben.

    Intern kann jede dieser Komponenten ziemlich komplex sein. Auch knnen sie von verschiedenen Firmen mitunterschiedlichen Methoden entwickelt worden sein. Allerdings mssen Sie nicht wissen, wie die einzelnen Komponentenfunktionieren, was jeder einzelne Chip auf der Platine tut oder wie ein A an Ihren Computer geschickt wird, wenn Sieauf die (A)-Taste drcken. Jede Komponente, die Sie verwenden, ist eine abgeschlossene Einheit, und als derjenige, derdas Gesamtsystem zusammenbaut, sind Sie nur daran interessiert, wie die einzelnen Einheiten miteinander interagieren:

    Wird diese Grafikkarte in einen Slot auf dem Motherboard passen?n Wird dieser Monitor mit dieser Grafikkarte zusammenarbeiten?n Werden die einzelnen Komponenten die richtigen Kommandos an die Komponenten senden, mit denen siezusammenarbeiten, so da sich die einzelnen Teile des Computers miteinander verstehen?

    n

    Sobald Sie die Interaktionen zwischen den einzelnen Komponenten kennen und die entsprechenden Voraussetzungendafr schaffen, ist es einfach, das Gesamtsystem zusammenzusetzen.

    Objektorientierte Programmierung hat sehr viel hnlichkeit mit dem Aufbau von Strukturen mit LEGO-Steinen oder demZusammenbau eines PC. Bei der OOP bauen Sie Ihre Gesamtprogramme aus unterschiedlichen Komponenten auf, dieObjekte genannt werden.

    Ein Objekt ist ein abgeschlossenes Element eines Computerprogramms, das eine Gruppe miteinander verwandter Featuresdarstellt und dafr ausgelegt ist, bestimmte Aufgaben zu erfllen. Objekte werden auch als Instanzen bezeichnet.Jedes Objekt hat eine spezielle Rolle in einem Programm, und alle Objekte knnen auf definierte Arten in einemProgramm zusammenarbeiten.

    Objekte und KlassenDie objektorientierte Programmierung wird nach der Beobachtung modelliert, da in der realen Welt Objekte aus vielenArten kleinerer Objekte aufgebaut sind. Die Fhigkeit, Objekte zu kombinieren, ist allerdings nur ein allgemeiner Aspektder objektorientierten Programmierung. Sie umfat auerdem Konzepte und Features, die die Erzeugung und den Umgangmit Objekten einfacher und flexibler machen. Das wichtigste dieser Features ist die Klasse.

    Objektorientierte Programmierung - ein erster Eindruck

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/02.html (2 von 26) [19.04.2000 15:59:31]

  • Eine Klasse ist eine Vorlage, die zur Erzeugung vieler Objekte mit hnlichen Eigenschaften verwendet wird.Klassen umfassen alle Features eines bestimmten Satzes von Objekten. Wenn Sie ein Programm in einerobjektorientierten Sprache schreiben, dann definieren Sie nicht einzelne Objekte, sonder Sie definieren Klassen vonObjekten.Nehmen Sie z.B. die Klasse Tree (engl. Baum), die alle Features aller Bume beschreibt:

    Hat Bltter und Wurzelnn Wchstn Erzeugt Chlorophylln

    Die Klasse Tree dient als abstraktes Modell fr das Konzept Baum. Um ein tatschliches Objekt in einem Programmzur Verfgung zu haben, das man manipulieren kann, bentigt man konkrete Instanzen der Tree-Klasse.

    Klassen werden dazu verwendet, Objekte zu erstellen. Mit diesen Objekten arbeiten Sie dann direkt in einem Programm.Die Klasse Tree kann dazu verwendet werden, eine Vielzahl unterschiedlicher Tree-Objekte zu schaffen, die alleunterschiedliche Features haben:

    Klein oder gron Sehr dichtes Astwerk oder nur sehr sprlichesn Mit Frchten oder ohnen

    Obwohl diese Objekte sich alle voneinander unterscheiden, haben sie dennoch genug gemein, da man die Verwandschaftzwischen ihnen sofort erkennt. Abbildung 2.1 zeigt die Tree-Klasse und einige Objekte, die von dieser Vorlage erzeugtwurden.

    Objektorientierte Programmierung - ein erster Eindruck

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/02.html (3 von 26) [19.04.2000 15:59:31]

  • Abbildung 2.1:Die Tree-Klasse und einige Tree-Objekte

    Ein Beispiel fr den Entwurf einer KlasseIn einem Beispiel, das eher dem entspricht, was Sie wahrscheinlich mit Java machen werden, knnten Sie eine Klasse freine Schaltflche erzeugen. Dies ist ein Element, das in Fenstern, Dialogen und anderen interaktiven Programmenverwendet wird. Die folgenden Eigenschaften knnte die Klasse CommandButton definieren:

    Den Text, der den Zweck der Schaltflche kennzeichnet.n Die Gre der Schaltflche.n Eigenschaften der Erscheinung, wie z.B. ob die Schaltflche ber einen 3D-Schatten verfgt oder nicht.n

    Die Klasse CommandButton knnte zustzlich noch definieren, wie sich eine Schaltflche verhalten soll:Ob die Schaltflche einfach oder doppelt angeklickt werden mu, um eine Aktion auszulsen.n Ob sie Mausklicks eventuell komplett ignorieren soll.n

    Objektorientierte Programmierung - ein erster Eindruck

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/02.html (4 von 26) [19.04.2000 15:59:31]

  • Was sie tun soll, wenn sie erfolgreich angeklickt wurde.n

    Sobald Sie die Klasse CommandButton definiert haben, knnen Sie Instanzen der Schaltflche erzeugen - mit anderenWorten CommandButton-Objekte. Die Objekte besitzen alle die Features einer Schaltflche, wie es in der Klasse definiertist. Allerdings kann jede Schaltflche eine andere Erscheinung haben abhngig davon, was fr eine Schaltflche konkretrealisiert werden soll.

    Eine der Standardklassen von Java - java.awt.Button - beinhaltet die gesamte Funktionalitt des hypothetischenCommandButton-Beispiels und noch mehr. Sie werden am Tag 11 Gelegenheit bekommen, mit dieser Klasse zu arbeiten.

    Wenn Sie ein Java-Programm schreiben, dann entwerfen und erstellen Sie eine Reihe von Klassen. Wenn Ihr Programmausgefhrt wird, werden Objekte dieser Klassen erzeugt und nach Bedarf verwendet. Ihre Aufgabe alsJava-Programmierer ist es, die richtigen Klassen zu entwerfen, um das umzusetzen, was Ihr Programm tun soll.

    Glcklicherweise mssen Sie nicht bei Null beginnen. Jede Version von Java umfat eine Gruppe von Klassen, die einenGroteil der Basisfunktionalitt, die Sie bentigen, implementieren. Solche Gruppierungen werden als Bibliothekenbezeichnet.

    Eine Klassenbibliothek ist eine Gruppe von Klassen, die zur Verwendung mit anderen Programmen entworfen wurden.Die Standard-Java-Klassenbibliothek beinhaltet Dutzende von Klassen.

    Wenn Sie ber die Anwendung der Sprache Java sprechen, dann sprechen Sie eigentlich ber die Verwendung derJava-Klassenbibliothek und einiger Schlsselwrter und Operatoren, die vom Java-Compiler erkannt werden.

    Javas Standardbibliothek hat eine groe Zahl von Aufgaben, wie z.B. mathematische Funktionen, Umgang mit Text,Grafik, Sound, Interaktion mit dem Benutzer und den Zugriff auf Netzwerke. In vielen Fllen wird dieJava-Klassenbibliothek fr Ihre Anforderungen ausreichend sein. Hier ist es dann Ihre Aufgabe, eine einzige Klasse zuerstellen, die die Objekte der Standardklassen erzeugt und deren Interaktionen koordiniert.Fr komplexe Java-Programme mssen Sie eventuell eine ganze Reihe neuer Klassen mit definiertenInteraktionsmglichkeiten erzeugen. Diese knnen Sie dazu verwenden, Ihre eigene Klassenbibliothek zu erstellen, die Siespter auch in anderen Programmen verwenden knnen.

    Die Wiederverwendung ist einer der fundamentalen Vorzge der objektorientierten Programmierung.

    Attribute und VerhaltensweisenIm allgemeinen besteht jede Klasse, die Sie schreiben, aus zwei Komponenten: Attributen und Verhaltensweisen. Indiesem Abschnitt lernen Sie die beiden Komponenten kennen, wie sie in einer theoretischen Klasse mit dem NamenJabberwock angewendet werden. Um diesen Abschnitt zu vervollstndigen, werden Sie eine Java-Klasse erstellen, dieeinen Jabberwock - ein drachenartiges Monster aus dem Gedicht Jabberwocky von Lewis Carroll - implementiert.

    Attribute einer Klasse

    Attribute sind die einzelnen Dinge, die die einzelnen Klassen voneinander unterscheiden. Sie legen auch die Erscheinung,den Zustand und andere Qualitten der Klasse fest. berlegen wir uns einmal, wie die theoretische Klasse Jabberwockerstellt werden knnte. Ein Jabberwock knnte unter anderem die folgenden Attribute aufweisen:

    color (Farbe): Orange, Dunkelbraun, Zitronengelb, Dunkelgelbn

    Objektorientierte Programmierung - ein erster Eindruck

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/02.html (5 von 26) [19.04.2000 15:59:31]

  • sex (Geschlecht): mnnlich, weiblichn hungry (hungrig): ja, neinn

    Die Attribute einer Klasse knnen auch Informationen ber den Zustand eines Objektes umfassen. Sie knnten z.B. einAttribut fr den Gemtszustand (wtend oder ruhig) des Jabberwock, den Gesundheitszustand (lebendig oder tot) und dasWahlverhalten (konservativ, liberal oder alternativ) festlegen.In einer Klasse werden Attribute ber Variablen definiert. Sie knnen sich diese analog zu globalen Variablen fr jedesObjekt einer Klasse vorstellen. Jedes Objekt kann andere Werte in seinen Variablen speichern, weshalb diese Variablenauch Instanzvariablen genannt werden.

    Eine Instanzvariable ist ein Stck Information, das ein Attribut eines Objekts definiert. Die Klasse des Objekts definiertdie Art des Attributs, und jede Instanz speichert ihren eigenen Wert fr dieses Attribut. Instanzvariablen werden auch alsObjektvariablen bezeichnet.Jedes Attribut einer Klasse besitzt eine dazugehrige Variable. Sie ndern also dieses Attribut in einem Objekt, indem Sieden Wert dieser Variablen ndern. In dem Programm, das Sie etwas weiter unten erstellen werden, wird die folgendeAnweisung verwendet, um anzuzeigen, da ein Jabberwock-Objekt nicht mehr hungrig ist:j.hungry = false;Instanzvariablen kann bei der Erzeugung eines Objekts ein Wert zugewiesen werden, der whrend der Lebenszeit desObjekts konstant bleibt. Auf der anderen Seite knnen Instanzvariablen auch verschiedene Werte zugewiesen werden,whrend das Objekt in einem laufenden Programm verwendet wird.Ein anderer Typ von Attributen wird verwendet, um eine ganze Klasse von Objekten anstelle einzelner Objekte dieserKlasse zu beschreiben. Diese werden Klassenvariablen genannt.

    Eine Klassenvariable ist ein Stck Information, das ein Attribut einer Klasse definiert. Die Variable bezieht sich auf dieKlasse selbst und all ihre Instanzen, so da nur ein Wert gespeichert wird unabhngig davon, wie viele Objekte dieserKlasse erzeugt wurden.

    Ein gutes Beispiel fr eine Klassenvariable ist eine Variable, die zum Zhlen der einzelnen Jabberwock-Objekte, die ineinem Programm erzeugt wurden, verwendet wird. Wenn fr diese Aufgabe eine Instanzvariable in derJabberwock-Klasse verwendet werden wrde, knnte jedes Objekt einen anderen Zhlerstand aufweisen. Damit aber nurein Wert gespeichert werden mu, wird eine Klassenvariable verwendet, auf die jedes Jabberwock-Objekt Zugriff habenkann.

    Verhaltensweisen einer Klasse

    Das Verhalten ist die Art, mit der eine Klasse bestimmte Dinge gegenber sich selbst oder anderen Objekten ausfhrt. DasVerhalten einer Klasse legt fest, was die Objekte dieser Klasse tun, um deren Attribute zu verndern oder wenn andereObjekte sie bitten, etwas zu tun. Ein Jabberwock-Objekt knnte die folgenden Verhaltensweisen beinhalten:

    rgerlich werdenn Sich beruhigenn Einen Bauern fressenn Das Abendessen ausfallen lassenn

    Objektorientierte Programmierung - ein erster Eindruck

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/02.html (6 von 26) [19.04.2000 15:59:31]

  • Gesund werdenn

    Das Verhalten einer Klasse wird durch Methoden definiert.

    Methoden sind Gruppen von miteinander in Beziehung stehenden Anweisungen in einer Klasse. Diese Anweisungenbeziehen sich auf die eigene Klasse und auf andere Klassen und Objekte. Sie werden verwendet, um bestimmte Aufgabenzu erledigen, wie das in anderen Programmiersprachen Funktionen tun.

    Objekte kommunizieren miteinander ber Methoden. Eine Klasse oder ein Objekt kann Methoden in anderen Klassen oderObjekten aus vielen unterschiedlichen Grnden aufrufen, darunter die folgenden:

    Um ein anderes Objekt von einer nderung zu berichten.n Um ein anderes Objekt anzuweisen, etwas an sich selbst zu ndern.n Um ein anderes Objekt zu bitten, etwas zu tun.n

    Denken Sie z.B. an den Schwertkmpfer in dem Gedicht Jabberwocky. Der folgende Auszug aus dem Gedicht vonLewis Carroll beschreibt genau, was passiert, als der Schwertkmpfer den Jabberwock mit seinem Schwert angreift:

    One, two! One, two! And through and through

    The vorpal blade went snicker-snack!

    He left it dead, and with its head

    He went galumphing back.

    Im Deutschen heit das soviel wie, der Ritter schlgt mit seinem Schwert dem Jabberwock den Kopf ab und kehrt dannmit dem Kopf im Gepck dorthin zurck, wo er hergekommen ist.

    In Java knnte der Schwertkmpfer als Knight-Objekt (Knight engl. fr Ritter) erzeugt werden, mit der Knight-Klasse alsVorlage dafr, wie ein Knight-Objekt sein sollte. Wenn der Ritter dem Jabberwock den Kopf abschlgt, hat dies einenderung des inneren Zustandes des Jabberwock zur Folge. Um dieser nderung Rechnung zu tragen, wrde dasKnight-Objekt eine Methode verwenden, um dem Jabberwock-Objekt mitzuteilen Hey! Ich habe Dir Deinen Kopfabgeschlagen. Du bist tot.

    So wie zwischen Instanz- und Klassenvariablen unterschieden wird, gibt es auch Instanz- und Klassenmethoden.Instanzmethoden, die so hufig verwendet werden, da sie einfach nur Methoden genannt werden, gehren zu einemObjekt einer Klasse. Wenn eine Methode ein einzelnes Objekt verndert, dann mu diese eine Instanzmethode sein.Klassenmethoden gehren zu einer Klasse selbst.

    Eine Klasse erstellenNachdem die grundlegende Terminologie der objektorientierten Programmierung nun eingefhrt wurde, wird allesvielleicht anhand eines konkreteren Beispiels klarer. Sie werden ein funktionierendes Beispiel der Jabberwock-Klasseerstellen, damit Sie sehen, wie Instanzvariablen und Methoden in einer Klasse definiert werden. Sie werden auch einJava-Applet erstellen, das ein neues Objekt der Jabberwock-Klasse erzeugt, die Werte der Instanzvariablen diesesObjektes verndert und bestimmte Aktionen aufgrund der Werte der Instanzvariablen ausfhrt.

    Auf die eigentliche Syntax dieses Beispiels wird hier nicht sehr ausfhrlich eingegangen. Sehen Sie dies hier mehr alsEinfhrung in die objektorientierte Programmierung und weniger als eine Lektion ber die Syntax von Java, in die Sie am

    Objektorientierte Programmierung - ein erster Eindruck

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/02.html (7 von 26) [19.04.2000 15:59:31]

  • dritten Tag eintauchen werden.

    ffnen Sie den Texteditor, den Sie zur Erstellung von Java-Programmen verwenden, so da Sie mit der Erzeugung derQuelldatei beginnen knnen. Anstatt ein ganzes Programm einzugeben, werden Sie einige Anweisungen eingeben,whrend Sie etwas ber deren Verwendung lernen. Sie erhalten am Ende die Gelegenheit, Ihre Arbeit zu berprfen, umsicherzugehen, da alles korrekt ist.

    Den Beginn stellt eine elementare Klassendefinition dar. Geben Sie folgendes ein:class Jabberwock {}

    Nun haben Sie eine Klasse erzeugt. Momentan tut sie noch nicht viel, aber die beiden Zeilen sind ein Beispiel fr dieeinfachste Klassendefinition in Java.

    Um Jabberwock etwas spezieller zu gestalten, erstellen Sie drei Instanzvariablen fr diese Klasse. Direkt unterhalb derZeile class Jabberwock { fgen Sie die folgenden drei Zeilen ein:String color;String sex;boolean hungry;

    Diese drei Zeilen erzeugen drei Instanzvariablen. Zwei davon, color (Farbe) und sex (Geschlecht), knnen String-Objektebeinhalten. Ein String ist ein allgemeiner Begriff, der fr eine Gruppe von Zeichen steht. In Java wird ein String-Objektmit einer der Standardklassen aus der Java-Klassenbibliothek erzeugt. Die String-Klasse wird zur Speicherung von Textverwendet und bietet diverse Funktionen zur Bearbeitung von Text.

    Die dritte Variable, hungry (hungrig), ist eine boolesche Variable, die nur zwei verschiedene Werte annehmen kann: true(wahr) oder false (falsch). Dieses Objekt wird dafr verwendet, anzuzeigen, ob der Jabberwock hungrig ist (true) oder voll(false).

    Boolesche Werte sind spezielle Variablentypen, die nur die Werte true oder false aufnehmen knnen. Im Gegensatz zuanderen Sprachen haben boolesche Werte keine numerischen Werte, wobei 1 true und 0 false entspricht. Der Ausdruckboolesch geht auf George Boole, einen irischen Mathematiker zurck, der von 1815 bis 1864 lebte. Ein anderer Begriff,der auf ihn zurckgeht, ist die Boolesche Algebra, die fundamental fr die Programmierung von Computern, die digitaleElektronik und die Logik ist.

    Sie knnen der Jabberwock-Klasse Verhaltensweisen hinzufgen, in dem Sie Methoden implementieren. Ein Jabberwockkann alle mglichen Dinge tun (mit den Krallen zupacken, zubeien und so weiter); um das Ganze kurz zu halten, wollenwir nur zwei Methoden hinzufgen - eine, die das Monster fttert, und eine andere, um die Attribute des Monsters zuberprfen.

    Zum Start fgen Sie die folgenden Zeilen unter den drei Instanzvariablen in Ihrer Klassendefinition ein:void feedJabberwock() { if (hungry == true) { System.out.println("Yum -- a peasant."); hungry = false; } else System.out.println("No, thanks -- already ate.");}// In Krze mehr

    Objektorientierte Programmierung - ein erster Eindruck

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/02.html (8 von 26) [19.04.2000 15:59:31]

  • Die letzte Zeile // In Krze mehr ist eine Kommentarzeile. Kommentare werden als Information fr diejenigen eingefgt,die den Quellcode lesen, um herausfinden, was dieser tut. Computer sind daran berhaupt nicht interessiert - allesbeginnend mit // bis zum Ende der Zeile wird von einem Java-Compiler ignoriert. In der Jabberwock- Klasse wird derKommentar als Platzhalter verwendet. Sie werden diesen bald ersetzen.

    Die Methode feedJabberwock() prft, ob ein Jabberwock-Objekt hungrig ist (in der Zeile if (hungry == true)). Wenn eshungrig ist, wird das Objekt gefttert (zu seiner groen Freude), und der Status von hungry wird auf false gesetzt. Wenndas Objekt nicht hungrig ist, wird eine Meldung angezeigt, da das Monster bereits gegessen hat. Das gesamte Programmsollte bis hierher wie folgt aussehen:

    Listing 2.1: Der aktuelle Text von Jabberwock.java 1: class Jabberwock { 2: String color; 3: String sex; 4: boolean hungry; 5: 6: void feedJabberwock() { 7: if (hungry == true) { 8: System.out.println("Yum -- a peasant!"); 9: hungry = false;10: } else11: System.out.println("No, thanks -- already ate.");12: }13:14: // In Krze mehr15:}

    Die Einrckungen und Leerzeilen, die im Quelltext fr Platz sorgen, werden von einem Java-Compiler nicht beachtet. WieKommentare werden auch diese fr den Programmierer eingefgt, damit sich die Logik eines Programms leichternachvollziehen lt. So wie die Einrckungen und die Abstnde hier verwendet wurden (Leerzeilen zwischen Methodenund Einrkkungen bei Methoden und Variablen), werden sie im gesamten Buch verwendet. Die Java-Klassenbibliothekverwendet eine hnliche Einrkkung. Sie knnen einen beliebigen Stil dabei verwenden.

    Bevor Sie diese Klasse kompilieren, mssen Sie eine weitere Methode hinzufgen. Die Methode showAttributes() zeigtdie aktuellen Werte der Instanzvariablen einer Instanz der Klasse Jabberwock.

    Lschen Sie in dem Programm die Kommentarzeile // In Krze mehr, und ersetzen Sie sie durch den folgenden Code:void showAttributes() { System.out.printl ("This is a " + sex + " " + color + " jabberwock.");if (hungry == true) System.out.println("The jabberwock is hungry.");else System.out.println("The jabberwock is full.");}

    Die Methode showAttributes() gibt zwei Zeilen auf dem Bildschirm aus: in der ersten die Werte der Variablen sex undcolor und in der zweiten, ob das Jabberwock hungrig ist. Speichern Sie die Quelldatei in Ihrem Texteditor, und achten Siedarauf, da die Datei auch Jabberwock.java heit, damit der Dateiname mit dem Namen der Klasse bereinstimmt.

    Objektorientierte Programmierung - ein erster Eindruck

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/02.html (9 von 26) [19.04.2000 15:59:31]

  • An diesem Punkt verfgen Sie ber eine Jabberwock-Klasse mit Instanzvariablen und Instanzmethoden, die zur Anzeigeund Vernderung der Werte dieser Variablen verwendet werden knnen.

    Kompilieren Sie das Programm mit einer der beiden folgenden Methoden - abhngig davon, welches System Sieverwenden.

    Windows:

    Wechseln Sie von der MS-DOS-Eingabeaufforderung mit dem CD-Kommando in den Ordner, in dem sich IhreJava-Quelldatei befindet. Und verwenden Sie anschlieend das Kommando javac, um die Datei zu kompilieren:javac Jabberwock.javaSolaris:

    Wechseln Sie von der Kommandozeile aus mit dem CD-Kommando in das Verzeichnis, in dem sich Ihre Java-Quelldateibefindet. Und verwenden anschlieend das Kommando javac, um die Datei zu kompilieren:javac Jabberwock.javaWenn bei der Kompilierung Probleme auftreten, dann prfen Sie anhand von Listing 2.2, ob Sie eventuell Tippfehlergemacht haben.

    Listing 2.2: Der aktuelle Text von Jabberwock.java 1: class Jabberwock { 2: String color; 3: String sex; 4: boolean hungry; 5: 6: void feedJabberwock() { 7: if (hungry == true) { 8: System.out.println("Yum -- a peasant!"); 9: hungry = false;10: } else11: System.out.println("No, thanks -- already ate.");12: }13:14: void showAttributes() {15: System.out.println("This is a " + sex + " " + color + " jabberwock.");16: if (hungry == true)17: System.out.println("The jabberwock is hungry.");18: else19: System.out.println("The jabberwock is full.");20: }21: }

    Das Programm ausfhrenWenn Sie die Datei Jabberwock.java mit einem Kommandozeilen-Tool wie dem Java-Interpreter ausfhren, erhalten Sieeinen Fehler:In class Jabberwock: void main(String argv[]) is not definedp

    Dieser Fehler tritt auf, da der Java-Interpreter davon ausgeht, da das Programm eine Applikation ist, wenn Sie es von derKommandozeile aus aufrufen. Wenn eine Applikation ausgefhrt wird, ist deren main()-Metode der Startpunkt desProgramms. Da die Klasse Jabberwock keine main()-Methode besitzt, wei der Interpreter nicht, was er mit ihr machensoll.

    Objektorientierte Programmierung - ein erster Eindruck

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/02.html (10 von 26) [19.04.2000 15:59:31]

  • Es gibt zwei Mglichkeiten, die Jabberwock-Klasse zu verwenden:Erzeugen Sie eine separates Java-Applet oder eine Java-Applikation, die diese Klasse verwendet.n Fgen Sie eine main()-Methode in die Jabberwock-Klasse ein, so da diese direkt ausgefhrt werden kann.n

    In dieser bung wollen wir letzteres tun. Laden Sie Jabberwock.java in den Texteditor, und fgen Sie eine Leerzeiledirekt ber der letzten Zeile des Programms ein (Zeile 21 in Listing 2.2).Geben Sie hier nun folgendes ein:public static void main (String arguments[]) { Jabberwock j = new Jabberwock(); j.color = "orange"; j.sex = "male"; j.hungry = true; System.out.println("Calling showAttributes ..."); j.showAttributes(); System.out.println("-----"); System.out.println("Feeding the jabberwock ..."); j.feedJabberwock(); System.out.println("-----"); System.out.println("Calling showAttributes ..."); j.showAttributes(); System.out.println("-----"); System.out.println("Feeding the jabberwock ..."); j.feedJabberwock();}

    Mit der main()-Methode kann die Jabberwock-Klasse nun als Applikation verwendet werden. Speichern Sie die Datei, undkompilieren Sie sie anschlieend.

    Das Listing 2.3 zeigt die endgltige Version der Datei Jabberwock.java, fr den Fall, da Sie bei der KompilierungProbleme haben.

    Sie finden auf der CD eine Kopie der Quelldateien und anderer bentigter Dateien. Wenn Sie Probleme mit Programmenin diesem Buch haben, knnen Sie anhand dieser Dateien prfen, wo das Problem liegt.

    Listing 2.3: Die endgltige Version von Jabberwock.java 1: class Jabberwock { 2: String color; 3: String sex; 4: boolean hungry; 5: 6: void feedJabberwock() { 7: if (hungry == true) { 8: System.out.println("Yum -- a peasant!"); 9: hungry = false;10: } else11: System.out.println("No, thanks -- already ate.");12: }13:14: void showAttributes() {

    Objektorientierte Programmierung - ein erster Eindruck

    file:///C|/TEMP/www.mut.com/leseecke/buecher/java2/02.html (11 von 26) [19.04.2000 15:59:31]

  • 15: System.out.println("This is a " + sex + " " + color + " jabberwock.");16: