Tentamen i Webbprogrammering med Java
14 januari 1999, kl 15.00 - 19.00
Tid: 4 timmar (du får gå tidigast efter 30
minuter)
Hjälpmedel: valfri Java-litteratur inkl
föreläsningsanteckningar
För godkännande krävs 25 p av 45 möjliga.
Du får behålla denna tentamen.
Lycka till!
- När en klass utnyttjar överlagring (overloading) av
metoder och innehåller flera metoder med samma namn, vad
är det som bestämmer vilken som kommer att användas
när man anropar metoden?
(2 p)
- Om paket...
- Vilka satser måste du lägga till i din
källkod för att importera alla klasser och
underklasser i paketet java.util, inklusive dess underpaket
zip?
- Var i källkoden måste dessa satser
stå?
(3 p)
- Vad är skillnaden mellan nyckelorden
throws
och throw
?
(2 p)
- Vilka av följande klasser är bytebaserade, och vilka
är teckenbaserade?
InputStream
, OutputStream
,
Reader
, Writer
och
RandomAccessFile
.
(2 p)
- Rita av och komplettera klasshierarkin med klasser från
java.io
:
- Object
- _________
- __________
- __________
- __________
- BufferedInputStream
- DataInputStream
- LineNumberInputStream
- PushbackInputStream
- ObjectInputStream
- PipedInputStream
- __________
- StringBufferInputStream (deprecated)
(3 p)
- Om händelser...
- Om du trycker ner musknappen på en
Panel och sen släpper upp den direkt, vilka
händelser ger detta upphov till?
- Om du gör samma sak men släpar musen innan du
släpper upp musknappen, vilka händelser får
Panelen då?
(4 p)
- Du har en Applet kallad SortList med en
List-komponent kallad lista och en
Button kallad knapp. I listan finns osorterade
ord. När du klickar på knappen skall listan sorteras i
bokstavsordning. Du kan utnyttja en given metod i appletten kallad
sort med signaturen
void sort(String[] a) som sorterar
vektorn a. Du behöver troligen också
använda List-komponentens removeAll metod
med signaturen void removeAll() som tar bort alla
listelement. Skriv metoden
void knapp_actionPerformed(ActionEvent ae) som
sorterar listan.
(6 p)
- Appletten SortList har parametern words som
innehåller en plusseparerad lista med ord som skall
läsas in i listan vid init. Exempel på lista:
"och+sådan+kanske". Skriv det kodfragment som
läser in listan i List-komponenten lista.
(5 p)
- Skriv SortList's APPLET-tagg som skall
läggas in i en html-fil. Glöm inte parametern
words med några valfria ord. Appletten är 400
x 300 pixel stor.
(4 p)
- Vilket attribut till APPLET-taggen anger att
applettens class-filer finns i en annan mapp än html-filen?
(1 p)
- Du har en Java-applikation med TextField kallad
inputText och en TextArea kallad
outputText. Man ska kunna skriva en text i
inputText och tecken för tecken skall den
översättas till morsekod och skrivas ut i
outputText. Skriv metoden
void inputText_keyTyped(KeyEvent ke).
Använd char ke.getKeyChar() för att
få reda på vilket tecken som skrevs och en
switch-konstruktion för att översätta det.
Det räcker om metoden klarar S=..., O=---
och E=., men den skall lätt kunna byggas ut till att
klara alla tecken. (Bortse från hantering av Backspace och
övriga redigeringsoperationer.)
(4 p)
- En i taget...
- Med vilket nyckelord kan du göra så att
en metod eller ett block endast kan köras av en tråd
åt gången?
- Vad händer med andra trådar som anropar metoden
eller försöker komma in i blocket som är
spärrat med nyckelordet?
(2 p)
- När du ärver från en annan klass än
Thread, vilket interface måste då
implementeras för att den nya klassen skall kunna köra
trådar?
(1 p)
- Skriv en metod kallad getDaysTo2k som returnerar ett
heltal som anger hur många dagar det är kvar till
år 2000.
(3 p)
- Skriv run metoden till en applet som uppdaterar (var
500:e ms) hur många dagar det är kvar till år
2000 i en Label kallad daysTo2k.
Förutsätt att metoden int getDaysTo2k()
finns.
(3 p)
Copyright © 1998 by Mikael
Bonnier, Lund, Sweden