User Tools

Site Tools


linuxbog.old:java:index

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 Forord1.Forord2.Linux-bøgerne3.Ophavsret4.Om forfatterne og bogens historie5.Vi siger tak for hjælpen6.Typografi1.Indledning1.1.Målgrupper1.2.Om bogens kilde - http://javabog.dk1.3.Javas historie1.4.Hvad er en virtuel maskine1.5.Programmering1.5.1.Styresystemet1.5.2.Hvorfor lære at programmere?1.5.3.Et simpelt program1.5.4.Hvordan lærer man at programmere1.6.Fordele og ulemper ved Java1.6.1.Enkelt1.6.2.Objektorienteret1.6.3.Platformuafhængigt1.6.4.Netværksorienteret1.6.5.Fortolket1.6.6.Højtydende1.6.7.Flertrådet1.6.8.Robust1.6.9.Sikkert1.6.10.Dynamisk1.6.11.Stor opbakning1.6.12.Svagheder ved Java2.Udviklingsmiljø2.1.Indledning2.2.Integrerede udviklingsmiljøer2.2.1.Sun JDK2.2.2.Borland JBuilder2.2.3.Oracle JDeveloper2.2.4.Sun Forte for Java2.2.5.IBM VisualAge for Java2.2.6.Andre2.3.Opsætningsstyring2.3.1.Ant2.4.Debugging2.5.Logning2.6.Profilering2.7.Dokumentation2.7.1.Javadoc2.8.Versionsstyring2.9.Test2.9.1.JUnit3.Basal programmering3.1.Det første javaprogram3.1.1.Kommentarer3.1.2.Klassedefinitionen3.1.3.Oversættelse og kørsel af programmet3.2.Variable3.2.1.Heltal3.2.2.Sammensætte strenge med +3.2.3.Beregningsudtryk3.2.4.Kommatal3.2.5.Matematiske funktioner3.2.6.Kald af metoder3.2.7.Logiske variable3.2.8.Opgaver3.3.Betinget udførelse3.3.1.if-else3.3.2.Opgaver3.4.Blokke3.4.1.Indrykning3.5.Løkker3.5.1.while-løkken3.5.2.for-løkken3.5.3.Indlejrede løkker3.5.4.Uendelige løkker3.5.5.Opgaver3.6.Værditypekonvertering3.6.1.Eksplicit værdi-typekonvertering3.6.2.Implicit værdi-typekonvertering3.6.3.Misforståelser af værdi-typekonvertering3.7.Fejl3.7.1.Indholdsmæssige (logiske) fejl3.7.2.Sproglige fejl3.7.3.Køretidsfejl3.8.Opgaver3.8.1.Befordringsfradrag3.8.2.Kurveprogram3.9.Appendiks3.9.1.Navngivningsregler3.9.2.De simple typer3.9.3.Værditypekonvertering3.9.4.Aritmetiske operatorer3.9.5.Regning med logiske udtryk3.9.6.Sammenligningsoperatorer3.9.7.Gode råd om programmering4.Objekter4.1.Objekter og klasser4.2.Punkter (klassen Point)4.2.1.Erklæring og oprettelse4.2.2.Objektvariable4.2.3.Metodekald4.2.4.Eksempel4.2.5.Import af standardklasser4.3.Rektangler (klassen Rectangle)4.3.1.Konstruktører4.3.2.Metoder4.3.3.Metoders returtype4.3.4.Metoders parametre4.4.Tekststrenge (klassen String)4.4.1.Strenge er uforanderlige4.4.2.Man behøver ikke bruge new til String-objekter4.4.3.Navnesammenfald for metoder4.4.4.At sætte strenge sammen med +4.4.5.Sammenligning4.4.6.Opgaver4.5.Lister (klassen Vector)4.5.1.Eksempel med Point4.6.Ekstra eksempler4.6.1.Blanding af kort med Vector4.6.2.Datoer (klassen Date)4.6.3.Opgaver4.7.Appendiks4.7.1.Point4.7.2.Rectangle4.7.3.String4.7.4.Specialtegn i strenge5.Definition af klasser5.1.En Boks-klasse5.1.1.Variabler5.1.2.Brug af klassen5.1.3.Metodedefinition5.1.4.Flere objekter5.2.Indkapsling5.3.Konstruktører5.3.1.Standardkonstruktører5.3.2.Opgaver5.4.En Terning-klasse5.4.1.Opgaver5.5.Relationer mellem objekter5.5.1.En Raflebæger-klasse5.5.2.Opgaver5.6.Nøgleordet this5.7.Ekstra eksempler5.7.1.En n-sidet terning5.7.2.Personer5.7.3.Bankkonti5.8.Opgaver5.8.1.Fejlfinding6.Nedarvning6.1.At udbygge eksisterende klasser6.1.1.Eksempel: En falsk terning6.1.2.At udbygge med flere metoder og variabler6.1.3.Nøgleordet super6.2.Polymorfe variabler6.2.1.Dispensation fra traditionel typesikkerhed6.2.2.Polymorfi6.2.3.Et eksempel på polymorfi: Brug af Raflebaeger6.2.4.Hvilken vej er en variabel polymorf ?6.2.5.Reference-typekonvertering6.3.Eksempel: Et matador-spil6.3.1.Polymorfi6.4.Stamklassen Object6.4.1.Referencer til objekter6.5.Konstruktører i underklasser6.6.Matadorspillet version 26.7.Opgaver7.Pakker7.1.At importere klassedefinitioner7.2.Standardpakkerne7.2.1.Pakken java.lang7.3.Placering på filsystemet7.4.At definere egne pakker7.4.1.Eksempel på brugen af egne pakker7.4.2.Navngive pakker7.4.3.Pakke klasser i JAR-filer (Java-arkiver)7.5.Opgaver8.Lokale, objekt- og klassevariable8.1.Eksempler i standardpakkerne8.1.1.Klassevariable8.1.2.Klassemetoder8.2.Lokale variabler og parametre8.2.1.Parametervariable8.2.2.Rekursion9.Arrays9.1.Erklæring og brug9.1.1.Eksempel: Statistik9.2.Main-metoden9.3.Arrays med startværdier9.4.Gennemløb og manipulering9.5.Array af objekter9.5.1.Polymorfi9.6.Arrays versus vektorer9.7.Opgaver10.Appletter og grafik10.1.HTML-dokumentet10.2.Javakoden10.2.1.Metoder i appletter, som du kan kalde10.2.2.Metoder i appletter, som systemet kalder10.2.3.Eksempel10.3.Opgaver10.4.Appendiks10.4.1.Metoder i appletter, som du kan kalde10.4.2.Metoder, som systemet kalder10.4.3.Klassen Graphics11.Grafiske brugergrænseflader11.1.Generering med et værktøj11.1.1.Interaktive programmer11.2.Komponenter11.2.1.Button11.2.2.Checkbox11.2.3.Choice11.2.4.TextField11.2.5.TextArea11.2.6.Label11.2.7.List11.2.8.Canvas11.3.Eksempel11.4.Containere11.4.1.Panel11.4.2.Applet11.4.3.Window11.4.4.Frame11.4.5.Dialog11.5.Relationer mellem klasserne11.6.Layout-managere11.6.1.FlowLayout11.6.2.BorderLayout11.6.3.GridBagLayout11.7.Opgave: Matadorspillet grafisk11.7.1.Vink11.7.2.Flere vink12.Interfaces - grænseflader til objekter12.1.Definere et interface12.2.Implementere et interface12.2.1.Variabler af type Tegnbar12.3.Eksempler med interfacet Tegnbar12.3.1.En applet af Tegnbare objekter12.4.Polymorfi12.5.Interfaces i standardbibliotekerne12.5.1.Sortering med Comparable12.5.2.Flere tråde med Runnable12.5.3.Lytte til musen med MouseListener12.6.Opgaver13.Hændelser i grafiske brugergrænseflader13.1.Eksempel - LytTilMusen13.2.Eksempel - Linjetegning13.2.1.Linjetegning i én klasse13.3.Ekstra eksempler13.3.1.Lytte til musebevægelser13.3.2.Lytte til en knap13.4.Lyttere og deres metoder13.4.1.ActionListener13.4.2.ComponentListener13.4.3.FocusListener13.4.4.ItemListener13.4.5.KeyListener13.4.6.MouseListener13.4.7.MouseMotionListener13.4.8.TextListener13.4.9.WindowListener14.Undtagelser og køretidsfejl14.1.Almindelige undtagelser14.2.At fange og håndtere undtagelser14.2.1.Undtagelsesobjekter og deres stakspor14.3.Undtagelser med tvungen håndtering14.3.1.Fange undtagelser eller sende dem videre14.3.2.Konsekvenser af at sende undtagelser videre14.4.Præcis håndtering af undtagelser14.5.At fange flere slags undtagelser14.6.Opgaver15.Datastrømme og filhåndtering15.1.Skrive til en tekstfil15.2.Læse fra en tekstfil15.3.Indlæsning fra tastatur15.4.Analysering af tekstdata15.4.1.Opdele inddata (StringTokenizer)15.4.2.Konvertere til tal15.4.3.DecimalFormat og DateFormat-klasserne15.4.4.Samlet eksempel: Statistik15.5.Appendiks15.5.1.Navngivning15.5.2.Binære data ( -OutputStream og -InputStream)15.5.3.Tekstdata ( -Writer og -Reader)15.5.4.Fillæsning og -skrivning (File- )15.5.5.Strenge (String- )15.5.6.Arrays (ByteArray- og CharArray- )15.5.7.Læse/skrive objekter (Object- )15.5.8.Dataopsamling (Buffered- )15.5.9.Gå fra binære til tegnbaserede datastrømme15.5.10.Filtreringsklasser til konvertering og databehandling15.6.Ekstra eksempler15.7.Opgaver16.Netværkskommunikation16.1.At forbinde sig til en port16.2.At lytte på en port16.3.Opgaver17.Flertrådet programmering17.1.Princip17.1.1.Eksempel17.2.Ekstra eksempler17.2.1.En flertrådet webserver17.2.2.En flertrådet applet med bolde17.3.Opgaver18.Serialisering af objekter18.1.Hente og gemme objekter18.2.Serialisering af egne klasser18.2.1.Interfacet Serializable18.2.2.Nøgleordet transient18.2.3.Eksempel18.3.Opgaver19.RMI - objekter over netværk19.1.Principper19.2.Konkret19.2.1.På serversiden19.2.2.På klientsiden20.JDBC - databaseadgang20.1.Kontakt til databasen20.1.1.JDBC-ODBC-broen under Windows20.2.Kommunikere med databasen20.2.1.Kommandoer20.2.2.Forespørgsler20.3.Samlet eksempel20.4.Opgaver21.Avancerede klasser21.1.public, protected og private21.1.1.Variabler og metoder21.1.2.Klasser21.2.Nøgleordet final21.2.1.Variabler21.2.2.Metoder21.2.3.Klasser21.3.Nøgleordet abstract21.3.1.Klasser21.3.2.Metoder22.Indre klasser22.1.Almindelige indre klasser22.1.1.Eksempel - Linjetegning22.2.Lokale klasser22.3.Anonyme klasser22.3.1.Eksempel - filtrering af filnavne22.3.2.Eksempel - Linjetegning22.3.3.Eksempel - tråde22.4.Opgaver23.Objektorienteret analyse og design23.1.Krav til programmet23.2.Objektorienteret analyse23.2.1.Skrive vigtige ord op23.2.2.Brugsmønstre23.2.3.Aktivitetsdiagrammer23.2.4.Skærmbilleder23.3.Objektorienteret design23.3.1.Kollaborationsdiagrammer23.3.2.Klassediagrammer24.Internationale programmer24.1.Indledning24.2.Lokalindstillinger24.2.1.Oprettelse af en lokalindstilling24.2.2.Tilgængelige lokalindstillinger24.3.Ressourcebundter24.3.1.Generelt om ressourcebundter24.3.2.Lagring af tekst i ressourcefiler24.3.3.Lagring af ressourcer i klasser24.4.Parametriserede beskeder24.5.Formatering af datoer og klokkeslæt24.5.1.Prædefineret formater24.5.2.Egne formater24.6.Formatering af tal og beløb24.6.1.Prædefineret formater24.7.Tekster og tegn24.7.1.Analyse af tegn24.7.2.Sammenligning af strenge24.7.3.Analyse af grænser i tekstA.Revisionshistorie for bogen Tabelliste 3-1.Simple variabeltyper i Java3-2.Java3-3.Java3-4.Java3-5.Java3-6.Java4-1.Java11-1.Java11-2.Java11-3.Java11-4.Java11-5.Java11-6.Java11-7.Java21-1.Adgangsregler24-1.Dato og klokkeslætmønstre Figurliste 1.ÅDL2.Christian Damsgaard3.Jonas Kongslund4.Jacob Nordfalk2-1.Borland JBuilder2-2.Oracle JDeveloper2-3.Sun Forte for Java2-4.IBM VisualAge for Java2-5.Grafisk JUnit TestRunner3-1.Oversættelse og udførelse af programmet HejVerden3-2.Efter 1. tildeling3-3.Efter 2. tildeling3-4.Logikken i en if-sætning3-5.Rutediagram for Alder3-6.Logikken i en if-else-sætning3-7.Logikken i en while-løkke3-8.Rutediagram for noget af Alder43-9.Rutediagram for Syvtabel3-10.Strukturen i en for-løkke3-11.Rutediagram for Syvtabel2 (samme som for Syvtabel)4-1.Java4-2.Java4-3.Java //p refererer til et punktobjekt.Objektet har x=0 og y=0//4-4.Efter tildeling af p.x og p.y4-5.Efter kald af move(200,300)4-6.Java4-7.Java4-8.Java4-9.s refererer ikke til noget4-10.s refererer nu til en streng4-11.Java4-12.Java4-13.Java5-1.Java5-2.Java5-3.Java5-4.Java5-5.//this// virker som en variabel der refererer til objektet selv5-6.Java5-7.En Person har to String-objekter. Disse er undtagelsesvist også vist5-8.Java6-1.Java6-2.Java6-3.Snydespil2MedPolymorfiefter punkt A6-4.Efter punkt A(programmet vil ikke oversætte)6-5.Efter punkt A6-6.Java6-7.Java6-8.Boks3medDensitet tillader oprettelse på to måder6-9.Java8-1.Java10-1.Java10-2.Java11-1.Java11-2.Java11-3.En trykknap. Egenskaben //label// angiver, hvad der står på knappen.11-4.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.En valgliste. Brug metoden add(String elementnavn) til at tilføje indgange.11-6.Et indtastningsfelt på en linje. Egenskaben //text// angiver, hvad der står i feltet.11-7.Et indtastningsfelt på flere linjer.11-8.En mærkat der viser en tekst (som brugeren ikke kan redigere i).11-9.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.Java11-11.Java11-12.Java11-13.Java11-14.Java11-15.Et grafisk matadorspil12-1.Java13-1.Java14-1.Java15-1.Java15-2.Java15-3.Java15-4.Java16-1.Java17-1.Java17-2.Java19-1.Java19-2.Java23-1.Java23-2.Tur23-3.Java23-4.Java23-5.Java23-6.Java23-7.Java23-8.Java23-9.Java23-10.Java23-11.Java—-

næste
Forord
linuxbog.old/java/index.txt · Last modified: by 127.0.0.1

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

Brug af AI : Al tekst kán være uddrag af AI genereret tekst og kan være fejlbehæftet.
AI kan lave fejl og det kan mennesker også, men al tekst er gennemgået af et menneske for fejl, og personlig bias kan være tilføjet.