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!


  1. 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)


  2. Om paket...
    1. 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?
    2. Var i källkoden måste dessa satser stå?

    (3 p)


  3. Vad är skillnaden mellan nyckelorden throws och throw?

    (2 p)


  4. Vilka av följande klasser är bytebaserade, och vilka är teckenbaserade?
    InputStream, OutputStream, Reader, Writer och RandomAccessFile.

    (2 p)


  5. Rita av och komplettera klasshierarkin med klasser från java.io:
    • Object
      • _________
        • __________
        • __________
        • __________
          • BufferedInputStream
          • DataInputStream
          • LineNumberInputStream
          • PushbackInputStream
        • ObjectInputStream
        • PipedInputStream
        • __________
        • StringBufferInputStream (deprecated)

    (3 p)


  6. Om händelser...
    1. Om du trycker ner musknappen på en Panel och sen släpper upp den direkt, vilka händelser ger detta upphov till?
    2. 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)


  7. 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)


  8. 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)


  9. 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)


  10. Vilket attribut till APPLET-taggen anger att applettens class-filer finns i en annan mapp än html-filen?

    (1 p)


  11. 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)


  12. En i taget...
    1. 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?
    2. 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)


  13. 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)


  14. Skriv en metod kallad getDaysTo2k som returnerar ett heltal som anger hur många dagar det är kvar till år 2000.

    (3 p)


  15. 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