



<html>
<head>
  <title>javabog.dk -  - </title>
  <link rev="stylesheet" type="text/css" href="../typografi.css">
  <meta name="description" content="Lærebog i Java. Af Jacob Nordfalk. Udkommet hos Forlaget Globe">
  <meta name="keywords" content="designmønster, programmering, OOP, objekter, klasser, objektorienteret programmering, Java, JSP, lærebog, UML, IT">
</head>
<body bgcolor="#ffffff">



<h1></h1>
<h2>Indholdsfortegnelse</h2>
    <br>
<a href='kapitel0.jsp#afsn0'>0  Forord  </a>15  <br>
  <a href='kapitel0.jsp#afsn0.1'>0.1  Form&aring;l og indhold  </a>15  <br>
  <a href='kapitel0.jsp#afsn0.1.1'>0.1.1  Bogens opbygning og indhold  </a>15  <br>
  <a href='kapitel0.jsp#afsn0.2'>0.2  Foruds&aelig;tninger for at l&aelig;se bogen  </a>17  <br>
  <a href='kapitel0.jsp#afsn0.2.1'>0.2.1  UML: Klassediagrammer  </a>17  <br>
  <a href='kapitel0.jsp#afsn0.3'>0.3  Netudgaven af bogen  </a>18  <br>
  <a href='kapitel0.jsp#afsn0.4'>0.4  &Aring;ben Dokumentlicens (&Aring;DL)  </a>19  <br>
  <a href='kapitel0.jsp#afsn0.5'>0.5  Tak  </a>20  <br>
  F&oslash;rste&nbsp;del:  Videreg&aring;ende Java  <br>
<a href='kapitel1.jsp#afsn1'>1  Samlinger af data  </a>23  <br>
  <a href='kapitel1.jsp#afsn1.1'>1.1  Lister og m&aelig;ngder  </a>24  <br>
  <a href='kapitel1.jsp#afsn1.1.1'>1.1.1  De simple typer og samlinger af data  </a>25  <br>
  <a href='kapitel1.jsp#afsn1.1.2'>1.1.2  Interfacene til lister og m&aelig;ngder  </a>25  <br>
  <a href='kapitel1.jsp#afsn1.1.3'>1.1.3  Lister  </a>26  <br>
  <a href='kapitel1.jsp#afsn1.1.4'>1.1.4  M&aelig;ngder  </a>26  <br>
  <a href='kapitel1.jsp#afsn1.1.5'>1.1.5  Iteratorer  </a>27  <br>
  <a href='kapitel1.jsp#afsn1.2'>1.2  Afbildninger (n&oslash;gleindekserede lister)  </a>28  <br>
  <a href='kapitel1.jsp#afsn1.2.1'>1.2.1  Afbildninger (Interfacet Map)  </a>28  <br>
  <a href='kapitel1.jsp#afsn1.2.2'>1.2.2  Hashtabeller (klassen HashMap)  </a>29  <br>
  <a href='kapitel1.jsp#afsn1.2.3'>1.2.3  Eksempel - ordbog  </a>29  <br>
  <a href='kapitel1.jsp#afsn1.2.4'>1.2.4  Eksempel - f&oslash;dselsdatoer  </a>30  <br>
  <a href='kapitel1.jsp#afsn1.2.5'>1.2.5  Klassen LinkedHashMap  </a>31  <br>
  <a href='kapitel1.jsp#afsn1.2.6'>1.2.6  Interfacet SortedMap (sorterede afbildninger) og klassen TreeMap  </a>31  <br>
  <a href='kapitel1.jsp#afsn1.3'>1.3  Opgaver  </a>31  <br>
  <a href='kapitel1.jsp#afsn1.4'>1.4  Videre l&aelig;sning  </a>31  <br>
  <a href='kapitel1.jsp#afsn1.5'>1.5  Appendiks  </a>32  <br>
  <a href='kapitel1.jsp#afsn1.5.1'>1.5.1  Collection  </a>32  <br>
  <a href='kapitel1.jsp#afsn1.5.2'>1.5.2  Set  </a>32  <br>
  <a href='kapitel1.jsp#afsn1.5.3'>1.5.3  SortedSet  </a>32  <br>
  <a href='kapitel1.jsp#afsn1.5.4'>1.5.4  List  </a>33  <br>
  <a href='kapitel1.jsp#afsn1.5.5'>1.5.5  Map  </a>34  <br>
  <a href='kapitel1.jsp#afsn1.5.6'>1.5.6  Iteratorer  </a>35  <br>
  <a href='kapitel1.jsp#afsn1.5.7'>1.5.7  Manipulation og sortering af data  </a>36  <br>
  <a href='kapitel1.jsp#afsn1.6'>1.6  Avanceret  </a>38  <br>
  <a href='kapitel1.jsp#afsn1.6.1'>1.6.1  Store-O-notationen  </a>38  <br>
  <a href='kapitel1.jsp#afsn1.6.2'>1.6.2  Arraybaserede listers virkem&aring;de  </a>38  <br>
  <a href='kapitel1.jsp#afsn1.6.3'>1.6.3  H&aelig;gtede listers virkem&aring;de  </a>39  <br>
  <a href='kapitel1.jsp#afsn1.6.4'>1.6.4  Hashtabellers virkem&aring;de  </a>39  <br>
  <a href='kapitel1.jsp#afsn1.6.5'>1.6.5  S&oslash;getr&aelig;ers virkem&aring;de  </a>39  <br>
  <a href='kapitel1.jsp#afsn1.6.6'>1.6.6  Uforanderlige samlinger  </a>40  <br>
  <a href='kapitel1.jsp#afsn1.6.7'>1.6.7  Tr&aring;dsikre samlinger  </a>40  <br>
  <a href='kapitel1.jsp#afsn1.6.8'>1.6.8  Uddrag af kildeteksten til Vector-klassen  </a>41  <br>
<a href='kapitel2.jsp#afsn2'>2  Dokumentation  </a>45  <br>
  <a href='kapitel2.jsp#afsn2.1'>2.1  Javadoc  </a>46  <br>
  <a href='kapitel2.jsp#afsn2.1.1'>2.1.1  API-dokumentation  </a>46  <br>
  <a href='kapitel2.jsp#afsn2.1.2'>2.1.2  At dokumentere med javadoc  </a>47  <br>
  <a href='kapitel2.jsp#afsn2.1.3'>2.1.3  Simpelt eksempel  </a>47  <br>
  <a href='kapitel2.jsp#afsn2.1.4'>2.1.4  St&oslash;rre eksempel: Vector-klassen  </a>48  <br>
  <a href='kapitel2.jsp#afsn2.1.5'>2.1.5  Oversigter  </a>49  <br>
  <a href='kapitel2.jsp#afsn2.2'>2.2  K&oslash;rsel af javadoc  </a>50  <br>
  <a href='kapitel2.jsp#afsn2.2.1'>2.2.1  Simpel brug  </a>50  <br>
  <a href='kapitel2.jsp#afsn2.2.2'>2.2.2  Henvise til den eksisterende javadokumentation  </a>50  <br>
  <a href='kapitel2.jsp#afsn2.3'>2.3  Appendiks  </a>51  <br>
  <a href='kapitel2.jsp#afsn2.3.1'>2.3.1  Parametre til javadoc  </a>51  <br>
  <a href='kapitel2.jsp#afsn2.3.2'>2.3.2  Koder tilg&aelig;ngelige i javadoc  </a>52  <br>
  <a href='kapitel2.jsp#afsn2.3.3'>2.3.3  Pakkekommentarer  </a>52  <br>
  <a href='kapitel2.jsp#afsn2.4'>2.4  Videre l&aelig;sning  </a>53  <br>
  <a href='kapitel2.jsp#afsn2.5'>2.5  Opgaver  </a>53  <br>
  <a href='kapitel2.jsp#afsn2.6'>2.6  L&oslash;sninger  </a>54  <br>
<a href='kapitel3.jsp#afsn3'>3  Rekursion  </a>55  <br>
  <a href='kapitel3.jsp#afsn3.1'>3.1  Introduktion til rekursive algoritmer  </a>56  <br>
  <a href='kapitel3.jsp#afsn3.1.1'>3.1.1  Folde en rekursion ud  </a>56  <br>
  <a href='kapitel3.jsp#afsn3.1.2'>3.1.2  Foruds&aelig;tninger for rekursion  </a>56  <br>
  <a href='kapitel3.jsp#afsn3.2'>3.2  Rekursiv listning af filer  </a>57  <br>
  <a href='kapitel3.jsp#afsn3.3'>3.3  Beregning af et matematisk udtryk  </a>58  <br>
  <a href='kapitel3.jsp#afsn3.4'>3.4  Tegning af fraktaler  </a>60  <br>
  <a href='kapitel3.jsp#afsn3.5'>3.5  Opgaver  </a>61  <br>
  <a href='kapitel4.jsp#afsn4'>4  Komponentbaseret programmering  </a>63  <br>
  <a href='kapitel4.jsp#afsn4.1'>4.1  Genbrugelige komponenter  </a>64  <br>
  <a href='kapitel4.jsp#afsn4.1.1'>4.1.1  Javab&oslash;nner  </a>64  <br>
  <a href='kapitel4.jsp#afsn4.1.2'>4.1.2  Eksempel: B&oslash;nnen TextField  </a>64  <br>
  <a href='kapitel4.jsp#afsn4.1.3'>4.1.3  Bruge en javab&oslash;nne  </a>65  <br>
  <a href='kapitel4.jsp#afsn4.2'>4.2  At definere javab&oslash;nner  </a>67  <br>
  <a href='kapitel4.jsp#afsn4.2.1'>4.2.1  En meget simpel b&oslash;nne: GentagTekst  </a>67  <br>
  <a href='kapitel4.jsp#afsn4.2.2'>4.2.2  Brug af b&oslash;nner fra et udviklingsv&aelig;rkt&oslash;j  </a>68  <br>
  <a href='kapitel4.jsp#afsn4.2.3'>4.2.3  St&oslash;rrelsen af en grafisk komponent  </a>68  <br>
  <a href='kapitel4.jsp#afsn4.2.4'>4.2.4  Skelne mellem udviklings- og i k&oslash;rselsfasen  </a>69  <br>
  <a href='kapitel4.jsp#afsn4.3'>4.3  Karakteristika ved javab&oslash;nner  </a>70  <br>
  <a href='kapitel4.jsp#afsn4.3.1'>4.3.1  B&oslash;nner skal have en parameterl&oslash;s konstrukt&oslash;r  </a>70  <br>
  <a href='kapitel4.jsp#afsn4.3.2'>4.3.2  B&oslash;nner kan have egenskaber  </a>70  <br>
  <a href='kapitel4.jsp#afsn4.3.3'>4.3.3  B&oslash;nner kan have tilknyttet ekstra information  </a>71  <br>
  <a href='kapitel4.jsp#afsn4.3.4'>4.3.4  B&oslash;nner b&oslash;r v&aelig;re afgr&aelig;nsede og  uafh&aelig;ngige  </a>71  <br>
  <a href='kapitel4.jsp#afsn4.3.5'>4.3.5  B&oslash;nner kan underst&oslash;tte h&aelig;ndelses-lyttere  </a>71  <br>
  <a href='kapitel4.jsp#afsn4.4'>4.4  Ekstra eksempler  </a>73  <br>
  <a href='kapitel4.jsp#afsn4.4.1'>4.4.1  Rystetekst  </a>73  <br>
  <a href='kapitel4.jsp#afsn4.4.2'>4.4.2  Rulletekst  </a>74  <br>
  <a href='kapitel4.jsp#afsn4.4.3'>4.4.3  Simpel kryptering  </a>75  <br>
  <a href='kapitel4.jsp#afsn4.4.4'>4.4.4  Eksempel p&aring; brug af b&oslash;nnerne i et v&aelig;rkt&oslash;j  </a>76  <br>
  <a href='kapitel4.jsp#afsn4.5'>4.5  Opgaver  </a>78  <br>
  <a href='kapitel4.jsp#afsn4.6'>4.6  L&oslash;sninger  </a>79  <br>
  <a href='kapitel4.jsp#afsn4.6.1'>4.6.1  Grafisk komponent: GentagTekst  </a>79  <br>
  <a href='kapitel4.jsp#afsn4.6.2'>4.6.2  Grafisk komponent: Billede  </a>79  <br>
  <a href='kapitel4.jsp#afsn4.6.3'>4.6.3  Webserver-komponent  </a>80  <br>
  <a href='kapitel4.jsp#afsn4.7'>4.7  Avanceret  </a>81  <br>
  <a href='kapitel4.jsp#afsn4.7.1'>4.7.1  En komponent til at tegne kurver  </a>81  <br>
  <a href='kapitel4.jsp#afsn4.7.2'>4.7.2  Repr&aelig;sentation af funktioner  </a>84  <br>
  <a href='kapitel4.jsp#afsn4.7.3'>4.7.3  Fortolkning af strenge til funktioner  </a>86  <br>
  <a href='kapitel4.jsp#afsn4.7.4'>4.7.4  Layout-manageres virkem&aring;de  </a>87  <br>
  <a href='kapitel4.jsp#afsn4.7.5'>4.7.5  &Oslash;velse: Samspil med layout-manager  </a>88  <br>
  <a href='kapitel4.jsp#afsn4.7.6'>4.7.6  Opgave: Adresseindtastningskomponent  </a>88  <br>
  <a href='kapitel4.jsp#afsn4.7.7'>4.7.7  L&oslash;sning: Adresseindtastningskomponent  </a>89  <br>
  <a href='kapitel5.jsp#afsn5'>5 Grafiktegning  (Java</a>2D)  93  <br>
  <a href='kapitel5.jsp#afsn5.1'>5.1  Java</a>2D kort fortalt  94  <br>
  <a href='kapitel5.jsp#afsn5.1.1'>5.1.1  Geometriske figurer  </a>94  <br>
  <a href='kapitel5.jsp#afsn5.1.2'>5.1.2  Geometriske operationer  </a>95  <br>
  <a href='kapitel5.jsp#afsn5.1.3'>5.1.3  Transformationer  </a>96  <br>
  <a href='kapitel5.jsp#afsn5.1.4'>5.1.4  Linjetyper  </a>96  <br>
  <a href='kapitel5.jsp#afsn5.1.5'>5.1.5  Tegnekvalitet  </a>96  <br>
  <a href='kapitel5.jsp#afsn5.1.6'>5.1.6  Videre l&aelig;sning  </a>96  <br>
  <a href='kapitel5.jsp#afsn5.2'>5.2  Eksempel  </a>96  <br>
  <a href='kapitel5.jsp#afsn5.3'>5.3  Eksempel fra JDK'et  </a>98  <br>
<a href='kapitel6.jsp#afsn6'>6  Grafiske brugergr&aelig;nseflader (Swing)  </a>99  <br>
  <a href='kapitel6.jsp#afsn6.1'>6.1  Introduktion til Swing  </a>100  <br>
  <a href='kapitel6.jsp#afsn6.1.1'>6.1.1  Eksempel p&aring; forskelle mellem Swing og AWT  </a>101  <br>
  <a href='kapitel6.jsp#afsn6.2'>6.2  MVC i Swing- og AWT-komponenter  </a>102  <br>
  <a href='kapitel6.jsp#afsn6.2.1'>6.2.1  AWT-komponenter  </a>102  <br>
  <a href='kapitel6.jsp#afsn6.2.2'>6.2.2  Swing-komponenter  </a>102  <br>
  <a href='kapitel6.jsp#afsn6.3'>6.3  Datamodellen i Swing-komponenter  </a>103  <br>
  <a href='kapitel6.jsp#afsn6.3.1'>6.3.1  Tekstfelter (interfacet Document)  </a>103  <br>
  <a href='kapitel6.jsp#afsn6.3.2'>6.3.2  Tabeller (interfacet TableModel)  </a>104  <br>
  <a href='kapitel6.jsp#afsn6.3.3'>6.3.3  Knapper (interfacet ButtonModel)  </a>105  <br>
  <a href='kapitel6.jsp#afsn6.3.4'>6.3.4  Andre komponenter  </a>106  <br>
  <a href='kapitel6.jsp#afsn6.3.5'>6.3.5  Opgaver  </a>106  <br>
  <a href='kapitel6.jsp#afsn6.3.6'>6.3.6  L&oslash;sning  </a>107  <br>
  <a href='kapitel6.jsp#afsn6.4'>6.4  Pr&aelig;sentationsdelen i Swing  </a>110  <br>
  <a href='kapitel6.jsp#afsn6.4.1'>6.4.1  Lister (ListCellRenderer)  </a>110  <br>
  <a href='kapitel6.jsp#afsn6.4.2'>6.4.2  Eksempel: Pr&aelig;sentation af skrifter i en liste  </a>111  <br>
  <a href='kapitel6.jsp#afsn6.4.3'>6.4.3  Tabeller (TableCellRenderer)  </a>113  <br>
  <a href='kapitel6.jsp#afsn6.4.4'>6.4.4  Tr&aelig;er (TreeCellRenderer)  </a>114  <br>
  <a href='kapitel6.jsp#afsn6.4.5'>6.4.5  Opgaver  </a>114  <br>
  <a href='kapitel6.jsp#afsn6.5'>6.5  Kontroldelen af Swing-komponenter  </a>115  <br>
  <a href='kapitel6.jsp#afsn6.5.1'>6.5.1  Tabeller (TableCellEditor)  </a>115  <br>
  <a href='kapitel6.jsp#afsn6.5.2'>6.5.2  Tr&aelig;er (TreeCellEditor)  </a>115  <br>
  <a href='kapitel6.jsp#afsn6.5.3'>6.5.3  Standardredigering med DefaultCellEditor  </a>115  <br>
  <a href='kapitel6.jsp#afsn6.6'>6.6  Eksempler  </a>116  <br>
  <a href='kapitel6.jsp#afsn6.6.1'>6.6.1  SwingSet</a>2-demo af JTable  116  <br>
  <a href='kapitel6.jsp#afsn6.6.2'>6.6.2  Eksempel med JTable  </a>117  <br>
  <a href='kapitel6.jsp#afsn6.7'>6.7  Avanceret: Udseendet af Swing  </a>119  <br>
  <a href='kapitel6.jsp#afsn6.7.1'>6.7.1  Swing-komponenters standardudseender  </a>119  <br>
  <a href='kapitel6.jsp#afsn6.7.2'>6.7.2  Andre udseender  </a>119  <br>
  <a href='kapitel6.jsp#afsn6.7.3'>6.7.3  Kunststoff-udseendet  </a>119  <br>
  <a href='kapitel6.jsp#afsn6.7.4'>6.7.4  Alloys-udseendet  </a>120  <br>
  <a href='kapitel6.jsp#afsn6.7.5'>6.7.5  Opgaver  </a>120  <br>
<a href='kapitel7.jsp#afsn7'>7  Internationalisering  </a>121  <br>
  <a href='kapitel7.jsp#afsn7.1'>7.1  Internationale programmer  </a>122  <br>
  <a href='kapitel7.jsp#afsn7.1.1'>7.1.1  Formatering af tidspunkter  </a>122  <br>
  <a href='kapitel7.jsp#afsn7.1.2'>7.1.2  Formatering af tal og bel&oslash;b  </a>123  <br>
  <a href='kapitel7.jsp#afsn7.1.3'>7.1.3  Tekstindhold i resursefiler  </a>123  <br>
  <a href='kapitel7.jsp#afsn7.1.4'>7.1.4  Avanceret: Bin&aelig;re resursefiler  </a>124  <br>
  <a href='kapitel7.jsp#afsn7.1.5'>7.1.5  Avanceret tekstformatering  </a>125  <br>
  <a href='kapitel7.jsp#afsn7.2'>7.2  Selv bestemme sproget  </a>127  <br>
  <a href='kapitel7.jsp#afsn7.2.1'>7.2.1  Styre sproget fra kommandolinjen  </a>127  <br>
  <a href='kapitel7.jsp#afsn7.2.2'>7.2.2  De mulige Locale-objekter  </a>127  <br>
  <a href='kapitel7.jsp#afsn7.2.3'>7.2.3  Bruge Locale-objekter  </a>128  <br>
  <a href='kapitel7.jsp#afsn7.2.4'>7.2.4  Avanceret: S&aelig;tte standardsprog  </a>128  <br>
<a href='kapitel8.jsp#afsn8'>8  Databaser (JDBC)  </a>129  <br>
  <a href='kapitel8.jsp#afsn8.1'>8.1  Basisfunktioner i JDBC  </a>130  <br>
  <a href='kapitel8.jsp#afsn8.1.1'>8.1.1  Indl&aelig;se driveren  </a>130  <br>
  <a href='kapitel8.jsp#afsn8.1.2'>8.1.2  Etablere forbindelsen  </a>130  <br>
  <a href='kapitel8.jsp#afsn8.1.3'>8.1.3  Kommunikere med databasen  </a>131  <br>
  <a href='kapitel8.jsp#afsn8.2'>8.2  Forpligtigende eller ej? (commit)  </a>132  <br>
  <a href='kapitel8.jsp#afsn8.3'>8.3  Optimering  </a>133  <br>
  <a href='kapitel8.jsp#afsn8.3.1'>8.3.1  Bruge den rigtige databasedriver  </a>133  <br>
  <a href='kapitel8.jsp#afsn8.3.2'>8.3.2  L&aelig;gge opdateringer i k&oslash; (batch-opdateringer)  </a>133  <br>
  <a href='kapitel8.jsp#afsn8.3.3'>8.3.3  P&aring; forh&aring;nd forberedt SQL  </a>134  <br>
  <a href='kapitel8.jsp#afsn8.3.4'>8.3.4  Kalde gemte procedurer i databasen  </a>135  <br>
  <a href='kapitel8.jsp#afsn8.4'>8.4  Avanceret  </a>136  <br>
  <a href='kapitel8.jsp#afsn8.4.1'>8.4.1  Opdatering og navigering i ResultSet-objekter  </a>136  <br>
  <a href='kapitel8.jsp#afsn8.4.2'>8.4.2  Metadata  </a>136  <br>
  <a href='kapitel8.jsp#afsn8.4.3'>8.4.3  Metadata om databasen  </a>136  <br>
  <a href='kapitel8.jsp#afsn8.4.4'>8.4.4  Metadata om svaret p&aring; en foresp&oslash;rgsel  </a>136  <br>
  <a href='kapitel8.jsp#afsn8.4.5'>8.4.5  Eksempel - udskrive en vilk&aring;rlig tabel  </a>137  <br>
  <a href='kapitel8.jsp#afsn8.4.6'>8.4.6  Persistering af objekter - JDO  </a>138  <br>
<a href='kapitel9.jsp#afsn9'>9  Optimering  </a>139  <br>
  <a href='kapitel9.jsp#afsn9.1'>9.1  Optimering  </a>140  <br>
  <a href='kapitel9.jsp#afsn9.2'>9.2  Ting, man skal undg&aring; (hvis man kan)  </a>140  <br>
  <a href='kapitel9.jsp#afsn9.2.1'>9.2.1  Oprette mange objekter  </a>140  <br>
  <a href='kapitel9.jsp#afsn9.2.2'>9.2.2  Oprette mange tr&aring;de  </a>141  <br>
  <a href='kapitel9.jsp#afsn9.2.3'>9.2.3  Kaste og fange mange undtagelser  </a>141  <br>
  <a href='kapitel9.jsp#afsn9.2.4'>9.2.4  G&aring; ind og ud af synkroniserede blokke/metoder  </a>141  <br>
  <a href='kapitel9.jsp#afsn9.2.5'>9.2.5  Bruge mange (evt. anonyme) klasser  </a>141  <br>
  <a href='kapitel9.jsp#afsn9.3'>9.3  Er C++ hurtigere end Java?  </a>142  <br>
  <a href='kapitel9.jsp#afsn9.3.1'>9.3.1  Et testprogram i Java  </a>143  <br>
  <a href='kapitel9.jsp#afsn9.3.2'>9.3.2  Testprogrammet i C++  </a>143  <br>
  <a href='kapitel9.jsp#afsn9.4'>9.4  Videre l&aelig;sning  </a>144  <br>
<a href='kapitel10.jsp#afsn10'>10  Eksterne kald og JNI  </a>145  <br>
  <a href='kapitel10.jsp#afsn10.1'>10.1  Kalde eksterne programmer  </a>146  <br>
  <a href='kapitel10.jsp#afsn10.1.1'>10.1.1  Kommunikation med det eksterne program  </a>147  <br>
  <a href='kapitel10.jsp#afsn10.2'>10.2  Kald til andre programmeringssprog  </a>147  <br>
  <a href='kapitel10.jsp#afsn10.2.1'>10.2.1  JNI - Java Native Interface  </a>147  <br>
  <a href='kapitel10.jsp#afsn10.2.2'>10.2.2  Skrive Java-klasser med maskinkode  </a>147  <br>
  <a href='kapitel10.jsp#afsn10.2.3'>10.2.3  Skrive en metode i C++  </a>148  <br>
  <a href='kapitel10.jsp#afsn10.2.4'>10.2.4  Overs&aelig;tte til maskinkode  </a>149  <br>
  <a href='kapitel10.jsp#afsn10.2.5'>10.2.5  K&oslash;re programmet  </a>149  <br>
  <a href='kapitel10.jsp#afsn10.2.6'>10.2.6  Kommunikation fra C-koden til Java  </a>150  <br>
  <a href='kapitel10.jsp#afsn10.2.7'>10.2.7  Henvisninger  </a>150  <br>
<a href='kapitel11.jsp#afsn11'>11  Introspektion  </a>151  <br>
  <a href='kapitel11.jsp#afsn11.1'>11.1  L&aelig;se klasseinformation for et objekt  </a>152  <br>
  <a href='kapitel11.jsp#afsn11.1.1'>11.1.1  Oversigt over pakken java.lang.reflect  </a>152  <br>
  <a href='kapitel11.jsp#afsn11.1.2'>11.1.2  Opremse metoderne i en klasse  </a>153  <br>
  <a href='kapitel11.jsp#afsn11.2'>11.2  Arbejde med objekter  </a>153  <br>
  <a href='kapitel11.jsp#afsn11.3'>11.3  Introspektion p&aring; javab&oslash;nner  </a>154  <br>
  <a href='kapitel11.jsp#afsn11.4'>11.4  Generere nye klasser og indl&aelig;se dem  </a>155  <br>
  <a href='kapitel11.jsp#afsn11.4.1'>11.4.1  Kalde overs&aelig;tteren som eksternt program  </a>155  <br>
  <a href='kapitel11.jsp#afsn11.4.2'>11.4.2  Bruge overs&aelig;tteren internt  </a>155  <br>
  <a href='kapitel11.jsp#afsn11.4.3'>11.4.3  Indl&aelig;se klasser fra filsystemet  </a>156  <br>
  <a href='kapitel11.jsp#afsn11.5'>11.5  Videre l&aelig;sning  </a>157  <br>
<a href='kapitel12.jsp#afsn12'>12  Standardbiblioteket (J</a>2SE)  159  <br>
  <a href='kapitel12.jsp#afsn12.1'>12.1  Grundl&aelig;ggende klasser (java.lang)  </a>160  <br>
  <a href='kapitel12.jsp#afsn12.1.1'>12.1.1  Klasser, der svarer til de simple typer  </a>160  <br>
  <a href='kapitel12.jsp#afsn12.1.2'>12.1.2  Tr&aring;de  </a>161  <br>
  <a href='kapitel12.jsp#afsn12.1.3'>12.1.3  Introspektion og dynamisk klasseindl&aelig;sning  </a>161  <br>
  <a href='kapitel12.jsp#afsn12.1.4'>12.1.4  Svage referencer (java.lang.ref)  </a>162  <br>
  <a href='kapitel12.jsp#afsn12.1.5'>12.1.5  Matematik med vilk&aring;rlig pr&aelig;cision (java.math)  </a>162  <br>
  <a href='kapitel12.jsp#afsn12.2'>12.2  V&aelig;rkt&oslash;jsklasser (java.util)  </a>162  <br>
  <a href='kapitel12.jsp#afsn12.2.1'>12.2.1  De &quot;klassiske&quot; datastrukturer i java.util  </a>163  <br>
  <a href='kapitel12.jsp#afsn12.2.2'>12.2.2  Collections-klasserne i java.util  </a>164  <br>
  <a href='kapitel12.jsp#afsn12.3'>12.3  Behandling af tekst (java.text)  </a>165  <br>
  <a href='kapitel12.jsp#afsn12.4'>12.4  Grafiktegning (java.awt del </a>1)  166  <br>
  <a href='kapitel12.jsp#afsn12.4.1'>12.4.1  Generelt  </a>166  <br>
  <a href='kapitel12.jsp#afsn12.4.2'>12.4.2  Grafiktegning (Java</a>2D)  167  <br>
  <a href='kapitel12.jsp#afsn12.4.3'>12.4.3  Udskrivning  </a>169  <br>
  <a href='kapitel12.jsp#afsn12.5'>12.5  Grafiske brugergr&aelig;nseflader (java.awt del </a>2)  170  <br>
  <a href='kapitel12.jsp#afsn12.5.1'>12.5.1  Grafiske komponenter i java.awt  </a>170  <br>
  <a href='kapitel12.jsp#afsn12.5.2'>12.5.2  Containere i java.awt  </a>171  <br>
  <a href='kapitel12.jsp#afsn12.5.3'>12.5.3  Appletter (pakken java.applet)  </a>171  <br>
  <a href='kapitel12.jsp#afsn12.5.4'>12.5.4  Layout-managere i java.awt  </a>171  <br>
  <a href='kapitel12.jsp#afsn12.5.5'>12.5.5  H&aelig;ndelser i java.awt  </a>171  <br>
  <a href='kapitel12.jsp#afsn12.5.6'>12.5.6  Menuer i java.awt  </a>173  <br>
  <a href='kapitel12.jsp#afsn12.5.7'>12.5.7  Kopiering, udklipsholder og tr&aelig;k-og-slip  </a>173  <br>
  <a href='kapitel12.jsp#afsn12.6'>12.6  Lyd  </a>174  <br>
  <a href='kapitel12.jsp#afsn12.6.1'>12.6.1  WAV/indspillet lyd (javax.sound.sampled)  </a>174  <br>
  <a href='kapitel12.jsp#afsn12.6.2'>12.6.2  MIDI/nodebaseret musik (javax.sound.midi)  </a>175  <br>
  <a href='kapitel12.jsp#afsn12.7'>12.7  Netv&aelig;rkskommunikation (java.net)  </a>177  <br>
  <a href='kapitel12.jsp#afsn12.8'>12.8  Databasekommunikation (java.sql)  </a>178  <br>
  <a href='kapitel12.jsp#afsn12.9'>12.9  Fjernkald af metoder (java.rmi)  </a>179  <br>
  <a href='kapitel12.jsp#afsn12.10'>12.10  Sikkerhed, kryptering, adgangskontrol (java.security)  </a>180  <br>
<a href='kapitel13.jsp#afsn13'>13  Mobiltelefoner (J</a>2ME)  181  <br>
  <a href='kapitel13.jsp#afsn13.1'>13.1  Introduktion til midletter  </a>182  <br>
  <a href='kapitel13.jsp#afsn13.1.1'>13.1.1  Eksempel - en simpel midlet  </a>182  <br>
  <a href='kapitel13.jsp#afsn13.1.2'>13.1.2  Pr&oslash;vek&oslash;re en midlet  </a>182  <br>
  <a href='kapitel13.jsp#afsn13.1.3'>13.1.3  Midletters livscyklus  </a>183  <br>
  <a href='kapitel13.jsp#afsn13.2'>13.2  Brugergr&aelig;nseflader i midletter  </a>184  <br>
  <a href='kapitel13.jsp#afsn13.2.1'>13.2.1  Klassen Display (den fysiske sk&aelig;rm)  </a>184  <br>
  <a href='kapitel13.jsp#afsn13.2.2'>13.2.2  Klassen Displayable (sk&aelig;rmbilleder)  </a>185  <br>
  <a href='kapitel13.jsp#afsn13.2.3'>13.2.3  Klassen Ticker (rulletekst p&aring; et sk&aelig;rmbillede)  </a>185  <br>
  <a href='kapitel13.jsp#afsn13.2.4'>13.2.4  Klassen Image (billeder)  </a>185  <br>
  <a href='kapitel13.jsp#afsn13.2.5'>13.2.5  Klassen Font (skrifttyper)  </a>186  <br>
  <a href='kapitel13.jsp#afsn13.3'>13.3  Direkte grafiktegning og spil  </a>187  <br>
  <a href='kapitel13.jsp#afsn13.3.1'>13.3.1  Klassen Canvas  </a>188  <br>
  <a href='kapitel13.jsp#afsn13.3.2'>13.3.2  Klassen GameCanvas og lagdelt grafik  </a>188  <br>
  <a href='kapitel13.jsp#afsn13.3.3'>13.3.3  Klassen Graphics  </a>189  <br>
  <a href='kapitel13.jsp#afsn13.4'>13.4  Grafiske standardkomponenter  </a>190  <br>
  <a href='kapitel13.jsp#afsn13.4.1'>13.4.1  Eksempel: G&aelig;t et tal  </a>190  <br>
  <a href='kapitel13.jsp#afsn13.4.2'>13.4.2  Kommandoer og h&aelig;ndelser i midletter  </a>191  <br>
  <a href='kapitel13.jsp#afsn13.4.3'>13.4.3  TextBox  </a>192  <br>
  <a href='kapitel13.jsp#afsn13.4.4'>13.4.4  Alert  </a>192  <br>
  <a href='kapitel13.jsp#afsn13.4.5'>13.4.5  List  </a>193  <br>
  <a href='kapitel13.jsp#afsn13.4.6'>13.4.6  Form  </a>194  <br>
  <a href='kapitel13.jsp#afsn13.5'>13.5  Tilg&aelig;ngelige klasser fra J</a>2SE  195  <br>
  <a href='kapitel13.jsp#afsn13.5.1'>13.5.1  Pakken java.lang  </a>195  <br>
  <a href='kapitel13.jsp#afsn13.5.2'>13.5.2  Pakken java.util  </a>195  <br>
  <a href='kapitel13.jsp#afsn13.5.3'>13.5.3  Pakken java.io  </a>195  <br>
  <a href='kapitel13.jsp#afsn13.6'>13.6  Netv&aelig;rkskommunikation  </a>196  <br>
  <a href='kapitel13.jsp#afsn13.6.1'>13.6.1  Pakken javax.microedition.io  </a>196  <br>
  <a href='kapitel13.jsp#afsn13.6.2'>13.6.2  Eksempel: Kommunikation med webserver  </a>197  <br>
  <a href='kapitel13.jsp#afsn13.7'>13.7  Gemme data i telefonen  </a>199  <br>
  <a href='kapitel13.jsp#afsn13.8'>13.8  Udviklingsv&aelig;rkt&oslash;jer til midletter  </a>200  <br>
  <a href='kapitel13.jsp#afsn13.8.1'>13.8.1  Wireless Toolkit  </a>200  <br>
  <a href='kapitel13.jsp#afsn13.8.2'>13.8.2  Sun ONE Studio Mobile Edition  </a>200  <br>
  <a href='kapitel13.jsp#afsn13.8.3'>13.8.3  Borland JBuilder MobileSet  </a>201  <br>
  <a href='kapitel13.jsp#afsn13.9'>13.9  Opbygningen af J</a>2ME  202  <br>
  <a href='kapitel13.jsp#afsn13.9.1'>13.9.1  Konfigurationer  </a>202  <br>
  <a href='kapitel13.jsp#afsn13.9.2'>13.9.2  Profiler  </a>203  <br>
  <a href='kapitel13.jsp#afsn13.10'>13.10  Yderligere l&aelig;sning  </a>203  <br>
<a href='kapitel14.jsp#afsn14'>14  Servere (J</a>2EE &amp; EJB)  205  <br>
  <a href='kapitel14.jsp#afsn14.1'>14.1  J</a>2EE-platformens dele  206  <br>
  <a href='kapitel14.jsp#afsn14.2'>14.2  Webservere (servletter og JSP)  </a>206  <br>
  <a href='kapitel14.jsp#afsn14.2.1'>14.2.1  JSP-sider  </a>206  <br>
  <a href='kapitel14.jsp#afsn14.2.2'>14.2.2  HTML-formularer  </a>207  <br>
  <a href='kapitel14.jsp#afsn14.3'>14.3  RMI - objekter over netv&aelig;rk  </a>208  <br>
  <a href='kapitel14.jsp#afsn14.3.1'>14.3.1  Principper i kald over et netv&aelig;rk  </a>208  <br>
  <a href='kapitel14.jsp#afsn14.3.2'>14.3.2  Fjerninterfacet til serverobjektet  </a>208  <br>
  <a href='kapitel14.jsp#afsn14.3.3'>14.3.3  Implementationen af serverobjektet  </a>209  <br>
  <a href='kapitel14.jsp#afsn14.3.4'>14.3.4  Klientsiden - brug af fjerninterfacet  </a>210  <br>
  <a href='kapitel14.jsp#afsn14.4'>14.4  EJB-b&oslash;nner  </a>211  <br>
  <a href='kapitel14.jsp#afsn14.4.1'>14.4.1  Kildeteksten i en b&oslash;nne  </a>211  <br>
  <a href='kapitel14.jsp#afsn14.4.2'>14.4.2  Eksempel: Veksler  </a>211  <br>
  <a href='kapitel14.jsp#afsn14.4.3'>14.4.3  EJB-Containerens information om Veksler  </a>212  <br>
  <a href='kapitel14.jsp#afsn14.5'>14.5  Bruge en EJB-b&oslash;nne  </a>213  <br>
  <a href='kapitel14.jsp#afsn14.5.1'>14.5.1  JNDI (Java Naming and Directory Interface)  </a>213  <br>
  <a href='kapitel14.jsp#afsn14.5.2'>14.5.2  Brug af Veksler-b&oslash;nnen  </a>213  <br>
  <a href='kapitel14.jsp#afsn14.5.3'>14.5.3  Brug af Veksler fra JSP  </a>214  <br>
  <a href='kapitel14.jsp#afsn14.6'>14.6  Typer af EJB-b&oslash;nner  </a>214  <br>
  <a href='kapitel14.jsp#afsn14.6.1'>14.6.1  Sessionsb&oslash;nner  </a>214  <br>
  <a href='kapitel14.jsp#afsn14.6.2'>14.6.2  Entitetsb&oslash;nner  </a>215  <br>
  <a href='kapitel14.jsp#afsn14.6.3'>14.6.3  Meddelelses-drevne b&oslash;nner  </a>215  <br>
  <a href='kapitel14.jsp#afsn14.6.4'>14.6.4  Tilstandsfuld sessionsb&oslash;nne: Brugeradgang  </a>215    <br>
  <a href='kapitel14.jsp#afsn14.6.5'>14.6.5  Opgaver  </a>216  <br>
  <a href='kapitel14.jsp#afsn14.7'>14.7  Entitetsb&oslash;nner  </a>217  <br>
  <a href='kapitel14.jsp#afsn14.7.1'>14.7.1  Eksempel p&aring; en entitetsb&oslash;nne  </a>217  <br>
  <a href='kapitel14.jsp#afsn14.7.2'>14.7.2  Fremfindingsmetoder   </a>217  <br>
  <a href='kapitel14.jsp#afsn14.7.3'>14.7.3  Idrifts&aelig;tte b&oslash;nnen  </a>219  <br>
  <a href='kapitel14.jsp#afsn14.7.4'>14.7.4  Bruge b&oslash;nnen  </a>220  <br>
  <a href='kapitel14.jsp#afsn14.7.5'>14.7.5  Fremfinde entitetsb&oslash;nner i EJB </a><a href='kapitel1.jsp#afsn1.1'>1.1  </a>220  <br>
  <a href='kapitel14.jsp#afsn14.7.6'>14.7.6  EJB </a>2.0 <a name='afsn0'></a>og EJB Query language (EJBQL)  221  <br>
  <a href='kapitel14.jsp#afsn14.7.7'>14.7.7  Opgaver  </a>222  <br>
  <a href='kapitel14.jsp#afsn14.8'>14.8  Transaktioner  </a>223  <br>
  <a href='kapitel14.jsp#afsn14.8.1'>14.8.1  JTS (Java Transaction Service)  </a>223  <br>
  <a href='kapitel14.jsp#afsn14.8.2'>14.8.2  Transaktioner i JDBC (resum&eacute;)  </a>223  <br>
  <a href='kapitel14.jsp#afsn14.8.3'>14.8.3  Transaktioner i en EJB-container  </a>223  <br>
  <a href='kapitel14.jsp#afsn14.8.4'>14.8.4  Deklarativ transaktionsstyring af metodekald  </a>224  <br>
  Anden&nbsp;del:  Videreg&aring;ende objektorienteret programmering  <br>
<a href='kapitel15.jsp#afsn15'>15  Videreg&aring;ende OOP  </a>227  <br>
  <a href='kapitel15.jsp#afsn15.1'>15.1  Arv  </a>228  <br>
  <a href='kapitel15.jsp#afsn15.1.1'>15.1.1  Holdninger til arv  </a>228  <br>
  <a href='kapitel15.jsp#afsn15.1.2'>15.1.2  Modstrid mellem holdningerne  </a>228  <br>
  <a href='kapitel15.jsp#afsn15.1.3'>15.1.3  &Oslash;velse  </a>231  <br>
  <a href='kapitel15.jsp#afsn15.1.4'>15.1.4  Nedarvinger, hvor funktionaliteten ikke udvides, men begr&aelig;nses  </a>231  <br>
  <a href='kapitel15.jsp#afsn15.2'>15.2  Delegering (i stedet for arv)  </a>232  <br>
  <a href='kapitel15.jsp#afsn15.2.1'>15.2.1  At skjule nogle metoder  </a>232  <br>
  <a href='kapitel15.jsp#afsn15.2.2'>15.2.2  Modellering af roller  </a>234  <br>
  <a href='kapitel15.jsp#afsn15.2.3'>15.2.3  Resum&eacute; og konklusion  </a>236  <br>
  <a href='kapitel15.jsp#afsn15.3'>15.3  Specific&eacute;r funktionalitet i et interface  </a>236  <br>
  <a href='kapitel15.jsp#afsn15.3.1'>15.3.1  Repetition af interfaces  </a>236  <br>
  <a href='kapitel15.jsp#afsn15.3.2'>15.3.2  Eksempel: Stak  </a>237  <br>
  <a href='kapitel15.jsp#afsn15.3.3'>15.3.3  Eksempel: Collections-klasserne  </a>238  <br>
  <a href='kapitel15.jsp#afsn15.4'>15.4  Konstanterkl&aelig;ringer i et interface  </a>239  <br>
  <a href='kapitel15.jsp#afsn15.5'>15.5  Markeringsinterface  </a>239  <br>
  <a href='kapitel15.jsp#afsn15.6'>15.6  Ansvarsomr&aring;der  </a>240  <br>
  <a href='kapitel15.jsp#afsn15.6.1'>15.6.1  Eksempel p&aring; tildeling af ansvarsomr&aring;der  </a>240  <br>
  <a href='kapitel15.jsp#afsn15.6.2'>15.6.2  Ekspert  </a>242  <br>
  <a href='kapitel15.jsp#afsn15.6.3'>15.6.3  Skaber  </a>242  <br>
  <a href='kapitel15.jsp#afsn15.7'>15.7  Lav kobling og h&oslash;j koh&aelig;sion  </a>243  <br>
  <a href='kapitel15.jsp#afsn15.7.1'>15.7.1  Lav kobling  </a>243  <br>
  <a href='kapitel15.jsp#afsn15.7.2'>15.7.2  H&oslash;j koh&aelig;sion  </a>243  <br>
  <a href='kapitel15.jsp#afsn15.7.3'>15.7.3  Indkapsling  </a>244  <br>
  <a href='kapitel15.jsp#afsn15.7.4'>15.7.4  Indkapsling og pakker  </a>244  <br>
  <a href='kapitel15.jsp#afsn15.8'>15.8  GRASP  </a>245  <br>
  <a href='kapitel15.jsp#afsn15.9'>15.9  Introduktion til designm&oslash;nstre  </a>245  <br>
  <a href='kapitel15.jsp#afsn15.9.1'>15.9.1  Designm&oslash;nstre ber&oslash;rt i de f&oslash;lgende kapitler  </a>245  <br>
<a href='kapitel16.jsp#afsn16'>16  Skabende designm&oslash;nstre  </a>247  <br>
  <a href='kapitel16.jsp#afsn16.1'>16.1  Overordnet id&eacute;  </a>248  <br>
  <a href='kapitel16.jsp#afsn16.1.1'>16.1.1  Fabrikeringsmetoder  </a>248  <br>
  <a href='kapitel16.jsp#afsn16.2'>16.2  Fabrik  </a>249  <br>
  <a href='kapitel16.jsp#afsn16.2.1'>16.2.1  Eksempel: Image  </a>249  <br>
  <a href='kapitel16.jsp#afsn16.3'>16.3  Singleton  </a>250  <br>
  <a href='kapitel16.jsp#afsn16.3.1'>16.3.1  Eksempel: java.lang.Runtime  </a>250  <br>
  <a href='kapitel16.jsp#afsn16.3.2'>16.3.2  Eksempel: java.awt.Toolkit  </a>250  <br>
  <a href='kapitel16.jsp#afsn16.3.3'>16.3.3  Eksempel: Dataforbindelse  </a>251  <br>
  <a href='kapitel16.jsp#afsn16.3.4'>16.3.4  Singleton med sen initialisering  </a>252  <br>
  <a href='kapitel16.jsp#afsn16.3.5'>16.3.5  Singleton uden privat konstrukt&oslash;r  </a>253  <br>
  <a href='kapitel16.jsp#afsn16.4'>16.4  Abstrakt Fabrik  </a>254  <br>
  <a href='kapitel16.jsp#afsn16.4.1'>16.4.1  Eksempel: AdresseFabrik  </a>254  <br>
  <a href='kapitel16.jsp#afsn16.4.2'>16.4.2  Eksempel fra standardklasserne: AWT  </a>256  <br>
  <a href='kapitel16.jsp#afsn16.5'>16.5  Bygmester  </a>257  <br>
  <a href='kapitel16.jsp#afsn16.5.1'>16.5.1  Trinvis konstruktion  </a>257  <br>
  <a href='kapitel16.jsp#afsn16.5.2'>16.5.2  Eksempel p&aring; trinvis konstruktion: E-post  </a>258  <br>
  <a href='kapitel16.jsp#afsn16.5.3'>16.5.3  Eksempel p&aring; netv&aelig;rk af objekter: Funktioner  </a>258  <br>
  <a href='kapitel16.jsp#afsn16.6'>16.6  Prototype  </a>259  <br>
  <a href='kapitel16.jsp#afsn16.6.1'>16.6.1  Interfacet Cloneable  </a>259  <br>
  <a href='kapitel16.jsp#afsn16.6.2'>16.6.2  Overfladisk og dyb kopiering  </a>259  <br>
  <a href='kapitel16.jsp#afsn16.6.3'>16.6.3  Eksempel: Et tegneprogram  </a>260  <br>
  <a href='kapitel16.jsp#afsn16.7'>16.7  Objektpulje  </a>262  <br>
  <a href='kapitel16.jsp#afsn16.7.1'>16.7.1  Eksempel: Begr&aelig;nsede resurser  </a>262  <br>
  <a href='kapitel16.jsp#afsn16.7.2'>16.7.2  Variation: Klient 'h&aelig;nger', hvis puljen l&oslash;ber t&oslash;r  </a>263  <br>
  <a href='kapitel16.jsp#afsn16.7.3'>16.7.3  Genbrug af tr&aring;de  </a>264  <br>
  <a href='kapitel16.jsp#afsn16.7.4'>16.7.4  Opgave: Objektpulje med objektfabrik  </a>265  <br>
  <a href='kapitel16.jsp#afsn16.8'>16.8  St&oslash;rre eksempel: Dataforbindelse  </a>266  <br>
  <a href='kapitel16.jsp#afsn16.8.1'>16.8.1  Specialiseringer af Dataforbindelse  </a>267  <br>
  <a href='kapitel16.jsp#afsn16.8.2'>16.8.2  Dataforbindelse over netv&aelig;rk  </a>269  <br>
  <a href='kapitel16.jsp#afsn16.8.3'>16.8.3  Dataforbindelse, der cacher foresp&oslash;rgsler  </a>271  <br>
  <a href='kapitel16.jsp#afsn16.8.4'>16.8.4  Endelig udgave af Dataforbindelse  </a>272  <br>
  <a href='kapitel17.jsp#afsn17'>17 Hyppigt  anvendte designm&oslash;nstre  </a>273  <br>
  <a href='kapitel17.jsp#afsn17.1'>17.1  Proxy  </a>274  <br>
  <a href='kapitel17.jsp#afsn17.1.1'>17.1.1  Simpelt eksempel: En stak, der logger kaldene  </a>274  <br>
  <a href='kapitel17.jsp#afsn17.1.2'>17.1.2  Variationer af designm&oslash;nstret Proxy  </a>275  <br>
  <a href='kapitel17.jsp#afsn17.1.3'>17.1.3  Eksempel: G&oslash;re data uforanderlige vha. Proxy  </a>276  <br>
  <a href='kapitel17.jsp#afsn17.1.4'>17.1.4  Doven Initialisering/Virtuel Proxy  </a>277  <br>
  <a href='kapitel17.jsp#afsn17.1.5'>17.1.5  Eksempel p&aring; Virtuel Proxy: En stak der f&oslash;rst oprettes,  n&aring;r den skal bruges  </a>277  <br>
  <a href='kapitel17.jsp#afsn17.2'>17.2  Adapter  </a>278  <br>
  <a href='kapitel17.jsp#afsn17.2.1'>17.2.1  Simpelt eksempel  </a>278  <br>
  <a href='kapitel17.jsp#afsn17.2.2'>17.2.2  Anonyme klasser som adaptere  </a>279  <br>
  <a href='kapitel17.jsp#afsn17.2.3'>17.2.3  Anonyme adaptere til at lytte efter h&aelig;ndelser  </a>280  <br>
  <a href='kapitel17.jsp#afsn17.2.4'>17.2.4  Eksempel: F&aring; data til at passe ind i en JTable  </a>281  <br>
  <a href='kapitel17.jsp#afsn17.2.5'>17.2.5  Ikke-eksempel: Adapter-klasserne  </a>282  <br>
  <a href='kapitel17.jsp#afsn17.3'>17.3  Iterator  </a>283  <br>
  <a href='kapitel17.jsp#afsn17.3.1'>17.3.1  Iteratorer i Collections-klasserne  </a>283  <br>
  <a href='kapitel17.jsp#afsn17.3.2'>17.3.2  Definere sin egen form for iterator  </a>284  <br>
  <a href='kapitel17.jsp#afsn17.3.3'>17.3.3  Iteratorer i JDBC  </a>284  <br>
  <a href='kapitel17.jsp#afsn17.3.4'>17.3.4  Iterator til at genneml&oslash;be geometriske figurer  </a>285  <br>
  <a href='kapitel17.jsp#afsn17.4'>17.4  Facade  </a>286  <br>
  <a href='kapitel17.jsp#afsn17.4.1'>17.4.1  Eksempel: URL  </a>286  <br>
  <a href='kapitel17.jsp#afsn17.4.2'>17.4.2  Eksempel: Socket og ServerSocket  </a>286  <br>
  <a href='kapitel17.jsp#afsn17.5'>17.5  Observat&oslash;r/Lytter  </a>287  <br>
  <a href='kapitel17.jsp#afsn17.5.1'>17.5.1  Eksempel: H&aelig;ndelser  </a>287  <br>
  <a href='kapitel17.jsp#afsn17.5.2'>17.5.2  Eksempel: Kalender  </a>288  <br>
  <a href='kapitel17.jsp#afsn17.6'>17.6  Dynamisk Binding  </a>289  <br>
  <a href='kapitel17.jsp#afsn17.6.1'>17.6.1  JDBC og Dynamisk Binding  </a>290  <br>
  <a href='kapitel17.jsp#afsn17.6.2'>17.6.2  Eksempel: Fortolkning af matematikfunktioner  </a>292  <br>
  <a href='kapitel17.jsp#afsn17.7'>17.7  Opgaver  </a>293  <br>
  <a href='kapitel17.jsp#afsn17.8'>17.8  L&oslash;sninger  </a>294  <br>
  <a href='kapitel17.jsp#afsn17.8.1'>17.8.1  Dataforbindelseslogger  </a>294  <br>
  <a href='kapitel17.jsp#afsn17.8.2'>17.8.2  Designm&oslash;nstre i JDBC  </a>294  <br>
<a href='kapitel18.jsp#afsn18'>18  Andre designm&oslash;nstre  </a>295  <br>
  <a href='kapitel18.jsp#afsn18.1'>18.1  Uforanderligt objekt (Immutable)  </a>296  <br>
  <a href='kapitel18.jsp#afsn18.1.1'>18.1.1  Uforanderlige objekter i standardbiblioteket  </a>296  <br>
  <a href='kapitel18.jsp#afsn18.1.2'>18.1.2  Eksempel - en uforanderlig punkt-klasse  </a>297  <br>
  <a href='kapitel18.jsp#afsn18.1.3'>18.1.3  Opgave  </a>297  <br>
  <a href='kapitel18.jsp#afsn18.2'>18.2  Fluev&aelig;gt  </a>298  <br>
  <a href='kapitel18.jsp#afsn18.2.1'>18.2.1  Eksempel: Strenge  </a>298  <br>
  <a href='kapitel18.jsp#afsn18.2.2'>18.2.2  Eksempel: Dele UforanderligtPunkt-objekter  </a>299    <br>
  <a href='kapitel18.jsp#afsn18.3'>18.3  Filter  </a>300  <br>
  <a href='kapitel18.jsp#afsn18.3.1'>18.3.1  Eksempel: Kunde-filtre  </a>300  <br>
  <a href='kapitel18.jsp#afsn18.3.2'>18.3.2  Eksempel: Streng-filtre  </a>302  <br>
  <a href='kapitel18.jsp#afsn18.3.3'>18.3.3  Opgave  </a>304  <br>
  <a href='kapitel18.jsp#afsn18.3.4'>18.3.4  Eksempel: Output- og InputStream-klasserne  </a>304  <br>
  <a href='kapitel18.jsp#afsn18.3.5'>18.3.5  Avanceret: L&aelig;se vs. skrive data  </a>306  <br>
  <a href='kapitel18.jsp#afsn18.4'>18.4  Lagdelt Initialisering  </a>307  <br>
  <a href='kapitel18.jsp#afsn18.4.1'>18.4.1  Simpelt eksempel  </a>307  <br>
  <a href='kapitel18.jsp#afsn18.4.2'>18.4.2  Lagdelt initialisering vs. fabrikeringsmetode  </a>307  <br>
  <a href='kapitel18.jsp#afsn18.4.3'>18.4.3  Eksempel: URL-klassen  </a>308  <br>
  <a href='kapitel18.jsp#afsn18.4.4'>18.4.4  Avanceret lagdelt initialisering  </a>308  <br>
  <a href='kapitel18.jsp#afsn18.4.5'>18.4.5  Avanceret lagdelt initialisering og dynamisk binding i  URL-klassen  </a>308  <br>
  <a href='kapitel18.jsp#afsn18.5'>18.5  Komposit/Rekursiv komposition  </a>309  <br>
  <a href='kapitel18.jsp#afsn18.5.1'>18.5.1  Analogi til byggeindustrien  </a>309  <br>
  <a href='kapitel18.jsp#afsn18.5.2'>18.5.2  Eksempel: Component/Container  </a>312  <br>
  <a href='kapitel18.jsp#afsn18.5.3'>18.5.3  Eksempel: Funktioner  </a>313  <br>
  <a href='kapitel18.jsp#afsn18.6'>18.6  Kommando  </a>314  <br>
  <a href='kapitel18.jsp#afsn18.6.1'>18.6.1  Eksempel  </a>314  <br>
  <a href='kapitel18.jsp#afsn18.6.2'>18.6.2  Avanceret: Variationer af designm&oslash;nstret  </a>316  <br>
  <a href='kapitel18.jsp#afsn18.6.3'>18.6.3  Opgaver  </a>316  <br>
  <a href='kapitel18.jsp#afsn18.7'>18.7  Opgave: Designm&oslash;nstre i standardbibliotekerne  </a>317  <br>
  <a href='kapitel18.jsp#afsn18.7.1'>18.7.1  L&oslash;sning: Designm&oslash;nstre i standardbiblioteket  </a>318  <br>
<a href='kapitel19.jsp#afsn19'>19  Model-View-Controller-arkitekturen  </a>319  <br>
  <a href='kapitel19.jsp#afsn19.1'>19.1  De tre dele af MVC  </a>320  <br>
  <a href='kapitel19.jsp#afsn19.1.1'>19.1.1  Modellen  </a>320  <br>
  <a href='kapitel19.jsp#afsn19.1.2'>19.1.2  Pr&aelig;sentationen  </a>320  <br>
  <a href='kapitel19.jsp#afsn19.1.3'>19.1.3  Kontrol-delen  </a>321  <br>
  <a href='kapitel19.jsp#afsn19.2'>19.2  Relationer mellem delene  </a>321  <br>
  <a href='kapitel19.jsp#afsn19.2.1'>19.2.1  Informationsstr&oslash;m gennem MVC  </a>321  <br>
  <a href='kapitel19.jsp#afsn19.2.2'>19.2.2  Opdatering af pr&aelig;sentationen - tre muligheder  </a>322  <br>
  <a href='kapitel19.jsp#afsn19.2.3'>19.2.3   A - Pr&aelig;sentationer unders&oslash;ger modellen  </a>322  <br>
  <a href='kapitel19.jsp#afsn19.2.4'>19.2.4   B - Kontroldel underretter pr&aelig;sentationer  </a>322  <br>
  <a href='kapitel19.jsp#afsn19.2.5'>19.2.5   C - Modellen underretter pr&aelig;sentationer  </a>323  <br>
  <a href='kapitel19.jsp#afsn19.3'>19.3  Eksempel - bankkonti  </a>323  <br>
  <a href='kapitel19.jsp#afsn19.3.1'>19.3.1  Modellen  </a>324  <br>
  <a href='kapitel19.jsp#afsn19.3.2'>19.3.2  Pr&aelig;sentationer  </a>325  <br>
  <a href='kapitel19.jsp#afsn19.3.3'>19.3.3  Kontroldel  </a>326  <br>
  <a href='kapitel19.jsp#afsn19.4'>19.4  Model-View - &quot;den lille MVC&quot;  </a>328  <br>
  <a href='kapitel19.jsp#afsn19.4.1'>19.4.1  Adskillelse af pr&aelig;sentation og programlogik  </a>328  <br>
  <a href='kapitel19.jsp#afsn19.5'>19.5  Opgaver  </a>328    <br>
  <a href='kapitel19.jsp#afsn19.5.1'>19.5.1  L&oslash;sning  </a>329  <br>
Stikordsregister  330
<hr>
<font size=-2>http://javabog.dk/ - <b></b> af Jacob Nordfalk.
<br>
  Licens og kopiering under <a href='http://www.linuxbog.dk/licens.html'>&Aring;ben Dokumentlicens</a> (&Aring;DL)
  hvor intet andet er nævnt (71% af værket).
</font>
<br>
Ønsker du at se de sidste 29% af dette værk (362838 tegn)
skal du købe bogen. Så får du pæne figurer og layout, stikordsregister og en trykt bog med i købet.
<!-- netlæser: Wget/1.10, autoHent: true  -->
     

</body>
</html>
