ebook img

Java kompakt: Eine Einführung in die Software-Entwicklung mit Java PDF

259 Pages·2013·2.656 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Java kompakt: Eine Einführung in die Software-Entwicklung mit Java

MATTHIAS HÖLZL ALLAITHY RAED MARTIN WIRSING Java kompakt eXXamen.press eXamen.pressisteineReihe,dieTheorieund PraxisausallenBereichenderInformatikfür dieHochschulausbildungvermittelt. (cid:2) (cid:2) Matthias Hölzl Allaithy Raed Martin Wirsing Java kompakt Eine Einführung in die Software-Entwicklung mit Java Matthias Hölzl Allaithy Raed Martin Wirsing InstitutfürInformatik Ludwig-Maximilians-UniversitätMünchen München,Deutschland ISSN1614-5216 ISBN978-3-642-28503-5 ISBN978-3-642-28504-2(eBook) DOI10.1007/978-3-642-28504-2 DieDeutscheNationalbibliothekverzeichnetdiesePublikationinderDeutschenNationalbibliografie; detailliertebibliografischeDatensindimInternetüberhttp://dnb.d-nb.deabrufbar. ©Springer-VerlagBerlinHeidelberg2013 DiesesWerkeinschließlichallerseinerTeileisturheberrechtlichgeschützt.JedeVerwertung,dienicht ausdrücklichvomUrheberrechtsgesetzzugelassenist,bedarfdervorherigenZustimmungdesVerlags. DasgiltinsbesonderefürVervielfältigungen,Bearbeitungen,Übersetzungen,Mikroverfilmungenund dieEinspeicherungundVerarbeitunginelektronischenSystemen. DieWiedergabevonGebrauchsnamen,Handelsnamen,Warenbezeichnungenusw.indiesemWerkbe- rechtigtauchohnebesondereKennzeichnungnichtzuderAnnahme,dasssolcheNamenimSinneder Warenzeichen-undMarkenschutz-Gesetzgebungalsfreizubetrachtenwärenunddahervonjedermann benutztwerdendürften. GedrucktaufsäurefreiemundchlorfreigebleichtemPapier. SpringeristTeilderFachverlagsgruppeSpringerScience+BusinessMedia www.springer.com Vorwort WennmanineinegutsortiertetechnischeBuchhandlunggeht,findetmanimRegal mehrere Meter Bu¨cher u¨ber Java. Welchen Grund gibt es, dieser Flut an Literatur nocheinweiteresBuchhinzuzufu¨gen? Java kompakt“ ist aus unserer Erfahrung mit verschiedenen Lehrveranstal- ” tungen an der Ludwig-Maximilians-Universita¨t Mu¨nchen hervorgegangen – so- wohl Vorlesungen fu¨r Studenten mit Haupt- und Nebenfach Informatik als auch Erga¨nzungskurse zur Programmierung in Java. Zahlreiche exzellente Bu¨cher zur Einfu¨hrungindieInformatikdeckendenStoffderEinfu¨hrungsvorlesungenab,le- gen aber ihren Schwerpunkt eher auf die theoretischen Fundamente, Datenstruk- turen und Algorithmen, wie es fu¨r eine Vorlesung auch angebracht ist. Durch die- se Ausrichtung werden die Grundkenntnisse der Programmierung typischerweise sehr knapp abgehandelt und teilweise auf U¨bungen verlagert. Fu¨r Studenten, die Vorkenntnisse in einer anderen Programmiersprache haben, ist das meistens aus- reichend, um die Besonderheiten von Java zu verstehen. Fu¨r andere Studenten ist esofterheblicheinfacher,demVorlesungsstoffzufolgen,wennsiezusa¨tzlicheine praxisorientierteEinfu¨hrungindieProgrammierunghaben. Dafu¨rdasrichtigeBuchzufinden,istabergarnichtsoeinfach:DiemeistenJava- Bu¨chersindfu¨rLesergedacht,dieschoneineandereProgrammiersprachebeherr- schen und die Grundlagen der Objektorientierung kennen; außerdem haben viele Bu¨chereinenenzyklopa¨dischenAnspruchundsinddaherzuumfangreich,umvon StudentennebenderVorlesungverwendetzuwerden. An der LMU Mu¨nchen werden seit einigen Jahren Erga¨nzungskurse zur Pro- grammierung mit Java angeboten; obwohl diese Kurse nicht als regula¨re Studien- leistungenangerechnetwerdenko¨nnen,sindsiebeidenStudentensehrbeliebtund werdenindenEvaluierungenalsa¨ußerstsinnvollbewertet.Studentenhabenunsoft erza¨hlt,dasssieThemenausderVorlesungerstrichtigverstandenhatten,nachdem sieihrepraktischeUmsetzungimErga¨nzungskursgesehenhatten.DieIdeezu Java ” kompakt“entstandaufgrundderzahlreichenNachfragenvonStudentennacheinem Buch,dasdenStoffdiesesKursesina¨hnlichpraxisnaherundkompakterFormwie dieVorlesungendarstellt. v vi Vorwort Java kompakt“ wendet sich an Leser, die keine oder nur geringe Vorkenntnis- ” se in der Programmierung haben und die einen leicht versta¨ndlichen Einstieg in Java suchen. Fu¨r Studenten im Grundstudium bietet es sich als begleitendes Ma- terial neben den Einfu¨hrungsvorlesungen an. Es ist aber auch fu¨r Auszubildende, Berufseinsteiger und jeden, der in Java programmieren lernen will, gedacht. Wir haben versucht, genug Stoff in den Kurs aufzunehmen, damit der Leser sinnvolle Programmeschreibenkann,undunsdabeitrotzdemknappzufassen. ImGegensatzzumanchenanderenKursen,dieJavavieleKapitellangalsproze- duraleProgrammiersprachebehandeln,legenwirvonAnfangandenSchwerpunkt auf objektorientierte Programmierung. Die ersten beiden Kapitel fu¨hren das Vor- gehen beim Programmieren mit Java ein und bieten einen Schnelldurchlauf durch einenGroßteilderimRestdesBuchsbehandeltenKonzepte.DieweiterenKapitel besprecheneinzelneThemengenauer:KlassenundObjekte(Kapitel3und4),Ty- pen(Kapitel5und6),AnweisungenundKontrollfluss(Kapitel7),Vererbungund Polymorphie (Kapitel 8) sowie generische Typen und Interfaces (Kapitel 9). Die- seKapitelsindsoweitwiemo¨glichunabha¨ngigvoneinander;allerdingsempfehlen wirIhnen,beimerstenDurchlesentrotzdemderReihenachvorzugehen.Kapitel10 fu¨hrtindasJavaCollectionsFrameworkeinundbautaufdemStoffallervorherge- hendenKapitelauf;dasletzteKapitelbesprichtdieThemenAusnahmebehandlung und Testen. Jedes Kapitel endet mit einem Abschnitt ”Was haben wir gelernt”, in dem wir den Stoff des Kapitels kurz zusammenfassen und anhand einer Mindmap strukturiertdarstellen.DieMindmaps,Lo¨sungsvorschla¨gezuausgewa¨hltenAufga- ben und weitere Materialien ko¨nnen von der Web-Site zum Buch heruntergeladen werden,dieunterderAdresse http://www.java-kompakt.info/ zufindenist. WirbedankenunsbeiunserenStudenten,dieunsdurchihrenEnthusiasmusdazu angespornthaben,diesesBuchzuschreiben.UnserDankgiltauchHerrnEngesser und Frau Glaunsinger vom Springer-Verlag, die uns bei der Erstellung des Buchs tatkra¨ftig unterstu¨tzt haben. Wir bedanken uns sehr herzlich bei unseren Familien, diewa¨hrendderErstellungdesBuchsvieleStundenaufunsverzichtenmussten. Mu¨nchen, MatthiasHo¨lzl November2012 AllaithyRaed MartinWirsing Inhaltsverzeichnis 1 DieJava-Umgebung ............................................ 1 1.1 DieEntwicklungsgeschichtevonJava......................... 1 1.1.1 Java-Varianten...................................... 2 1.2 DieFunktionsweisevonJava ............................... 2 1.2.1 WieprogrammiertmanmitJava? ..................... 3 1.2.2 DerJava-Compiler .................................. 4 1.2.3 JVM–DievirtuelleMaschinefu¨rJava ................. 5 1.2.4 DieGrundstruktureinesJava-Programms ............... 6 1.3 Washabenwirgelernt?..................................... 10 2 EinSchnelleinstieginJava ...................................... 11 2.1 Einweiteres,einfachesProgramm............................ 11 2.2 WennFehlerauftreten...................................... 14 2.3 UndwosinddieObjekte?................................... 15 2.4 Variablen................................................. 16 2.5 Listen ................................................... 18 2.6 Diefor-Schleife .......................................... 23 2.7 BenutzerdefinierteKlassen.................................. 24 2.8 Konstruktoren ............................................ 31 2.9 Undjetztalleszusammen... ................................ 32 2.10 MehrObjektorientierung ................................... 33 2.11 Bedingungen ............................................. 35 2.12 EinlesenvonDaten ........................................ 38 2.13 Vererbung................................................ 41 2.14 Washabenwirgelernt?..................................... 46 3 KlassenundObjekte ........................................... 49 3.1 Klassen .................................................. 49 3.1.1 AnatomievonKlassen ............................... 49 3.1.2 ModifikatorenundZugriffsrechte...................... 51 3.1.3 Typen ............................................. 54 vii viii Inhaltsverzeichnis 3.2 Variablen................................................. 55 3.3 Methoden ................................................ 61 3.3.1 DeklarationundSyntaxvonMethoden ................. 61 3.3.2 U¨berladenvonMethoden............................. 64 3.3.3 MethodenmitbeliebigvielenArgumenten .............. 65 3.3.4 Modifikatoren ...................................... 66 3.3.5 MethodenohneRu¨ckgabewert ........................ 67 3.3.6 MethodenmitRu¨ckgabewert.......................... 68 3.3.7 DasSchlu¨sselwortthis.............................. 70 3.4 Objekte .................................................. 71 3.4.1 DiedreiwichtigstenEigenschafteneinesObjekts ........ 71 3.5 Konstruktoren ............................................ 72 3.5.1 DeklarationundSyntaxvonKonstruktoren.............. 73 3.5.2 DerStandardkonstruktor ............................. 74 3.5.3 Konstruktoren:waspassiertimHintergrund? ............ 75 3.6 RegelnzumKlassendesign.................................. 78 3.7 Washabenwirgelernt?..................................... 79 4 MehrzuKlassenundObjekten .................................. 83 4.1 StatischeVariablenundMethoden............................ 83 4.1.1 StatischeVariablen.................................. 83 4.1.2 StatischeMethoden ................................. 84 4.2 RekursiveMethoden ....................................... 85 4.2.1 DirekteRekursion................................... 85 4.2.2 IndirekteRekursion ................................. 87 4.3 Software-Design .......................................... 88 4.3.1 Klassenidentifizierenunddeklarieren .................. 89 4.3.2 ObjekteigenschaftendurchInstanzvariablenabbilden ..... 90 4.3.3 KonstruktorenzumErzeugenvonObjektendeklarieren ... 92 4.3.4 ObjektverhaltendurchMethodenrealisieren............. 93 4.4 Washabenwirgelernt?..................................... 97 5 PrimitiveTypen................................................ 99 5.1 Wahrheitswerte ...........................................100 5.2 NumerischeTypen.........................................102 5.2.1 Typumwandlung(Cast,BoxingundUnboxing) ..........103 5.2.2 ArithmetischeOperationen ...........................104 5.2.3 Vergleichsoperationen ...............................107 5.2.4 BitweiseOperationen................................108 5.3 Zeichen..................................................109 5.3.1 Priorita¨tenderOperatoren ............................110 5.4 Washabenwirgelernt?.....................................111 Inhaltsverzeichnis ix 6 Referenztypen .................................................113 6.1 EindimensionaleArrays ....................................113 6.1.1 DeklarationundInitialisierung ........................114 6.1.2 ZugriffaufArrays...................................115 6.2 MehrdimensionaleArrays ..................................118 6.2.1 DefinitionvonmehrdimensionalenArrays ..............118 6.2.2 RechteckigeArrays .................................118 6.2.3 MehrdimensionaleArraysvariablerGro¨ße ..............120 6.2.4 DurchlaufenmehrdimensionalerArrays ................120 6.2.5 Regelnfu¨rmehrdimensionaleArrays...................121 6.3 Aufza¨hlungstypen(Enumerations) ...........................121 6.4 DieString-Klasse ........................................124 6.5 Washabenwirgelernt?.....................................126 7 Kontrollfluss...................................................127 7.1 Blo¨cke...................................................127 7.2 Fallunterscheidungen ......................................128 7.2.1 Dieif/then/else-Anweisung...........................130 7.2.2 Geschachtelteif/then/else-Anweisung ..................131 7.2.3 DieSwitch/Case-Anweisung..........................133 7.3 Schleifen.................................................136 7.3.1 while-Schleife......................................137 7.3.2 For-Schleifen.......................................138 7.3.3 Diefor-each-Schleife ................................141 7.3.4 Diedo/while-Schleife................................141 7.3.5 Steueranweisungen:break,continue..................142 7.4 Washabenwirgelernt?.....................................143 8 VererbungundPolymorphie.....................................145 8.1 DasVererbungsprinzip .....................................145 8.1.1 DieGrundideederVererbunginJava...................145 8.1.2 DasSchlu¨sselwortsuper.............................151 8.1.3 Vererbungsregeln ...................................152 8.2 PolymorphieundDynamischesBinden .......................153 8.3 DieKlasseObject .........................................157 8.3.1 Dieequals-Methode ................................158 8.3.2 DiehashCode-Methode..............................160 8.3.3 DietoString-Methode..............................162 8.4 Washabenwirgelernt?.....................................163 9 GenerischeTypen,abstrakteKlassenundInterfaces ...............165 9.1 GenerischeKlassen........................................165 9.2 AbstrakteKlassen .........................................168 9.3 Interfaces ................................................171 9.4 EinigewichtigeInterfaces ..................................175

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.