Innehållsförteckning Ämne Sida Program Hur ska man lära sig programmering med Java? 11 Kapitel 1 Introduktion till programmering 13 1.1 Vad är programmering? 14 1.2 Vad är en algoritm? 16 1.3 Olika sätt att beskriva en algoritm 19 1.4 Pseudokod och flödesplan 20 1.5 Vad är objektorienterad programmering? 25 Objekt, klass och metod 25 Anrop av metoder 26 Objektorienteringens termer 27 1.6 Programmering: En kort historik 31 Övningar till kapitel 1 35 Kapitel 2 Java språket och miljön 37 2.1 Vad är Java? 38 2.2 Kompilering och exekvering 41 2.3 Java Development Kit (JDK) 44 2.4 Javadokumentationen 46 2.5 En gratis utvecklingsmiljö: Java & TextPad 47 2.6 Att köra Java från ett kommandofönster 49 Kapitel 3 Att komma igång med Java 51 3.1 Vårt första javaprogram: Utskrift med Swing 52 MySwing Swing ett enkelt grafiskt gränssnitt 53 Vad är ett javaprogram? 54 Klassen MySwing 55 Metoden main() 55 Metoden showmessagedialog() 57 3.2 Utskrift till konsolen 59 Console Radbyte med \n 60 Radbyte 3.3 Konkatenering med + 61 Concat 3.4 Swingvarianter 63 SwingOutput Varianter av showmessagedialog() 65 Övningar till kapitel 3 66 Kapitel 4 Grundbegrepp i programmering 69 4.1 God programmeringsstil 70 4.2 Datatyper 72 Datatyp 4.3 Definition och initiering av variabler 75 Variabel 5
Vad händer när en variabel definieras? 77 DefInit Deklaration vs. definition 81 4.4 Swing ett interaktivt grafiskt gränssnitt 82 SwingInput Inläsning med Swing 83 Klassen String 84 4.5 Överskrivning eller kan x = x + 1 vara sant? 85 Overwrite Utskriftsteknik i Swing 87 4.6 Operatorer och uttryck 89 Operator Inmatning Bearbetning Utmatning 90 Nästlat anrop av metoder 91 4.7 Överlagring av operatorer 92 OperatorOv Heltalsdivision och modulooperatorn 93 4.8 Ökningsoperatorn ++ 95 PlusPlus 4.9 Sammansatta tilldelningar 98 SamTilld Övningar till kapitel 4 100 Kapitel 5 Enkla datatyper 103 5.1 Kan datorn lagra hur stora tal som helst? 104 Primitives Overflow 105 Wrapperklasser 106 5.2 Datatypen char 107 Char Teckenaritmetik 108 5.3 ASCII-tabellen 109 Int2char Explicit typkonvertering 110 Char2int Metoden charat() 113 5.4 Escapesekvenser i Swing 114 EscapeSwing 5.5 Unicode 116 Unicode 5.6 Inläsning från konsolen 118 Char2intCons UTF-8-kodning 119 Klassen Scanner 120 5.7 Escapesekvenser i konsolen 121 EscapeConsole 5.8 Decimaltalstyperna float och double 123 Decimaltal 5.9 Automatisk typkonvertering 125 AutoKonv Sammanfattning av kapitel 4 och 5 129 Övningar till kapitel 5 130 Kapitel 6 Kontrollstrukturer 133 6.1 Algoritmers byggstenar 134 6.2 Enkel selektion: if-satsen 135 EnkelIf Jämförelseoperatorer 137 Sortering med flera satser med if 138 MiniSort Villkorlig initiering 140 (O)VillkorInit 6.3 Tvåvägsval: if-else-satsen 143 IfElse 6.4 Flervägsval: switch-satsen 146 Switch 6
6.5 Programserien "Gissa tal" 152 med nästlad if-else 152 GissaIfElse med switch och tomma case-satser 154 GissaSwitchTom med kombination av switch och if-else 155 GissaSwitch 6.6 Efter-testad repetition: do-satsen 157 GissaDo Hantering av slumptal 159 DoSlump "Gissa tal" med slumptal 161 GissaDoSlump Evighetsslinga 163 6.7 För-testad repetition: while-satsen 164 ASCII-tabellen med while 165 Ascii 6.8 Bestämd repetition: for-satsen 167 ForSlump Räckvidden av for-satsens räknare 170 6.9 Nästlade for-satser 171 NestedFor Multiplikationstabellen 173 MultipTab Övningar till kapitel 6 (Projekt Labyrint I) 176 Kapitel 7 Logik för blivande programmerare 179 7.1 Logiska operatorer 180 OCH_ELLER Sanningstabeller 182 7.2 Datatypen boolean 185 SannTab 7.3 NEGATION som logisk operator 187 "Gissa tal" med NEGATION 187 GissaNEG Logiska uttryck 188 7.4 Programserien "Testa lösenord" 190 Passwd String-metoden equals() Kombination av NEGATION, OCH, ELLER 191 PasswdCapslock Övningar till kapitel 7 (Projekt Labyrint II) 194 Kapitel 8 Klasser, objekt och referenser 197 8.1 Vad är en klass? 198 Password "Testa lösenord" som klass 199 PasswordTest 8.2 Objekt med new 203 Vad är en referens? 203 8.3 Användning av klasser 205 Deklaration av en klass 206 Anst Definition av ett objekt 207 AnstTest Automatisk initiering av datamedlemmar 210 null och nolltecknet i Java 211 Åtkomst till objektets medlemmar 212 8.4 "Gissa tal" som klass 214 GissaTal 8.5 Statiska datamedlemmar 217 Modifieraren static 217 StatDemo Klass- och instansvariabler 218 StatDemoTest 7
8.6 Inkapsling och klassens konstruktor 220 Åtkomstmodifieraren private 220 Circle Klassens konstruktor 222 Inkapsling Default-konstruktorn 225 Flera konstruktorer 226 KontoD 227 SkapaKontoD Övningar till kapitel 8 (Projekt Automaten) 229 Kapitel 9 Metoder 233 9.1 Vad är en metod? 234 9.2 Metoder med returvärde 236 ReturMetod Deklaration av metoder 237 Anrop av metoder 239 Villkorlig return-sats 242 9.3 Externlagrade metoder 244 ExternMetod 9.4 Statiska metoder 246 SlumpTal 9.5 Referens som parameter och returvärde 248 KryptString 9.6 void-metoder 251 VoidMetod 9.7 Värde- och referensanrop 254 CallByVal Referensanrop 257 CallByRef 9.8 Variablers räckvidd 261 Block 9.9 Rekursiva metoder 264 Fibonacci Övningar till kapitel 9 (Projekt Kalkylatorn) 267 Kapitel 10 Arrays och listor sammansatta datatyper 271 10.1 Vad är en array? 272 10.2 Definition och initiering av en array 275 Array Initieringslista 278 ArrayInit 10.3 Foreach-satsen 281 ForeachTest 10.4 Texthantering med array av char 283 ArrayChar Slumplösenord 284 RandPasswd 10.5 Array av referenser 286 ArrayAvRef 10.6 Array som parameter i metoder 289 ArrayParam - Referensanrop med array 292 10.7 Sökning och sortering 293 SlumpArray - Slumptal i en array 293 Search - Bubbelsortering 296 Bubbel 10.8 Kryptering av text 300 KryptChar 10.9 Tvådimensionell array 303 DoubleArray 10.10 Listor 307 Lista Övningar till kapitel 10 (Projekt Labyrint III, Master Mind) 312 8
Kapitel 11 Undantagshantering 315 11.1 Automatiskt genererade undantag 316 TryCatchTest 11.2 Egengenererade undantag 318 ThrowTest throw-satsen 318 Projektuppgifter Labyrint I 176 Labyrint II 195 Automaten 230 Kalkylatorn 268 Labyrint III 312 Mater Mind 313 Lösningsförslag till övningar (Facit) 321 Programförteckning 371 Sakregister 375 9