==== Linux - Friheden til at programmere i Java ==== === Version 0.7.20040516 - 2020-12-31 === == Christian Damsgaard == == Jakob Nordfalk == == Jonas Kongslund == == og mange andre == Ophavsret © 2001-2005 Forfatterne som har ophavsret til bogen, men udgiver den under "Åben dokumentlicens (ÅDL) - version 1.0". Bogen er nu nogenlunde klar - der mangler dog en del korrekturlæsning mht. struktur. ---- **Indholdsfortegnelse** [[java:javaforord|Forord]]1.[[java:javaforord#javaforordet|Forord]]2.[[java:java-linuxbog-serien|Linux-bøgerne]]3.[[java:java-ophavsret|Ophavsret]]4.[[java:java-omos|Om forfatterne og bogens historie]]5.[[java:java-tak|Vi siger tak for hjælpen]]6.[[java:java-typografi|Typografi]]1.[[java:java-indledning|Indledning]]1.1.[[java:java-indledning#java-indledningen|Målgrupper]]1.2.[[java:x169|Om bogens kilde - http://javabog.dk]]1.3.[[java:x183|Javas historie]]1.4.[[java:x251|Hvad er en virtuel maskine]]1.5.[[java:java-intro-prg|Programmering]]1.5.1.[[java:java-intro-prg#java-intro-prg-os|Styresystemet]]1.5.2.[[java:java-intro-prg#java-intro-prg-hvorfor|Hvorfor lære at programmere?]]1.5.3.[[java:java-intro-prg#java-intro-prg-eksempel|Et simpelt program]]1.5.4.[[java:java-intro-prg#java-intro-prg-hvordan|Hvordan lærer man at programmere]]1.6.[[java:java-intro-prg-fordele-ulemper|Fordele og ulemper ved Java]]1.6.1.[[java:java-intro-prg-fordele-ulemper#java-intro-prg-fordele-ulemper-enkel|Enkelt]]1.6.2.[[java:java-intro-prg-fordele-ulemper#java-intro-prg-fordele-ulemper-obj|Objektorienteret]]1.6.3.[[java:java-intro-prg-fordele-ulemper#java-intro-prg-fordele-ulemper-platform|Platformuafhængigt]]1.6.4.[[java:java-intro-prg-fordele-ulemper#java-intro-prg-fordele-ulemper-net|Netværksorienteret]]1.6.5.[[java:java-intro-prg-fordele-ulemper#java-intro-prg-fordele-ulemper-fortolket|Fortolket]]1.6.6.[[java:java-intro-prg-fordele-ulemper#java-intro-prg-fordele-ulemper-ydelse|Højtydende]]1.6.7.[[java:java-intro-prg-fordele-ulemper#java-intro-prg-fordele-ulemper-traade|Flertrådet]]1.6.8.[[java:java-intro-prg-fordele-ulemper#java-intro-prg-fordele-ulemper-robust|Robust]]1.6.9.[[java:java-intro-prg-fordele-ulemper#java-intro-prg-fordele-ulemper-sikkerhed|Sikkert]]1.6.10.[[java:java-intro-prg-fordele-ulemper#java-intro-prg-fordele-ulemper-dynamik|Dynamisk]]1.6.11.[[java:java-intro-prg-fordele-ulemper#java-intro-prg-fordele-ulemper-opbakning|Stor opbakning]]1.6.12.[[java:java-intro-prg-fordele-ulemper#java-intro-prg-fordele-ulemper-minus|Svagheder ved Java]]2.[[java:java-dev-env|Udviklingsmiljø]]2.1.[[java:java-dev-env#java-dev-env-indledning|Indledning]]2.2.[[java:java-dev-env-ide|Integrerede udviklingsmiljøer]]2.2.1.[[java:java-dev-env-ide#java-dev-env-ide-jdk|Sun JDK]]2.2.2.[[java:java-dev-env-ide#java-dev-env-ide-jbuilder|Borland JBuilder]]2.2.3.[[java:java-dev-env-ide#java-dev-env-ide-jdeveloper|Oracle JDeveloper]]2.2.4.[[java:java-dev-env-ide#java-dev-env-ide-forte|Sun Forte for Java]]2.2.5.[[java:java-dev-env-ide#java-dev-env-ide-visualage|IBM VisualAge for Java]]2.2.6.[[java:java-dev-env-ide#java-dev-env-ide-other|Andre]]2.3.[[java:java-dev-env-configuration|Opsætningsstyring]]2.3.1.[[java:java-dev-env-configuration#java-dev-env-configuration-ant|Ant]]2.4.[[java:java-dev-env-debugging|Debugging]]2.5.[[java:java-dev-env-logging|Logning]]2.6.[[java:java-dev-env-profiling|Profilering]]2.7.[[java:java-dev-env-doc|Dokumentation]]2.7.1.[[java:java-dev-env-doc#java-dev-env-doc-javadoc|Javadoc]]2.8.[[java:java-dev-env-version-control|Versionsstyring]]2.9.[[java:java-dev-env-test|Test]]2.9.1.[[java:java-dev-env-test#java-dev-env-test-junit|JUnit]]3.[[java:java-basal-prg|Basal programmering]]3.1.[[java:java-basal-prg#java-basal-prg-foerste|Det første javaprogram]]3.1.1.[[java:java-basal-prg#java-basal-prg-foerste-kommentar|Kommentarer]]3.1.2.[[java:java-basal-prg#java-basal-prg-foerste-klassedef|Klassedefinitionen]]3.1.3.[[java:java-basal-prg#java-basal-prg-foerste-oversaettelse|Oversættelse og kørsel af programmet]]3.2.[[java:java-basal-prg-variable|Variable]]3.2.1.[[java:java-basal-prg-variable#java-basal-prg-variable-int|Heltal]]3.2.2.[[java:java-basal-prg-variable#java-basal-prg-variable-sammensaet|Sammensætte strenge med +]]3.2.3.[[java:java-basal-prg-variable#java-basal-prg-variable-udtryk|Beregningsudtryk]]3.2.4.[[java:java-basal-prg-variable#java-basal-prg-variable-float|Kommatal]]3.2.5.[[java:java-basal-prg-variable#java-basal-prg-variable-matematik|Matematiske funktioner]]3.2.6.[[java:java-basal-prg-variable#java-basal-prg-variable-metodekald|Kald af metoder]]3.2.7.[[java:java-basal-prg-variable#java-basal-prg-variable-logiske|Logiske variable]]3.2.8.[[java:java-basal-prg-variable#java-basal-prg-variable-opgaver|Opgaver]]3.3.[[java:java-basal-prg-betinget|Betinget udførelse]]3.3.1.[[java:java-basal-prg-betinget#java-basal-prg-betinget-if-else|if-else]]3.3.2.[[java:java-basal-prg-betinget#java-basal-prg-betinget-opgaver|Opgaver]]3.4.[[java:java-basal-prg-blok|Blokke]]3.4.1.[[java:java-basal-prg-blok#java-basal-prg-blok-indrykning|Indrykning]]3.5.[[java:java-basal-prg-loekke|Løkker]]3.5.1.[[java:java-basal-prg-loekke#java-basal-prg-loekke-while|while-løkken]]3.5.2.[[java:java-basal-prg-loekke#java-basal-prg-loekke-for|for-løkken]]3.5.3.[[java:java-basal-prg-loekke#java-basal-prg-loekke-indlejrede|Indlejrede løkker]]3.5.4.[[java:java-basal-prg-loekke#java-basal-prg-loekke-uendelig|Uendelige løkker]]3.5.5.[[java:java-basal-prg-loekke#java-basal-prg-loekke-opgaver|Opgaver]]3.6.[[java:java-basal-prg-typekonv|Værditypekonvertering]]3.6.1.[[java:java-basal-prg-typekonv#java-basal-prg-typekonv-explicit|Eksplicit værdi-typekonvertering]]3.6.2.[[java:java-basal-prg-typekonv#java-basal-prg-typekonv-implicit|Implicit værdi-typekonvertering]]3.6.3.[[java:java-basal-prg-typekonv#java-basal-prg-typekonv-misconception|Misforståelser af værdi-typekonvertering]]3.7.[[java:java-basal-prg-fejl|Fejl]]3.7.1.[[java:java-basal-prg-fejl#java-basal-prg-fejl-logiske|Indholdsmæssige (logiske) fejl]]3.7.2.[[java:java-basal-prg-fejl#java-basal-prg-fejl-sproglige|Sproglige fejl]]3.7.3.[[java:java-basal-prg-fejl#java-basal-prg-fejl-koeretid|Køretidsfejl]]3.8.[[java:java-basal-prg-opgaver|Opgaver]]3.8.1.[[java:java-basal-prg-opgaver#java-basal-prg-opgaver-befordringsfradrag|Befordringsfradrag]]3.8.2.[[java:java-basal-prg-opgaver#java-basal-prg-opgaver-kurveprogram|Kurveprogram]]3.9.[[java:java-basal-prg-appendiks|Appendiks]]3.9.1.[[java:java-basal-prg-appendiks#java-basal-prg-appendiks-navneregler|Navngivningsregler]]3.9.2.[[java:java-basal-prg-appendiks#java-basal-prg-appendiks-simpletyper|De simple typer]]3.9.3.[[java:java-basal-prg-appendiks#java-basal-prg-appendiks-typekonv|Værditypekonvertering]]3.9.4.[[java:java-basal-prg-appendiks#java-basal-prg-appendiks-aritmetik|Aritmetiske operatorer]]3.9.5.[[java:java-basal-prg-appendiks#java-basal-prg-appendiks-logik|Regning med logiske udtryk]]3.9.6.[[java:java-basal-prg-appendiks#java-basal-prg-appendiks-sammenligning|Sammenligningsoperatorer]]3.9.7.[[java:java-basal-prg-appendiks#java-basal-prg-appendiks-programmeringsraad|Gode råd om programmering]]4.[[java:java-obj|Objekter]]4.1.[[java:java-obj#java-obj-klasser|Objekter og klasser]]4.2.[[java:java-obj-klasser-punkter|Punkter (klassen Point)]]4.2.1.[[java:java-obj-klasser-punkter#java-obj-klasser-def-opr|Erklæring og oprettelse]]4.2.2.[[java:java-obj-klasser-punkter#java-obj-klasser-var|Objektvariable]]4.2.3.[[java:java-obj-klasser-punkter#java-obj-klasser-met|Metodekald]]4.2.4.[[java:java-obj-klasser-punkter#java-obj-klasser-eks|Eksempel]]4.2.5.[[java:java-obj-klasser-punkter#java-obj-klasser-imp|Import af standardklasser]]4.3.[[java:java-obj-rekt|Rektangler (klassen Rectangle)]]4.3.1.[[java:java-obj-rekt#java-obj-rekt-konst|Konstruktører]]4.3.2.[[java:java-obj-rekt#java-obj-rekt-met|Metoder]]4.3.3.[[java:java-obj-rekt#java-obj-rekt-retur|Metoders returtype]]4.3.4.[[java:java-obj-rekt#java-obj-rekt-param|Metoders parametre]]4.4.[[java:java-obj-rekt-strenge|Tekststrenge (klassen String)]]4.4.1.[[java:java-obj-rekt-strenge#java-obj-rekt-strenge-imut|Strenge er uforanderlige]]4.4.2.[[java:java-obj-rekt-strenge#java-obj-rekt-ej-new|Man behøver ikke bruge new til String-objekter]]4.4.3.[[java:java-obj-rekt-strenge#java-obj-rekt-overload|Navnesammenfald for metoder]]4.4.4.[[java:java-obj-rekt-strenge#java-obj-rekt-concat|At sætte strenge sammen med +]]4.4.5.[[java:java-obj-rekt-strenge#java-obj-rekt-samlign|Sammenligning]]4.4.6.[[java:java-obj-rekt-strenge#java-obj-rekt-opg|Opgaver]]4.5.[[java:java-obj-rekt-vector|Lister (klassen Vector)]]4.5.1.[[java:java-obj-rekt-vector#java-obj-rekt-point|Eksempel med Point]]4.6.[[java:java-obj-eksempel|Ekstra eksempler]]4.6.1.[[java:java-obj-eksempel#java-obj-eksempel-vector|Blanding af kort med Vector]]4.6.2.[[java:java-obj-eksempel#java-obj-eksempel-date|Datoer (klassen Date)]]4.6.3.[[java:java-obj-eksempel#java-obj-eksempel-opg|Opgaver]]4.7.[[java:java-obj-apppendix|Appendiks]]4.7.1.[[java:java-obj-apppendix#java-obj-appendix-point|Point]]4.7.2.[[java:java-obj-apppendix#java-obj-appendix-rectangle|Rectangle]]4.7.3.[[java:java-obj-apppendix#java-obj-appendix-string|String]]4.7.4.[[java:java-obj-apppendix#java-obj-appendix-spec-tegn|Specialtegn i strenge]]5.[[java:java-klasser|Definition af klasser]]5.1.[[java:java-klasser#java-klasser-boks|En Boks-klasse]]5.1.1.[[java:java-klasser#java-klasser-boks-var|Variabler]]5.1.2.[[java:java-klasser#java-klasser-boks-brug|Brug af klassen]]5.1.3.[[java:java-klasser#java-klasser-boks-met-def|Metodedefinition]]5.1.4.[[java:java-klasser#java-klasser-boks-flere-obj|Flere objekter]]5.2.[[java:java-klasser-indkap|Indkapsling]]5.3.[[java:java-klasser-konst|Konstruktører]]5.3.1.[[java:java-klasser-konst#java-klasser-konst-std|Standardkonstruktører]]5.3.2.[[java:java-klasser-konst#java-klasser-konst-opg|Opgaver]]5.4.[[java:java-klasser-dice|En Terning-klasse]]5.4.1.[[java:java-klasser-dice#java-klasser-dice-opg|Opgaver]]5.5.[[java:java-klasser-rela|Relationer mellem objekter]]5.5.1.[[java:java-klasser-rela#java-klasser-rela-rafle|En Raflebæger-klasse]]5.5.2.[[java:java-klasser-rela#java-klasser-rela-opg|Opgaver]]5.6.[[java:java-klasser-this|Nøgleordet this]]5.7.[[java:java-klasser-eks|Ekstra eksempler]]5.7.1.[[java:java-klasser-eks#java-klasser-eks-n-dice|En n-sidet terning]]5.7.2.[[java:java-klasser-eks#java-klasser-eks-pers|Personer]]5.7.3.[[java:java-klasser-eks#java-klasser-eks-bank|Bankkonti]]5.8.[[java:java-klasser-opg|Opgaver]]5.8.1.[[java:java-klasser-opg#java-klasser-opg-fejl|Fejlfinding]]6.[[java:java-arv|Nedarvning]]6.1.[[java:java-arv#java-arv-udb|At udbygge eksisterende klasser]]6.1.1.[[java:java-arv#java-arv-udb-fake-dice|Eksempel: En falsk terning]]6.1.2.[[java:java-arv#java-arv-udb-extra|At udbygge med flere metoder og variabler]]6.1.3.[[java:java-arv#java-arv-udb-super|Nøgleordet super]]6.2.[[java:java-arv-poly|Polymorfe variabler]]6.2.1.[[java:java-arv-poly#java-arv-poly-disp|Dispensation fra traditionel typesikkerhed]]6.2.2.[[java:java-arv-poly#java-arv-poly-poly|Polymorfi]]6.2.3.[[java:java-arv-poly#java-arv-poly-eks|Et eksempel på polymorfi: Brug af Raflebaeger]]6.2.4.[[java:java-arv-poly#java-arv-poly-polymorf|Hvilken vej er en variabel polymorf ?]]6.2.5.[[java:java-arv-poly#java-arv-poly-ref|Reference-typekonvertering]]6.3.[[java:java-arv-poly-ref-matador|Eksempel: Et matador-spil]]6.3.1.[[java:java-arv-poly-ref-matador#java-arv-poly-poly2|Polymorfi]]6.4.[[java:java-arv-stamklasse|Stamklassen Object]]6.4.1.[[java:java-arv-stamklasse#java-arv-stamklasse-ref|Referencer til objekter]]6.5.[[java:java-arv-stamklasse-subklasser|Konstruktører i underklasser]]6.6.[[java:java-arv-stamklasse-matador|Matadorspillet version 2]]6.7.[[java:java-arv-opg|Opgaver]]7.[[java:java-pakker|Pakker]]7.1.[[java:java-pakker#java-pakker-import|At importere klassedefinitioner]]7.2.[[java:java-pakker-standard|Standardpakkerne]]7.2.1.[[java:java-pakker-standard#java-pakker-standard-lang|Pakken java.lang]]7.3.[[java:java-pakker-filsys|Placering på filsystemet]]7.4.[[java:java-pakker-egne|At definere egne pakker]]7.4.1.[[java:java-pakker-egne#java-pakker-egne-eks|Eksempel på brugen af egne pakker]]7.4.2.[[java:java-pakker-egne#java-pakker-egne-navne|Navngive pakker]]7.4.3.[[java:java-pakker-egne#java-pakker-egne-jar|Pakke klasser i JAR-filer (Java-arkiver)]]7.5.[[java:java-pakker-opg|Opgaver]]8.[[java:java-lok-obj-klasse-var|Lokale, objekt- og klassevariable]]8.1.[[java:java-lok-obj-klasse-var#java-lok-obj-klasse-var-eksempel|Eksempler i standardpakkerne]]8.1.1.[[java:java-lok-obj-klasse-var#java-lok-obj-klasse-var-eksempel-kv|Klassevariable]]8.1.2.[[java:java-lok-obj-klasse-var#java-lok-obj-klasse-var-eksempel-km|Klassemetoder]]8.2.[[java:java-lok-obj-klasse-var-lvogp|Lokale variabler og parametre]]8.2.1.[[java:java-lok-obj-klasse-var-lvogp#java-lok-obj-klasse-var-lvogp-pv|Parametervariable]]8.2.2.[[java:java-lok-obj-klasse-var-lvogp#java-lok-obj-klasse-var-lvogp-rekusion|Rekursion]]9.[[java:java-arrays|Arrays]]9.1.[[java:java-arrays#java-arrays-erkl|Erklæring og brug]]9.1.1.[[java:java-arrays#java-arrays-erkl-eks|Eksempel: Statistik]]9.2.[[java:java-arrays-main|Main-metoden]]9.3.[[java:java-arrays-start-values|Arrays med startværdier]]9.4.[[java:java-arrays-gennemloeb|Gennemløb og manipulering]]9.5.[[java:java-arrays-objekter|Array af objekter]]9.5.1.[[java:java-arrays-objekter#java-arrays-objekter-polymorfi|Polymorfi]]9.6.[[java:java-arrays-vs-vector|Arrays versus vektorer]]9.7.[[java:java-arrays-opg|Opgaver]]10.[[java:java-applet|Appletter og grafik]]10.1.[[java:java-applet#java-applet-html-dok|HTML-dokumentet]]10.2.[[java:java-applet-java-koden|Javakoden]]10.2.1.[[java:java-applet-java-koden#java-applet-java-koden-bruger-metoder|Metoder i appletter, som du kan kalde]]10.2.2.[[java:java-applet-java-koden#java-applet-java-koden-system-metoder-|Metoder i appletter, som systemet kalder]]10.2.3.[[java:java-applet-java-koden#java-applet-java-koden-eksempel|Eksempel]]10.3.[[java:java-applet-opgaver|Opgaver]]10.4.[[java:java-applet-appendix|Appendiks]]10.4.1.[[java:java-applet-appendix#java-applet-appendix-bruger-metoder|Metoder i appletter, som du kan kalde]]10.4.2.[[java:java-applet-appendix#java-applet-appendix-system-metoder|Metoder, som systemet kalder]]10.4.3.[[java:java-applet-appendix#java-applet-appendix-graphics|Klassen Graphics]]11.[[java:java-gui|Grafiske brugergrænseflader]]11.1.[[java:java-gui#java-gui-gen-tool|Generering med et værktøj]]11.1.1.[[java:java-gui#java-gui-gen-tool-inter-prg|Interaktive programmer]]11.2.[[java:java-gui-komp|Komponenter]]11.2.1.[[java:java-gui-komp#java-gui-komp-button|Button]]11.2.2.[[java:java-gui-komp#java-gui-komp-checkbox|Checkbox]]11.2.3.[[java:java-gui-komp#java-gui-komp-choice|Choice]]11.2.4.[[java:java-gui-komp#java-gui-komp-textfield|TextField]]11.2.5.[[java:java-gui-komp#java-gui-komp-textarea|TextArea]]11.2.6.[[java:java-gui-komp#java-gui-komp-label|Label]]11.2.7.[[java:java-gui-komp#java-gui-komp-list|List]]11.2.8.[[java:java-gui-komp#java-gui-komp-canvas|Canvas]]11.3.[[java:java-gui-eksempel|Eksempel]]11.4.[[java:java-gui-containere|Containere]]11.4.1.[[java:java-gui-containere#java-gui-containere-panel|Panel]]11.4.2.[[java:java-gui-containere#java-gui-containere-panel-applet|Applet]]11.4.3.[[java:java-gui-containere#java-gui-containere-panel-window|Window]]11.4.4.[[java:java-gui-containere#java-gui-containere-panel-frame|Frame]]11.4.5.[[java:java-gui-containere#java-gui-containere-panel-dialog|Dialog]]11.5.[[java:java-gui-klasse-relationer|Relationer mellem klasserne]]11.6.[[java:java-gui-klasse-relationer-layout-managers|Layout-managere]]11.6.1.[[java:java-gui-klasse-relationer-layout-managers#java-gui-klasse-relationer-flowlayout|FlowLayout]]11.6.2.[[java:java-gui-klasse-relationer-layout-managers#java-gui-klasse-relationer-borderlayout|BorderLayout]]11.6.3.[[java:java-gui-klasse-relationer-layout-managers#java-gui-klasse-relationer-gridbaglayout|GridBagLayout]]11.7.[[java:java-gui-klasse-relationer-matador|Opgave: Matadorspillet grafisk]]11.7.1.[[java:java-gui-klasse-relationer-matador#java-gui-klasse-relationer-matador-vink|Vink]]11.7.2.[[java:java-gui-klasse-relationer-matador#java-gui-klasse-relationer-matador-fvink|Flere vink]]12.[[java:java-interface|Interfaces - grænseflader til objekter]]12.1.[[java:java-interface#java-interface-definer|Definere et interface]]12.2.[[java:java-interface-implementer|Implementere et interface]]12.2.1.[[java:java-interface-implementer#java-interface-implementer-tegnbar|Variabler af type Tegnbar]]12.3.[[java:java-interface-eksempel|Eksempler med interfacet Tegnbar]]12.3.1.[[java:java-interface-eksempel#java-interface-eksempel-applet|En applet af Tegnbare objekter]]12.4.[[java:java-interface-polymorfi|Polymorfi]]12.5.[[java:java-interface-standard-bib|Interfaces i standardbibliotekerne]]12.5.1.[[java:java-interface-standard-bib#java-interface-standard-bib-sort-og-compare|Sortering med Comparable]]12.5.2.[[java:java-interface-standard-bib#java-interface-standard-bib-traade|Flere tråde med Runnable]]12.5.3.[[java:java-interface-standard-bib#java-interface-standard-bib-mouse-listener|Lytte til musen med MouseListener]]12.6.[[java:java-interface-opgaver|Opgaver]]13.[[java:java-events|Hændelser i grafiske brugergrænseflader]]13.1.[[java:java-events#java-events-eksempel-lyt-til-musen|Eksempel - LytTilMusen]]13.2.[[java:java-events-eksempel-linjetegning|Eksempel - Linjetegning]]13.2.1.[[java:java-events-eksempel-linjetegning#java-events-eksempel-linjetegning-klasse|Linjetegning i én klasse]]13.3.[[java:java-events-ekstra-eksempler|Ekstra eksempler]]13.3.1.[[java:java-events-ekstra-eksempler#java-events-ekstra-eksempler-lytte-til-mus|Lytte til musebevægelser]]13.3.2.[[java:java-events-ekstra-eksempler#java-events-ekstra-eksempel-lytte-til-knap|Lytte til en knap]]13.4.[[java:java-events-ekstra-eksempler-lyttere-metoder|Lyttere og deres metoder]]13.4.1.[[java:java-events-ekstra-eksempler-lyttere-metoder#java-events-ekstra-eks-lyttere-action|ActionListener]]13.4.2.[[java:java-events-ekstra-eksempler-lyttere-metoder#java-events-ekstra-eks-lyttere-comp|ComponentListener]]13.4.3.[[java:java-events-ekstra-eksempler-lyttere-metoder#java-events-ekstra-eks-lyttere-focus|FocusListener]]13.4.4.[[java:java-events-ekstra-eksempler-lyttere-metoder#java-events-ekstra-eks-lyttere-item|ItemListener]]13.4.5.[[java:java-events-ekstra-eksempler-lyttere-metoder#java-events-ekstra-eks-lyttere-key|KeyListener]]13.4.6.[[java:java-events-ekstra-eksempler-lyttere-metoder#java-events-ekstra-eks-lyttere-mouse|MouseListener]]13.4.7.[[java:java-events-ekstra-eksempler-lyttere-metoder#java-events-ekstra-eks-lyttere-mouse-motion|MouseMotionListener]]13.4.8.[[java:java-events-ekstra-eksempler-lyttere-metoder#java-events-ekstra-eks-lyttere--text|TextListener]]13.4.9.[[java:java-events-ekstra-eksempler-lyttere-metoder#java-events-ekstra-eks-lyttere-window|WindowListener]]14.[[java:java-exception|Undtagelser og køretidsfejl]]14.1.[[java:java-exception#java-exception-almindelige|Almindelige undtagelser]]14.2.[[java:java-exception-fangst|At fange og håndtere undtagelser]]14.2.1.[[java:java-exception-fangst#java-exception-fangst-stakspor|Undtagelsesobjekter og deres stakspor]]14.3.[[java:java-exception-tvungen|Undtagelser med tvungen håndtering]]14.3.1.[[java:java-exception-tvungen#java-exception-tvungen-kast|Fange undtagelser eller sende dem videre]]14.3.2.[[java:java-exception-tvungen#java-exception-tvungen-konsekvens|Konsekvenser af at sende undtagelser videre]]14.4.[[java:java-exception-praesis-haandtering|Præcis håndtering af undtagelser]]14.5.[[java:java-exception-flere-slags-undtagelser|At fange flere slags undtagelser]]14.6.[[java:java-exception-opgaver|Opgaver]]15.[[java:java-io|Datastrømme og filhåndtering]]15.1.[[java:java-io#java-io-skrive-tekstfiler|Skrive til en tekstfil]]15.2.[[java:java-io-laese-tekstfil|Læse fra en tekstfil]]15.3.[[java:java-io-tastatur-laese|Indlæsning fra tastatur]]15.4.[[java:java-io-txt-analyse|Analysering af tekstdata]]15.4.1.[[java:java-io-txt-analyse#java-io-txt-analyse-tokenizer|Opdele inddata (StringTokenizer)]]15.4.2.[[java:java-io-txt-analyse#java-io-txt-analyse-tal-konvertering|Konvertere til tal]]15.4.3.[[java:java-io-txt-analyse#java-io-txt-analyse-formatering|DecimalFormat og DateFormat-klasserne]]15.4.4.[[java:java-io-txt-analyse#java-io-txt-analyse-statistik|Samlet eksempel: Statistik]]15.5.[[java:java-io-txt-analyse-appendix|Appendiks]]15.5.1.[[java:java-io-txt-analyse-appendix#java-io-txt-analyse-navngivning|Navngivning]]15.5.2.[[java:java-io-txt-analyse-appendix#java-io-txt-analyze-binaere-data|Binære data ( -OutputStream og -InputStream)]]15.5.3.[[java:java-io-txt-analyse-appendix#java-io-txt-analyze-reader-writers|Tekstdata ( -Writer og -Reader)]]15.5.4.[[java:java-io-txt-analyse-appendix#java-io-txt-analyse-read-write|Fillæsning og -skrivning (File- )]]15.5.5.[[java:java-io-txt-analyse-appendix#java-io-txt-analyse-strenge|Strenge (String- )]]15.5.6.[[java:java-io-txt-analyse-appendix#java-io-txt-analyse-arrays|Arrays (ByteArray- og CharArray- )]]15.5.7.[[java:java-io-txt-analyse-appendix#java-io-txt-analyse-read-write-objects|Læse/skrive objekter (Object- )]]15.5.8.[[java:java-io-txt-analyse-appendix#java-io-txt-analyse-dataopsamling|Dataopsamling (Buffered- )]]15.5.9.[[java:java-io-txt-analyse-appendix#java-io-txt-analyse-binaer-til-tegn|Gå fra binære til tegnbaserede datastrømme]]15.5.10.[[java:java-io-txt-analyse-appendix#java-io-txt-analyze-filtre|Filtreringsklasser til konvertering og databehandling]]15.6.[[java:java-io-ekstra-eksempler|Ekstra eksempler]]15.7.[[java:java-io-opgaver|Opgaver]]16.[[java:java-net|Netværkskommunikation]]16.1.[[java:java-net#java-net-forbindelse-til-port|At forbinde sig til en port]]16.2.[[java:java-net-lytte-paa-port|At lytte på en port]]16.3.[[java:java-net-opgaver|Opgaver]]17.[[java:java-traade|Flertrådet programmering]]17.1.[[java:java-traade#java-traade-princip|Princip]]17.1.1.[[java:java-traade#java-traade-princip-eksempel|Eksempel]]17.2.[[java:java-traade-ekstra-eksempler|Ekstra eksempler]]17.2.1.[[java:java-traade-ekstra-eksempler#java-traade-ekstra-eksempler-webserver|En flertrådet webserver]]17.2.2.[[java:java-traade-ekstra-eksempler#java-traade-ekstra-eksempler-applet|En flertrådet applet med bolde]]17.3.[[java:java-traade-opgaver|Opgaver]]18.[[java:java-serialisering|Serialisering af objekter]]18.1.[[java:java-serialisering#java-serialisering-gemme-hente-objekter|Hente og gemme objekter]]18.2.[[java:java-serialisering-egne-klasser|Serialisering af egne klasser]]18.2.1.[[java:java-serialisering-egne-klasser#java-serialisering-egne-klasser-interface|Interfacet Serializable]]18.2.2.[[java:java-serialisering-egne-klasser#java-serialisering-egne-klasser-transient|Nøgleordet transient]]18.2.3.[[java:java-serialisering-egne-klasser#java-serialisering-egne-klasser-eksempel|Eksempel]]18.3.[[java:java-serialisering-opgaver|Opgaver]]19.[[java:java-rmi|RMI - objekter over netværk]]19.1.[[java:java-rmi#java-rmi-principer|Principper]]19.2.[[java:java-rmi-konkret|Konkret]]19.2.1.[[java:java-rmi-konkret#java-rmi-konkret-serveren|På serversiden]]19.2.2.[[java:java-rmi-konkret#java-rmi-konkret-klient|På klientsiden]]20.[[java:java-jdbc|JDBC - databaseadgang]]20.1.[[java:java-jdbc#java-jdbc-forbindelse|Kontakt til databasen]]20.1.1.[[java:java-jdbc#java-jdbc-forbindelse-jdbc-odbc-bro|JDBC-ODBC-broen under Windows]]20.2.[[java:java-jdbc-kom-med-db|Kommunikere med databasen]]20.2.1.[[java:java-jdbc-kom-med-db#java-jdbc-kom-med-db-kommandoer|Kommandoer]]20.2.2.[[java:java-jdbc-kom-med-db#java-jdbc-kom-med-db-query|Forespørgsler]]20.3.[[java:java-jdbc-eksempel|Samlet eksempel]]20.4.[[java:java-jdbc-opgaver|Opgaver]]21.[[java:java-avancerede-klasser|Avancerede klasser]]21.1.[[java:java-avancerede-klasser#java-avancerede-klasser-adgang|public, protected og private]]21.1.1.[[java:java-avancerede-klasser#java-avancerede-klasser-tilgang-var-metode|Variabler og metoder]]21.1.2.[[java:java-avancerede-klasser#java-avancerede-klasser-tilgang-klasser|Klasser]]21.2.[[java:java-avancerede-klasser-final|Nøgleordet final]]21.2.1.[[java:java-avancerede-klasser-final#java-avancerede-klasser-final-variable|Variabler]]21.2.2.[[java:java-avancerede-klasser-final#java-avancerede-klasser-final-metoder|Metoder]]21.2.3.[[java:java-avancerede-klasser-final#java-avancerede-klasser-final-klasser|Klasser]]21.3.[[java:java-avancerede-klasser-abstract|Nøgleordet abstract]]21.3.1.[[java:java-avancerede-klasser-abstract#java-avancerede-klasser-abstract-klasser|Klasser]]21.3.2.[[java:java-avancerede-klasser-abstract#java-avancerede-klasser-final-metoder2|Metoder]]22.[[java:java-indre-klasser|Indre klasser]]22.1.[[java:java-indre-klasser#java-indre-klasser-normale|Almindelige indre klasser]]22.1.1.[[java:java-indre-klasser#java-indre-klasser-normal-eksempel|Eksempel - Linjetegning]]22.2.[[java:java-indre-klasser-lokale|Lokale klasser]]22.3.[[java:java-indre-klasser-anonyme|Anonyme klasser]]22.3.1.[[java:java-indre-klasser-anonyme#java-indre-klasser-anonyme-filtrering|Eksempel - filtrering af filnavne]]22.3.2.[[java:java-indre-klasser-anonyme#java-indre-klasser-anonyme-linjetegning|Eksempel - Linjetegning]]22.3.3.[[java:java-indre-klasser-anonyme#java-indre-klasser-anonyme-traade|Eksempel - tråde]]22.4.[[java:java-indre-klasser-opgaver|Opgaver]]23.[[java:java-analyse-design|Objektorienteret analyse og design]]23.1.[[java:java-analyse-design#java-analyse-design-krav|Krav til programmet]]23.2.[[java:java-analyse-design-obj-analyse|Objektorienteret analyse]]23.2.1.[[java:java-analyse-design-obj-analyse#java-analyse-design-obj-analyse-ord|Skrive vigtige ord op]]23.2.2.[[java:java-analyse-design-obj-analyse#java-analyse-design-obj-brugsmoenstre|Brugsmønstre]]23.2.3.[[java:java-analyse-design-obj-analyse#java-analyse-design-obj-aktivitetsdiag|Aktivitetsdiagrammer]]23.2.4.[[java:java-analyse-design-obj-analyse#java-analyse-design-obj-skaermbilleder|Skærmbilleder]]23.3.[[java:java-analyse-design-obj-design|Objektorienteret design]]23.3.1.[[java:java-analyse-design-obj-design#java-analyse-design-obj-design-kol-diag|Kollaborationsdiagrammer]]23.3.2.[[java:java-analyse-design-obj-design#java-analyse-design-obj-des-klas-diag|Klassediagrammer]]24.[[java:java-i18n|Internationale programmer]]24.1.[[java:java-i18n#java-i18n-indledning|Indledning]]24.2.[[java:java-i18n-lokalindstilling|Lokalindstillinger]]24.2.1.[[java:java-i18n-lokalindstilling#java-i18n-lokalindstilling-opret|Oprettelse af en lokalindstilling]]24.2.2.[[java:java-i18n-lokalindstilling#java-i18n-lokalindstilling-tilgaengelig|Tilgængelige lokalindstillinger]]24.3.[[java:java-i18n-ressourcebundt|Ressourcebundter]]24.3.1.[[java:java-i18n-ressourcebundt#java-i18n-ressourcebundt-generelt|Generelt om ressourcebundter]]24.3.2.[[java:java-i18n-ressourcebundt#java-i18n-ressourcebundt-ressourcefil|Lagring af tekst i ressourcefiler]]24.3.3.[[java:java-i18n-ressourcebundt#java-i18n-ressourcebundt-klasse|Lagring af ressourcer i klasser]]24.4.[[java:java-i18n-parameterized-messages|Parametriserede beskeder]]24.5.[[java:java-i18n-formatering-dato|Formatering af datoer og klokkeslæt]]24.5.1.[[java:java-i18n-formatering-dato#java-i18n-formatering-dato-foruddefineret|Prædefineret formater]]24.5.2.[[java:java-i18n-formatering-dato#java-i18n-formatering-dato-tilpasset|Egne formater]]24.6.[[java:java-i18n-formatering-tal|Formatering af tal og beløb]]24.6.1.[[java:java-i18n-formatering-tal#java-i18n-formatering-tal-praedefineret|Prædefineret formater]]24.7.[[java:java-i18n-working-with-text|Tekster og tegn]]24.7.1.[[java:java-i18n-working-with-text#java-i18n-working-with-text-character|Analyse af tegn]]24.7.2.[[java:java-i18n-working-with-text#java-i18n-working-with-text-comparison|Sammenligning af strenge]]24.7.3.[[java:java-i18n-working-with-text#java-i18n-working-with-text-break|Analyse af grænser i tekst]]A.[[java:java-apprevhist|Revisionshistorie for bogen]] **Tabelliste** 3-1.[[java:java-basal-prg-appendiks#tal-1-java|Simple variabeltyper i Java]]3-2.[[java:java-basal-prg-appendiks#AEN1372|Java]]3-3.[[java:java-basal-prg-appendiks#AEN1426|Java]]3-4.[[java:java-basal-prg-appendiks#AEN1450|Java]]3-5.[[java:java-basal-prg-appendiks#AEN1479|Java]]3-6.[[java:java-basal-prg-appendiks#AEN1511|Java]]4-1.[[java:java-obj-apppendix#AEN2306|Java]]11-1.[[java:java-gui-komp#AEN3977|Java]]11-2.[[java:java-gui-komp#AEN4014|Java]]11-3.[[java:java-gui-komp#AEN4037|Java]]11-4.[[java:java-gui-komp#AEN4077|Java]]11-5.[[java:java-gui-komp#AEN4115|Java]]11-6.[[java:java-gui-komp#AEN4153|Java]]11-7.[[java:java-gui-komp#AEN4177|Java]]21-1.[[java:java-avancerede-klasser#AEN5578|Adgangsregler]]24-1.[[java:java-i18n-formatering-dato#java-i18n-dato-og-klokkeslaetmoenstre|Dato og klokkeslætmønstre]] **Figurliste** 1.[[java:java-ophavsret#AEN94|ÅDL]]2.[[java:java-omos#christian-damsgaard-fig|Christian Damsgaard]]3.[[java:java-omos#jonas-kongslund-fig|Jonas Kongslund]]4.[[java:java-omos#jacob-nordfalk-fig|Jacob Nordfalk]]2-1.[[java:java-dev-env-ide#java-dev-env-jbuilder-fig|Borland JBuilder]]2-2.[[java:java-dev-env-ide#java-dev-env-jdeveloper-fig|Oracle JDeveloper]]2-3.[[java:java-dev-env-ide#java-dev-env-forte-fig|Sun Forte for Java]]2-4.[[java:java-dev-env-ide#java-dev-env-visualage-fig|IBM VisualAge for Java]]2-5.[[java:java-dev-env-test#java-dev-env-junit-gui-fig|Grafisk JUnit TestRunner]]3-1.[[java:java-basal-prg#java-basal-prg-oversaettelse-koer-cyklus-fig|Oversættelse og udførelse af programmet HejVerden]]3-2.[[java:java-basal-prg-variable#java-basal-prg-variable-int-tildeling-fig|Efter 1. tildeling]]3-3.[[java:java-basal-prg-variable#java-basal-prg-variable-int-tildeling2-fig|Efter 2. tildeling]]3-4.[[java:java-basal-prg-betinget#java-basal-prg-betinget-rutediagram1-fig|Logikken i en if-sætning]]3-5.[[java:java-basal-prg-betinget#java-basal-prg-conf-rutediagram2-fig|Rutediagram for Alder]]3-6.[[java:java-basal-prg-betinget#java-basal-prg-betinget-rutediagram3-fig|Logikken i en if-else-sætning]]3-7.[[java:java-basal-prg-loekke#java-basal-prg-loekke-while-fig|Logikken i en while-løkke]]3-8.[[java:java-basal-prg-loekke#java-basal-prg-loekke-while-alder4-fig|Rutediagram for noget af Alder4]]3-9.[[java:java-basal-prg-loekke#java-basal-prg-loekke-while-syvtabel-fig|Rutediagram for Syvtabel]]3-10.[[java:java-basal-prg-loekke#java-basal-prg-loekke-for-fig|Strukturen i en for-løkke]]3-11.[[java:java-basal-prg-loekke#java-basal-prg-loekke-for-syvtabel2-fig|Rutediagram for Syvtabel2 (samme som for Syvtabel)]]4-1.[[java:java-obj#java-obj-klasse2-fig|Java]]4-2.[[java:java-obj#java-obj-klasse3-fig|Java]]4-3.[[java:java-obj-klasser-punkter#java-obj-point-fig|Java //p refererer til et punktobjekt.Objektet har x=0 og y=0//]]4-4.[[java:java-obj-klasser-punkter#java-obj-point2-fig|Efter tildeling af p.x og p.y]]4-5.[[java:java-obj-klasser-punkter#java-obj-point3-fig|Efter kald af move(200,300)]]4-6.[[java:java-obj-klasser-punkter#java-obj-point-uml-fig|Java]]4-7.[[java:java-obj-rekt#java-obj-rekt-fig|Java]]4-8.[[java:java-obj-rekt#java-obj-rekt-uml-fig|Java]]4-9.[[java:java-obj-rekt-strenge#java-obj-rekt-strenge-fig|s refererer ikke til noget]]4-10.[[java:java-obj-rekt-strenge#java-obj-strenge2-fig|s refererer nu til en streng]]4-11.[[java:java-obj-rekt-vector#java-obj-vector-fig|Java]]4-12.[[java:java-obj-rekt-vector#java-obj-vector2-fig|Java]]4-13.[[java:java-obj-eksempel#java-eksempel-date-fig|Java]]5-1.[[java:java-klasser#java-klasser-klasse-def-fig|Java]]5-2.[[java:java-klasser-indkap#java-klasser-uml-fig|Java]]5-3.[[java:java-klasser-konst#java-klasser-konst-fig|Java]]5-4.[[java:java-klasser-dice#java-klasser-dice-fig|Java]]5-5.[[java:java-klasser-this#java-klasser-this-fig|//this// virker som en variabel der refererer til objektet selv]]5-6.[[java:java-klasser-eks#java-klasser-n-dice-fig|Java]]5-7.[[java:java-klasser-eks#java-klasser-strenge-fig|En Person har to String-objekter. Disse er undtagelsesvist også vist]]5-8.[[java:java-klasser-eks#java-klasser-konto-fig|Java]]6-1.[[java:java-arv#java-arv-super-sub-fig|Java]]6-2.[[java:java-arv#java-arv-fake-dice-fig|Java]]6-3.[[java:java-arv-poly#java-arv-fake-game-fig|Snydespil2MedPolymorfiefter punkt A]]6-4.[[java:java-arv-poly#java-arv-fake-dice2-fig|Efter punkt A(programmet vil ikke oversætte)]]6-5.[[java:java-arv-poly#java-arv-poly-fig|Efter punkt A]]6-6.[[java:java-arv-poly-ref-matador#java-arv-poly-ref-fig|Java]]6-7.[[java:java-arv-stamklasse#java-arv-fake-dice3-fig|Java]]6-8.[[java:java-arv-stamklasse-subklasser#java-arv-boks-fig|Boks3medDensitet tillader oprettelse på to måder]]6-9.[[java:java-arv-stamklasse-matador#java-arv-grund-fig|Java]]8-1.[[java:java-lok-obj-klasse-var#java-lok-obj-klasse-var-fig|Java]]10-1.[[java:java-applet-java-koden#java-applet-html|Java]]10-2.[[java:java-applet-java-koden#java-applet-kurvetegning|Java]]11-1.[[java:java-gui#java-gui-gen-tool-fig|Java]]11-2.[[java:java-gui#java-gui-gen-tool-inter-prg-fig|Java]]11-3.[[java:java-gui-komp#java-gui-komp-button-fig|En trykknap. Egenskaben //label// angiver, hvad der står på knappen.]]11-4.[[java:java-gui-komp#java-gui-komp-checkbox-fig|Et afkrydsningsfelt. Kan både bruges til flueben og til radioknapper. Hvis man skal have radioknapper (der gensidigt udelukker hinanden), skal objekterne knyttes sammen af et CheckboxGroup-objekt.]]11-5.[[java:java-gui-komp#java-gui-komp-choice-fig|En valgliste. Brug metoden add(String elementnavn) til at tilføje indgange.]]11-6.[[java:java-gui-komp#java-gui-komp-textfield-fig|Et indtastningsfelt på en linje. Egenskaben //text// angiver, hvad der står i feltet.]]11-7.[[java:java-gui-komp#java-gui-komp-textarea-fig|Et indtastningsfelt på flere linjer.]]11-8.[[java:java-gui-komp#java-gui-komp-label-fig|En mærkat der viser en tekst (som brugeren ikke kan redigere i).]]11-9.[[java:java-gui-komp#java-gui-komp-list-fig|En menu, hvor flere af indgangene kan ses samtidigt, og hvor man kan vælge en eller flere elementer. Brug metoden add(String elementnavn) til at tilføje indgange.]]11-10.[[java:java-gui-eksempel#java-gui-eksempel-fig|Java]]11-11.[[java:java-gui-klasse-relationer#java-gui-klasse-relationer-fig|Java]]11-12.[[java:java-gui-klasse-relationer-layout-managers#java-gui-klasse-relationer-flowlayout-fig|Java]]11-13.[[java:java-gui-klasse-relationer-layout-managers#java-gui-klasse-relationer-borderlayout-fig|Java]]11-14.[[java:java-gui-klasse-relationer-layout-managers#java-gui-klasse-relationer-gridbaglayout-fig|Java]]11-15.[[java:java-gui-klasse-relationer-matador#java-gui-klasse-relationer-matador-fig|Et grafisk matadorspil]]12-1.[[java:java-interface#java-interface-definer-fig|Java]]13-1.[[java:java-events-eksempel-linjetegning#java-events-eksempel-linjetegning-fig|Java]]14-1.[[java:java-exception-tvungen#java-exception-tvungen-konsekvens-fig|Java]]15-1.[[java:java-io#java-io-skrive-tekstfil-fig|Java]]15-2.[[java:java-io-laese-tekstfil#java-io-laese-tekstfil-fig|Java]]15-3.[[java:java-io-txt-analyse-appendix#java-io-txt-analyze-binaere-data-fig|Java]]15-4.[[java:java-io-txt-analyse-appendix#java-io-txt-analyse-reader-writers-fig|Java]]16-1.[[java:java-net#java-net-fig|Java]]17-1.[[java:java-traade#java-traade-princip-fig|Java]]17-2.[[java:java-traade-ekstra-eksempler#java-traade-ekstra-eksempler-applet-fig|Java]]19-1.[[java:java-rmi#java-rmi-principer-fig|Java]]19-2.[[java:java-rmi-konkret#java-rmi-konkret-klient-fig|Java]]23-1.[[java:java-analyse-design-obj-analyse#java-analyse-design-obj-brugsmoenstre-fig1|Java]]23-2.[[java:java-analyse-design-obj-analyse#java-analyse-design-obj-brugsmoenstre-fig2|Tur]]23-3.[[java:java-analyse-design-obj-analyse#java-analyse-design-obj-aktivitetsdiag-fig1|Java]]23-4.[[java:java-analyse-design-obj-analyse#java-analyse-design-obj-aktivitetsdiag-fig2|Java]]23-5.[[java:java-analyse-design-obj-analyse#java-analyse-design-obj-skaermbilleder-fig1|Java]]23-6.[[java:java-analyse-design-obj-analyse#java-analyse-design-obj-skaermbilleder-fig2|Java]]23-7.[[java:java-analyse-design-obj-analyse#java-analyse-design-obj-skaermbilleder-fig3|Java]]23-8.[[java:java-analyse-design-obj-design#java-analyse-design-obj-design-kol-diag-fig1|Java]]23-9.[[java:java-analyse-design-obj-design#java-analyse-design-obj-design-kol-diag-fig2|Java]]23-10.[[java:java-analyse-design-obj-design#java-analyse-design-obj-des-klas-diag-fig1|Java]]23-11.[[java:java-analyse-design-obj-design#java-analyse-design-obj-des-klas-diag-fig2|Java]]---- | | | [[java:javaforord|næste]] | | | | Forord |