0
Om programutveckling
speciellt i Java Development Kit








Java - javisst. Läsanvisningar
Algoritmer
Program och programmeringsspråk
Översättning till maskinkod - Kompilering
Översättning med interpretator
Allmänt om Java-program
Övningar
Utvecklingsverktyg för Java
Kap 0: Sid 2
Java - javisst. Läsanvisningar
Kapitlen studeras lämpligen i nummerordning. Vissa kapitel kan dock till en början, helt eller delvis, hoppas
över och läsas vid ett senare tillfälle. Se nedanstående sammanställning.
Läsanvisningarna nedan finns även - ofta i något utförligare version - i början på respektive kapitel.
0: Om programutveckling - speciellt i Java Development Kit
Kapitlet tar först upp några generella begrepp inom programmering, och inriktar sig sedan på Java, och detta
språks utvecklingsverktyg. Lär dig de ord och företeelser som kapitlet behandlar. Kör övningarna, mest för att
kontrollera att din utvecklingsmiljö fungerar.
1: Grundläggande programmering
Kapitlet behandlar ett litet urval grundläggande begrepp inom programmering, såsom variabler (tal-, tecken-,
sträng-) och styrstrukturer (selektioner / iterationer). Om du redan är bekant med något annat programmeringsspråk så känner du igen det mesta. Om du är nybörjare ska du se till att du är väl förtrogen med detta kapitel
innan du fortsätter.
2: Klasser och objekt
Här möter vi begreppen klass och objekt som är centrala i OOP (=objektorienterd programmering). Många
viktiga företeelser inom OOP förklaras och exemplifieras. Ägna tid åt att försöka förstå dessa grundläggande
begrepp, men var inte orolig om du inte "greppar" allt på en gång! Mycket klarnar efter hand längre fram i
materialet. Kapitlet är ganska omfattande. Återvänd till kapitel 2, läs på nytt och repetera, när du stöter på
begreppen igen i senare avsnitt
3: Arv
Arv är en mycket väsentlig företeelse inom OOP. Kapitlet förklarar och exemplifierar.
Vidare presenteras Javas klassbibliotek (från vilket man kan importera färdiga klasser som vi kan ärva ifrån).
Dessutom introduceras klassen Frame som är grundläggande för fristående javaapplikationer.
Läs med omsorg. Se till att du förstår alla exempel och övningar.
4: Applets
Äntligen lite mer "praktiska" övningar. Du skapar applets ( = små javaprogram inbäddade på en hemsida ) som
är försedda med enkel grafik i olika färger, bilder, ljud med mera. Kunskaperna från kapitel 2 och 3 tillämpas
för att skapa egna objekt som appleten använder. Flera av övningarna återkommer längre fram i senare kapitel.
(Efter kap. 4 kan man, om man vill, gå direkt till kap. 17 och studera den utökade grafiken i Java2, Java2D.)
5: Applets med komponenter
Nu börjar det hända saker! Här introduceras händelsehantering. Genom att förse en applet med knappar kan du
byta färger, starta ljuduppspelning, ändra positionen hos objekt med mera. Du lär dig också hur man, via
textrutor, matar in strängar och tal i en applet, hur man utför beräkningar samt hur man tar hand om fel.
6: Loopar och val
Här fördjupas och utvidgas innehållet i kapitel 1 (styrstrukturer - selektion och iteration - med mera)
Om du redan behärskar ett annat programmeringsspråk (i synnerhet C++) behöver detta kapitel inte ta lång tid.
Är du ovan programmerare bör du vara väl förtrogen med kapitlets innehåll innan du fortsätter.
7: Mest om metoder…
Här återkommer vi till Javas klassbibliotek, och du får lära dig hur man söker i den dokumentation som bifogas
JDK/SDK. Viktigt! Därefter följer en repetition av de begrepp som förekommer i samband med metoder.
Sedan presenteras klassen Math. Dess metoder för matematiska beräkningar exemplifieras i flera övningar.
Vidare lär du dig metoder för att utföra avrundning av tal.
I ett avsnitt behandlas (återigen) de speciella metoder som ingår i en applet. Här lär du dig en teknik för att rita
om en applet utan att den gamla bilden ligger försvinner.
Vissa metoder returnerar värde (funktioner). Dessa exemplifieras i övningar om värdetabeller och
funktionskurvor. Slutligen genomgås hur man skriver egna klassmetoder och skapar egna paket.
8: Arrayer
I detta kapitel introduceras begreppet array, motsvarigheten till matematikens indicerade variabler
(t.ex. x1, x2, … xi, … xn). Arrayer av heltal exemplifieras bland annat med sorteringsövningar och med exempel
där man ritar polygoner. Vidare får du skapa arrayer av olika typer av objekt.
Flera övningar (Rymdskepp, Asteroider, Tarning) ligger som grund för övningar i senare kapitel.
684090264
© Ove Lundgren
2
Kap 0: Sid 3
9: Mer om komponenter och händelsehanterare
Händelsehantering igen! Hittills har du arbetat med komponenterna Button, Label och TextField.
Nu får du lära dig använda komponenter som kryssrutor, radioknappar, listrutor, rullningslister med flera.
Gör övningarna. Du bör lära dig komponenternas klasshierarki (i stora drag).
10: Mest om mus- och tangenthändelser (Kapitlets slut kan läsas senare, dock senast inför kapitel 15)
Hur får man saker att inträffa till exempel när man klickar med musen, när man drar musen eller när man för
musmarkören in över ett område? Kan man påverka en applet via tangentbordet, till exempel genom att trycka
på en viss tangent? Detta får du lära dej i det här kapitlet. Dessutom kommer vi att se hur man kan förändra
musmarkörens utseende, och hur man anropar och öppnar webbsidor från en applet.
I kapitlets slut behandlas lyssnarklasser, inre klasser och adapterklasser. Du kan hoppa över dessa avsnitt så
länge. I kapitel 15, kommer vi att använda oss av adapterklasser. Innan dess bör du ha studerat de här sidorna.
11: Mer om klasser och objekt (Hela kapitlet kan läsas senare…)
Kapitlet inleds med en repetition av grundläggande begrepp som klasser, objekt, variabler, metoder,
konstruktorer och arv. Därefter jämförs två metoder: super() och this() och två nyckelord: super och
this. Kapitlet tar upp ytterligare en grundpelare i OOP, nämligen polymorfism:
"Detta att metoder med samma namn logiskt sett gör samma sak i olika objekt, men kodmässigt sett är olika,
kallas polymorfism." Slutet av kapitlet behandlar abstrakta klasser och gränssnitt. Meningen är att läsaren ska
ges en något mer konkret bild av vad ett gränssnitt (ett interface) är. Det här kapitlet kan uppfattas som alltför
teoretiskt. Man kan hoppa över det och läsa det vid ett senare tillfälle…
12: Layout, panel- och canvasobjekt (Kan läsas senare, dock senast inför kapitel 15)
Detta kapitel handlar om appletens utseende. Hur förändrar man storlek och placering på en komponent?
Hur kan man förändra layouten hos en applet? (Det finns flera layouter att välja på….)
I detta sammanhang kommer du också att stifta bekantskap med klassen Panel.
Om du inte är intresserad av appletens utseende, utan endast av dess funktion, kan du hoppa över det här kapitlet
så länge. Först i kapitel 15 förutsätts att du läst avsnitten om layouter och Panel.
I slutet av kapitel 12 finns några övningar med klassen Canvas. Detta är en komponent på vilken man kan rita
och som är muskänslig. Från och med Java 1.1 miste Canvas något av sin betydelse eftersom rit- och
muskänslighetsegenskaperna numera även finns hos andra komponenter t.ex. Panel.
Om du inte är speciellt nyfiken på Canvas så kan du hoppa över avsnittet helt.
13: Grafikobjekt och bilder
Vi lär oss en "generell" metod för att rita på paneler, applets med mera, utan att använda paint-metoden.
Därefter följer ett antal övningar som handlar om bildhantering i applets. Så är det dags för animering, det vill
säga, att få något att röra på sig på appletytan. Dubbelbuffring är en metod som ger mjukare animering.
Gör så många övningar som möjligt, framför allt animeringsövningarna.
14: Trådar
Med trådar kan man få något att ske "vid sidan av" det ordinarie programmet.
Man kanske vill att en klocka ska stå och ticka, eller att en text ska förflyttas över skärmen.
I Java är det enkelt att arbeta med trådar, Threads
Kör övningarna i kapitlets början, men sedan ska du koncentrera dig på övningar med gränssnittet Runnable
Se till att få ett fungerande Asteroidspel. Lös någon eller några av de uppgifter som presenteras sist i kapitlet
(studsande bollar, artilleri, snurrande kompassnålar med flera…)
15: Frames, menyer och GUI-program
Vi börjar med att skapa Frames (fönster) från applets. Vi lär oss att stänga fönster, och att förse dem med
knappar och menyer. Sedan skapar vi i stället Frames från konsolprogram. En Frame blir då en GUIapplikation, ett fristående javaprogram med grafiskt gränssnitt.
Vi lär oss också hur man konverterar applets till GUI-applikationer.
Du bör komma så långt så att du utan större svårighet kan konvertera dina applets till fristående javaprogram.
16: Filhantering
Kapitlet tar upp generella begrepp kring filhantering såsom poster och fält.
Skillnaden mellan sekvensfiler och direktfiler förklaras.
Begreppen exemplifieras i ett antal övningar.
684090264
© Ove Lundgren
3
Kap 0: Sid 4
17: Java2D
Java2 har en uppsättning klasser med samlingsnamnet Java2D. Där finns metoder som erbjuder mer avancerad
grafik än vad Graphics-metoderna kan erbjuda.
Det här kapitlet kan läsas nä rsom helst efter att man studerat kapitel 4.
Kapitel 0 tar först upp olika metoder för att ”översätta” den programkod som människan
skriver till datorns språk, och speciellt hur detta sker i Java.
Sedan följer några övningar. Dessa förutsätter att Suns utvecklingsverktyg för Java (JDK
eller SDK) är installerat. Avsikten med övningarna är att du ska testa utvecklingsmiljön och
se att allt fungerar. Du ska skriva av koden och ”provköra”. Du behöver tills vidare inte
förstå hur programkoden är uppbyggd.
Övningar som ska utföras praktiskt vid datorn markeras med ett streck i vänstermarginalen
så som visas här.
684090264
© Ove Lundgren
4
Kap 0: Sid 5
Algoritmer
En algoritm är en exakt beskrivning på något som ska göras.
Här är ett exempel på en algoritm:
// Baka en sockerkaka
Sätt ugnen på 175 grader
Vispa samman följande ingredienser:
2 ägg, 2 koppar socker, 2 koppar vetemjöl,
2 tsk bakpulver, 50 g smält smör, 1 dl mjölk
Häll smeten i en smörjd och bröad form
Sätt in formen i ugnen
Grädda i 40 minuter
Stäng av ugnen
Ta ut formen
Lätt att förstå och följa (för en människa) - eller hur?
Program och programmeringsspråk
Datorer förstår inte vårt vanliga språk.
Den förstår bara koder bestående av nollor och ettor (kallas maskinkod).
Det är svårt för oss människor att ge datorn "order" direkt i maskinkod.
Vi skriver i stället program som vi förstår, och som sedan lätt kan översättas till datorns språk.
Normalt skriver vi (eller ritar, eller tänker oss) först en algoritm (på svenska).
Sen skriver vi ett program som bygger på denna algoritm (Det programmet kallas källkod.)
Det finns många programmeringsspråk för att skriva dataprogram:
Fortran, Cobol, Basic, Pascal, C, C++ och Java är bara några exempel.
Programmeringsspråken är gjorda så att de någorlunda liknar mänskligt språk
(bygger mest på engelska och matematik)
Språken passar för olika ändamål. De har moderniserats efterhand.
Av de ovan nämnda är Fortran äldst (från 1950-talet) och Java yngst (från 1995)
När man skriver ett program måste man följa vissa regler (olika för olika språk).
Dessa regler kallas språkets syntax.
Översättning till maskinkod - Kompilering
Då ett program översätts till datorns språk används några olika principer.
Vi ser först på ett exempel – ett Pascalprogram - där kompilering används:
Algoritm:
Upprepa följande 10 gånger:
Skriv textsträngen "Hej du glade!" på bildskärmen.
Källkod:
Ett Pascal-program som utför ovanstående skulle se ut så här:
PROGRAM Happy;
VAR i : Integer;
BEGIN
FOR i:=1 TO 10 DO
END.
WriteLn('Hej du glade!');
Programmet (källkoden) skrivs in i en editor (detta kallas kodning eller editering) och man sparar det med ett
lämpligt namn (t ex Happy.PAS)
Vi ska inte fördjupa oss i hur programmet fungerar. Helt kort bara: Det intressanta är det som står mellan BEGIN och END
FOR-satsen gör att talet i undan för undan får värdet 1, 2, 3, … 10. Textsträngen ”Hej du glade” skrivs ut en gång för varje ”varv”
684090264
© Ove Lundgren
5
Kap 0: Sid 6
Maskinkod:
Datorn förstår tyvärr inte källkoden. Programmet måste först översättas (kompileras) till datorns eget språk
(maskinkod) Översättningen utförs av speciella program. Ett sådant program kallas kompilator.
Det översatta programmet (maskinkoden) sparas på en egen fil (som får namnet Happy.EXE)
Om man hämtar in maskinkoden i editorn och försöker läsa så finner man att koden är obegriplig
(för oss människor). Så här kan den se ut:
MZ° _ _ $_$¤ª @ _
_
_
_
;
@
E
T
_ _ ___ ___ Ñ__ ì__ ___
!__
Hej alla glada!š _ U‰å1ÀšÍ__ Ç_R _ ë_ÿ_R ¿T_-W¿ W1ÀPšp__ šÝ__ š‘__ ƒ>R
uÙ]1Àš___
º€ €ÚŒ_8 3íèu_è ‹Ä__ ±_ÓèŒÒ_£
£ ___ £ £_ £_ £$ Ž_8 &¡_ £ Ç_* Ö Œ, ¿T_¾9_¹_ Žü.¬´5Í!‰_ŒE_ƒÇ_âï-º_¸ %Í!º__¸#%Í!ºÛ
$%Í!º__¸?%Í!¸T -P-P¸c_PèN_èÈ_¸T_-P-P¸c_Pè:_è¹_Ë3Àœ[Žç_SŽœYŽåðŽýðt@ŽÏðSŽœYŽåðt_@¢L
ÀÊ_ ûƒÄ_Xƒç•Ç– Žü9s_¿ÿÿW´TÍ!‹ìŽN__X[YZ^_]_ϸРƒÄ_ë_¸È Y[ë_¸ÿ 3É3ÛºŽ ŽÚû£2 ‹
och så vidare…
(Egentligen står här bara ettor och nollor. Som du nog vet så representeras ju våra bokstäver och tecken av ettor och nollor i datorn,
så editorn gör som den är "lärd" och visar bokstäver och tecken så "gôtt den kan"…)
Exekvering
Nu har vi (äntligen) en kod som datorn ”begriper” - så vi kan köra (exekvera) pascalprogrammet!
Vi antar att vi jobbar vid en PC under Windows.
Antingen går man till DOS-prompten och skriver programnamnet (Happy) följt av ett tryck på [ENTER] ,
eller så dubbelklickar man på filen Happy.EXE i till exempel Utforskaren i Windows …
En sådan fil (som kan startas med dubbelklick) kallas en exekverbar (=körbar) fil.
Så här blir resultatet:
Hej
Hej
Hej
Hej
Hej
Hej
Hej
Hej
Hej
Hej
du
du
du
du
du
du
du
du
du
du
glade!
glade!
glade!
glade!
glade!
glade!
glade!
glade!
glade!
glade!
Översikt – kompilering:
Happy.PAS
PROGRAM Happy;
VAR i : Integer;
BEGIN
FOR i:=1 TO 10 DO
WriteLn('Hej du
glade!');
END.
Källkoden skrivs i en editor
684090264
Happy.EXE
Kompilator
Kompilering
© Ove Lundgren
0010
1110
0011
0110
0011
Maskinkod
Exekvering
Hej du glade!
Hej du glade!
Hej du glade!
Hej du glade!
Hej du glade!
Hej du glade!
Hej du glade!
HejResultatet…
du glade!
6
Kap 0: Sid 7
Plattformsberoende
En fördel med kompilerande system är att exekveringen går mycket snabbt.
En nackdel är att maskinkoden som skapas fungerar bara på en viss plattform.
Med plattform menar man en viss kombination av datortyp och operativsystem
(t ex PC/DOS-Windows, MacIntosh/MacOS, Sun/Solaris etc…)
Om du har skrivit (t ex) ett Pascal-program och vill köra den på en PC (under DOS/Windows) så kompilerar du
för just denna plattform.
Om du vill köra programmet på t ex en MacIntosh måste du (först eventuellt göra vissa ändringar i källkoden och
sedan) kompilera om programmet så att du får ny fil med maskinkod som Mac:en "begriper".
På samma sätt för andra plattformar…
Översättning med interpretator
I exemplet ovan översattes (kompilerades) hela pascalprogrammet (källkoden) på en gång direkt till maskinkod.
Det finns en annan huvudprincip för att översätta källkod till datorns språk nämligen att källkoden översätts
undan för undan, ”rad för rad”, under exekveringens gång.
Någon exekverbar fil med maskinkod skapas således inte.
Ett program som läser källkod, översätter och utför exekvering på detta sätt kallas en interpretator.
Basic är ett exempel på ett interpreterande språk, det vill säga ett språk som använder en interpretator ("basictolken") för översättningen.
Här är ett exempel med Basic:
Happy.BAS
FOR i = 1 TO 10
PRINT ”Hej du glade!”
NEXT i
Källkoden editeras i en editor
Interpretator
(Basic-tolk)
Interpretering
(översättning och exekvering
”rad för rad”)
Hej du glade!
Hej du glade!
Hej du glade!
Hej du glade!
Hej du glade!
Hej du glade!
Hej
du glade!
Resultatet…
Hej du glade!
Interpreterande programspråk är ofta långsammare än kompilerande (eftersom koden måste översättas på nytt
vid varje exekvering)
De olika plattformarna har sina egna interpretatorer (t ex basic-tolkar). Har man tur så fungerar samma källkod i
olika system. Oftast blir det dock fråga om att skriva om källkoden så att den passar aktuell plattform.
Mer om kompilatorer och interpretatorer
Utöver de ”rent” kompilerande språken (som Pascal med flera) och de ”rent” interpreterande (som de flesta
Basic-dialekter) förekommer också "blandsystem" där kompilering inte sker direkt till maskinkod utan till
någon form av ”specialkod” som sedan kan tolkas och utföras av en interpretator.
Som vi strax ska se fungerar Java på det sättet!
Lägg på minnet:
En kompilator är ett program som översätter hela källkoden på en gång till ren maskinkod som datorn förstår
(som i pascal-exemplet ovan) eller till någon ”specialkod” som sedan tolkas vidare.
En interpretator (ibland kallad tolk) är ett program som läser, översätter och exekverar antingen källkoden eller
någon ”specialkod” som en kompilator producerat.
684090264
© Ove Lundgren
7
Kap 0: Sid 8
Allmänt om Java-program
Editering, kompilering, tolkning och exekvering
Editering:
Man skriver ett Java-program (källkoden) i en vanlig editor (t ex Anteckningar eller TextPad)
Programmet sparas med filtillägget .java (Ex: Happy.java)
Kompilering:
Programmet ska sedan kompileras. Java-kompilatorn heter javac.exe
Kompilatorn startas genom att man, vid DOS-prompten ger kommandot javac följt av källkodens filnamn
Ex: javac Happy.java
Härvid skapas en fil med filtillägget .class ( i vårt fall Happy.class)
Innehållet i denna fil kallas byte-kod [bajt-kod]
Observera här:
Byte-koden är inte maskinkod utan en kod som kan översättas och exekveras av (i princip) alla plattformar!
Varje plattform har sin egen version av java-interpretatorn som läser, översätter och exekverar byte-koden.
Denna interpretator (tolk) kallas JVM (= Java Virtual Machine )
I Java behöver man alltså inte (som i andra språk) göra flera versioner av ett program för olika plattformar!
Tolkning och exekvering:
Programmet ska nu interpreteras (tolkas och exekveras). Javainterpretatorn startas av ett program som heter
java.exe Detta startas med kommandot java följt av byte-kod-filens namn (utan filtillägget)
Ex: java Happy
Så här ser det ut:
Happy.java
class Happy
{
public static void main( String args[] )
{
for (int i = 0 ; i<10 ;i++)
{
System.out.println( "Hej du glade" );
}
}
}
Källkoden editeras i en editor
Spara Happy.java
Happy.class
javac
0010
1110
0011
0110
0011
…
…
(kompilator)
Kompilering
Hej
Hej
Hej
Hej
Hej
Hej
Hej
Hej
JVM
(tolk)
Bytekod
javac Happy.java
Exekvering
du
du
du
du
du
du
du
du
Resultat
java Happy
(Filerna javac.exe och, java.exe ingår i dataföretaget Suns utvecklingsverktyg för Java,
kallat JDK = Java Developmen Kit )
Olika typer av java-program
I vår kurs använder vi PC-maskiner och vi arbetar i DOS/Windows-miljö.
Vi kommer att möta dessa tre typer av Java-program:



Konsol-program (program som körs under DOS)
Frames (”vanliga” Windows-program, kallas även GUI-applikationer. GUI =Graphic User Interface)
Applets (körs på en web-sida - se nästa avsnitt!)
Java har fått en enorm spridning världen över under de senaste åren. Orsakerna är bland annat:
- plattformsoberoendet (javaprogram kan köras på många olika plattformar)
- att man kan lägga in java-applets på web-sidor och på så sätt få dessa mera levande och interaktiva
684090264
© Ove Lundgren
8
glade!
glade!
glade!
glade!
glade!
glade!
glade!
glade!
Kap 0: Sid 9
Applets
Vad är då en applet?
Du vet vad en HTML-fil är eller hur? (En fil som beskriver innehållet i en web-sida)
En applet är helt enkelt kompilerad java-kod (byte-kod, alltså en class-fil) som exekveras från en HTML-fil.
En web-läsare (som Netscape och Internet Explorer) har nämligen inbyggda java-tolkar som kan läsa, översätta
och exekvera java-kod. Man kan ” bädda in” java-program (applets) på sina hemsidor!
En applet med namnet MinApplet startas med taggen
<APPLET CODE="MinApplet.class" WIDTH=200 HEIGHT=200> i HTML-koden.
När du skapar en applet skriver du källkod och kompilerar på samma sätt som ovan.
När du ska exekvera den får du dessutom skriva en HTML-fil där appleten startas
(taggen <APPLET CODE= ... > ska finnas med i HTML-koden)
Sen provkör du genom att öppna HTML-filen i web-läsaren.
(Det finns också ett speciellt program, vid namn appletviewer, med vilket man kan kolla appleten utan att
starta webläsaren)
Vi återkommer till allt detta senare…
Övningar
Skapa en ny mapp och ge denna namnet Java
Under denna: Skapa en ny mapp och ge denna namnet Happy
Denna struktur alltså:
X
Java
Happy
(X står för din enhet eller mapp, t ex U: eller G: om du arbetar i nätverk,
eller kanske C:\Mina Dokument om du sparar på lokal hårddisk)
I fortsättningen ska du (i princip) skapa en ny mapp i Java-mappen för varje nytt program
(så att blir det lite ordning och reda!)
I de första övningarna ska vi inte närmare gå in på hur programmen fungerar. Avsikten är att du ska få en
kontroll av att dina utvecklingverktyg fungerar och att du får vänja dig vid arbetssättet,
hur man editerar, kompilerar och exekverar olika typer av program. Vi börjar med ett konsol-program:
Övning: Konsolprogrammet Happy
Öppna editorn Anteckningar (Tillbehör – Anteckningar) och skriv in koden nedan.
Skriv in exakt som det står. Du måste vara mycket noga med gemener och VERSALER och med att
få med alla tecken.
class Happy
{
public static void main( String args[] )
{
for (int i = 0 ; i<10 ;i++)
{
System.out.println( "Hej du glade" );
}
}
}
684090264
© Ove Lundgren
9
Kap 0: Sid 10
Mycket kort om vad programmet gör: Det intressanta står efter ordet for
i är ett tal som från början har värdet 0. i++ gör att i successivt kommer att öka sitt värde med 1 (till 1, 2, 3, … osv)
Detta pågår så länge i<10 (alltså 10 gånger ). Vid varje "varv" sker utskrift av textsträngen "Hej du glade"
Spara programmet i mappen X\Java\Happy med namnet Happy.java
(var noga med gemener/VERSALER)
Öppna nu även DOS-fönstret ( Start - Program – MS-DOS prompt )
Några DOS-kommandon
I DOS-fönstret visas en DOS-prompt (kanske C:\WINDOWS> )
DOS-prompten visar i vilken enhet och mapp man befinner sig.
Om endast enhetens namn syns (t ex C:\> ) säger man att man står i enhetens rot.
I så fall är man högst upp i ” hierarkien” (man befinner sig inte i en mapp)
I DOS skriver man kommandon för vad man vill göra. Du behöver lära dig några få DOS-kommandon.
Ett DOS-kommando skrivs in vid prompten och avslutas alltid med att man trycker på [ENTER]-tangenten.
Att byta till annan enhet
Antag att du står i enhet C: (prompten visar t ex C:\> ) och du vill byta till (exempelvis) enhet G:
Vid prompten skriver du:
G: och trycker [ENTER]
Prompten visar då
G:\>
Att visa innehållet i en enhet eller mapp
Antag att du står i enhet G: och du vill se vilka mappar och filer som finns där.
Vid prompten skriver man då: dir [ENTER]
Filer och mappar visas…
Om många filnamn visas hinner man ibland inte läsa. Namnen flimrar snabbt förbi på skärmen…
Då kan man skriva
dir/p [ENTER]
Utskriften gör paus när skärmen är full. Man måste trycka på en tangent för att komma vidare.
Ett alternativ är
dir/w [ENTER]
Nu skrivs filnamnen i bredd (wide) så att fler får plats på skärmen.
Att gå (ned) till en viss mapp
Antag att du står i enhet G: och att mappen Java finns i denna enhet och att du vill gå till denna mapp.
Vid prompen skriver du då
cd Java [ENTER]
Prompten visar nu G:\Java>
(cd betyder change directory = byt mapp)
Att lämna en mapp (och gå uppåt i hierarkien)
Antag att du står i mappen G:\Java och vill gå "upp" (i detta fall till roten) igen.
Vid prompten skriver du
cd.. [ENTER]
Prompten visar nu åter G:\>
Kommandot cd.. tar dig till nivån närmast ovanför där du befinner dig.
Övning: DOS-kommandon.
Öva nu på ovanstående DOS-kommandon:
Växla mellan olika enheter. Om du jobbar på en lokal maskin kan du växla mellan hårddisk (C:) och diskett (A:)
Visa vad enheterna innehåller med kommandot dir
På den enhet där du normalt arbetar har du säkert ett antal mappar (och undermappar) vars namn och innehåll du
684090264
© Ove Lundgren
10
Kap 0: Sid 11
redan är välbekant med. Gå upp och ned i ”mapp-hierarkien” med cd-kommandot.
Visa vad mapparna innehåller med dir
(Öppna gärna Utforskaren samtidigt som jämförelse…)
Övning: Kompilera och kör programmet Happy
Gå till mappen X\Java\Happy
I DOS-fönstret:
Visa innehållet i mappen:
dir
( Filen Happy.java ska nu visas)
javac Happy.java
Kompliera
(var noga med gemener/VERSALER)
Vänta lite medan kompilering sker. Sedan:
Visa mappens innehåll igen
dir
( Filen Happy.class har skapats!)
Därefter: Exekvera
java Happy (var noga med gemener/VERSALER)
(Resultatet visas. Textsträngen ”Hej du glade” skrivs 10 gånger…)
Övning: Ändra Happy
Återgå till Anteckningar
Ändra så att programmet skriver textsträngen ”Mitt Java-program!” 20 gånger.
Spara (med samma namn)
I DOS: Kompilera och exekvera.
Övning: Windowsprogrammet MyFrame
Skapa mappen MyFrame under mappen Java
X
Java
Happy
MyFrame
Skapa ett nytt dokument i Anteckningar
Skriv in den kod som finns på nästa sida
(eller kopiera koden om den är tillgänglig som Word-dokument)
(Du behöver inte förstå koden nu…)
Spara koden med namnet MyFrame.java i mappen MyFrame
I DOS-fönstret: Öppna mappen X\Java\MyFrame
Kolla innehållet
dir
Kompilera
javac MyFrame.java
Kolla innehållet
dir
Exekvera
java MyFrame
684090264
© Ove Lundgren
11
Kap 0: Sid 12
Ett fönster (en "frame", ett Windows-program, en GUI-applikation…) med lite text visas.
Njut en stund - stäng sedan fönstret…
Här är koden till MyFrame.java
import java.awt.event.*;
import java.awt.*;
class MyFrame extends Frame implements WindowListener
{
public static void main( String args[])
{
MyFrame f;
f = new MyFrame();
f.setSize(300,200);
f.setVisible(true);
}
TextArea text1 = new TextArea();
public MyFrame()
{
add(text1);
text1.append("Hej du glade!");
addWindowListener(this);
}
public void windowClosing(WindowEvent e)
{
setVisible(false);
dispose();
System.exit(0);
}
public void windowClosed(WindowEvent e){ }
public void windowOpened(WindowEvent e){ }
public void windowIconified(WindowEvent e){ }
public void windowDeiconified(WindowEvent e){ }
public void windowActivated(WindowEvent e){ }
public void windowDeactivated(WindowEvent e){ }
}
Vi bryr oss inte, i det här skedet, om varför koden ser ut som den gör.
I nästa övning ska du ändra koden på några ställen. Du kan lätt gissa hur och var ändringarna ska utföras.
Övning: Ändra MyFrame
Ändra koden i MyFrame.java på några punkter:
Fönstret (frame) är nu 300 x 200 pixels. Ändra så att det blir (t ex) 500 x 100 pixels.
Byt ut textsträngen "Hej du glade!" så att utskriften blir (t ex) "Min första GUI-applikation!"
Spara (samma namn)
I DOS: Kompilera och kör!
Nu har du testat ett konsolprogram och ett GUI-program. Dags för en applet!
Nästa sida visar arbetsgången när man skriver, kompilerar och kör en applet.
Därefter följer ett praktiskt exempel.
684090264
© Ove Lundgren
12
Kap 0: Sid 13
Arbetsgång för att skriva och köra en applet
Skriv källkod och
spara Welcome.java
Kompilera
javac Welcome.java
Welcome.java (källkod)
Welcome.class (bytekod)
0010
1110
0011
0110
0011
…
…
import java.applet.Applet;
import java.awt.Graphics;
public class Welcome extends Applet
{ public void paint (Graphics g)
{
g.drawString("Välkommen till...
}
}
javac
Welcome.html
Skriv HTML-kod och spara
Welcome.html
Starta en webläsare
I denna:
Öppna Welcome.html
<html>
<head> </head>
<BODY>
<H1>Jag testar min applet!</H1>
<APPLET CODE="Welcome.class" WIDTH=300 HEIGHT=200>
/APPLET>
</BODY>
</html>
Jag testar min applet!
Välkommen till
Javaprogrammering
HTML ger
denna text
Det här är
vår applet!
Resultatet
684090264
© Ove Lundgren
13
Kap 0: Sid 14
Övning: Appleten Welcome
Skapa en ny mapp under mappen Java med namnet Welcome
I Anteckningar: Skriv av koden nedan exakt som den står
import java.applet.Applet;
import java.awt.Graphics;
public class Welcome extends Applet
{
public void paint(Graphics g)
{
g.drawString("Välkommen till JAVA",25,25);
}
}
Spara filen i mappen X\Java\Welcome med namnet Welcome.java (Skilj på gemener/VERSALER! )
Gå till DOS-prompten och navigera till mappen X\Java\Welcome
Kompilera:
javac Welcome.java
Visa innehåll:
dir
Om kompileringen gick bra har filen Welcome.class skapats.
I Anteckningar: Skapa en ny fil. Skriv av koden nedan:
<html>
<head>
</head>
<body>
<h1>Jag testar min applet! </h1>
<APPLET CODE="Welcome.class" WIDTH=300 HEIGHT=200 ></APPLET>
</body>
</html>
Spara filen i X\Java\Welcome med namnet Welcome.html
Öppna en webläsare (Netscape eller Explorer)
I denna klicka Arkiv – Öppna sida – Välj filen Welcome.html
Din web-sida visas…
Övning: Visa applets med appletviewer
Om man snabbt vill testa en applet (utan att se hela websidan) så kan man använda programmet
appletviewer.exe (som också ingår i Suns JDK)
Gör så här:
Gå till DOS-prompten, mappen X\Java\Welcome
Ge kommandot
appletviewer Welcome.html
Programmet appletviewer startar – appleten visas!
För att programmet appletviewer ska fungera krävs det att du har kompilerad kod (en class-fil) och en
html-fil. Kom ihåg att skriva hela html-filens namn, inklusive filnamnstillägget (.html)!
684090264
© Ove Lundgren
14
Kap 0: Sid 15
Utvecklingsverktyg för Java
Suns Java Development Kit (JDK)
Java är utvecklat av dataföretaget Sun
När man skriver Java-program arbetar man, som du snart kommer att märka, med något som kallas klasser (och
objekt av dessa klasser) Det finns ett stort antal färdiga sådan klasser, samlade i klassbibliotek.
I själva verket går programmeringen oftast ut på att använda (och komplettera) klasser som redan finns.
Det som behövs för att programmera Java är dessa klassbibliotek samt naturligtvis de program som du redan
har använt, nämligen kompilatorn javac.exe, interpretatorn java.exe samt appletviewer.exe
Allt detta (och en del annat) finns samlat i Suns utvecklingsverktyg Java Development Kit (JDK)
JDK kan laddas ned (gratis!) från Sun:s hemsida. (www.sun.com)
JDK version 1.0 kom 1995.
JDK version 1.1 kom 1997.
JDK version 1.2 kom 1998.
Hanterar Java 1.0
Hanterar Java 1.1
Hanterar Java 2 (som först kallades Java 1.2)
Senare versioner av utvecklingsverktyg för Java2 kallas Java2 SDK version 1.x
Java 1.1 och Java 2 skiljer inte mycket vad gäller grundläggande programmering.
Java 2 är större (innehåller betydligt fler klasser…)
Några tilläggspaket (som är standard i Java 2):
Java Swing som ger nya möjligheter att skapa användargränssnitt (”fönstret som användaren ser”)
Java 2D som ger förbättrad grafik
Större delen av programmen i denna kurs kan köras med utvecklingverktyg för Java 1.1
För vissa övningar krävs Java2
Om/När du laddar ned JDK hemma får du en självuppackande exe-fil. Dubbelklicka på den och JDK installeras!
Sun levererar vidare två utvecklingsverktyg för Java som heter JavaStudio respektive Java WorkShop.
Microsoft
MicroSoft har ett utvecklingsverktyg för Java kallat Visual J++ med en editor och diverse funktioner som
ibland underlättar programutveckling.
I Visual J++ version 1.0 och 1.1 arbetar man med en javaversion som motsvarar Java 1.0
I Visual J++ version 6 arbetar man med en javaversion som ungefär motsvarar Java 1.1
(plus en del ”MicroSoft-specifik Java”)
Symantec
Dataföretaget Symantec (som samarbetar med Sun) har ett utvecklingsverktyg vid namn Visual Café.
Här möter man en visuell programmeringsmiljö. Man kan skapa t ex en applet genom att dra ut knappar och
andra komponenter från en verktygslåda - ungefär som i VisualBasic, eller i Delphi (som är ett visuellt Pascalverktyg)
Borland
Borland har ett utvecklingsverktyg för Java som heter Java Builder
I denna kurs kommer vi mestadels att arbeta med JDK.
Editorer
Editorn Anteckningar känns lite ”gammaldags” att arbeta med.
Smidigare alternativ finns där man, bland annat, kan ha många filer öppna samtidigt och där det ges möjlighet
att lägga in DOS-kommandon (som javac, java etc) direkt i menyer.
(Det senare innebär att man slipper gå till DOS-prompten varje gång man ska kompilera och exekvera.)
TextPad, WinEdit, PFE och KAWA är exempel på editorer med dessa egenskaper.
684090264
© Ove Lundgren
15
Kap 0: Sid 16
Följande övning förutsätter att editorn TextPad ät tillgänglig och att man lagt in ovan nämnda DOS-kommandon
under menyn Tools i densamma.
Övning: TextPad
Öppna TextPad
Klicka File – Open och öppna filen i mappen X\Java\Happy
I menyn Tools välj javac
Vänta … Meddelande Process completed successfully visas på statusraden (längs ned)
I menyn Tools välj java
Programmet körs…
Kompilera och kör på samma sätt programmet MyFrame
Öppna nu filen Welcome.java
Ändra textsträngen "Välkommen till JAVA" till "Min första Java-applet!"
Spara och kompilera.
Öppna också Welcome.html
Sätt WIDTH = 500 HEIGHT=100
Spara
Med Welcome.html ”i bild” välj (under Tools) alternativet appletviewer
Applet Welcome visas…
Under menyalternativet Window i TextPad kan du välja vilken fil som ska visas, eller visa flera filer samtidigt i
olika fönster.
Observera:
När du kompilerar och kör måste det fönster vara aktivt som innehåller den aktuella koden (java-filen)
När du använder appletviewer ska det fönster vara aktivt som innehåller HTML-koden
Hanteringen underlättas, som du märker, väsentligt med en editor av detta slag.
Vi kommer huvudsakligen att arbeta med applets i den här kursen.
Du kommer att bli mycket van vid den metod för att kompilera och köra applets som du använde i den sista
övningen ovan.
684090264
© Ove Lundgren
16