Tentamen i Webbprogrammering med Java

17 december 1998, kl 17.00 - 21.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 svara på uppgifterna i valfri ordning, men ange tydligt vilken uppgift du svarar på.
Du får behålla dessa papper. Rätta svar och så småningom resultat och datum för visning och eventuell omtenta anslås på kursens webbplats. E-post när detta är klart skickas ut.
Lycka till!


  1. Vad blir skillnaden i åtkomst mellan metoder och datafält, modifierade med private, protected, public och "default" (dvs ingen modifierare)? Tag hänsyn till arv och paket.

    (4 p)


  2. Rita av och komplettera AWT-klasshierarkin (du får gärna rita om den som ett upp-och-nedvänt träd):
    • Object
      • ______
        • ______
        • Canvas
        • ______
        • ______
        • ______
          • ______
            • ______
          • ScrollPane
          • ______
            • ______
              • FileDialog
            • ______
        • ______
        • ______
        • ______
        • TextComponent
          • ______
          • ______

    (5 p)


  3. Rita av och komplettera klasshierarkin hämtad från paketet java.lang:
    • Object
      • ______
        • Integer
        • ______
        • ______
        • ______
        • ______
        • ______

    (3 p)


  4. Rita av och komplettera klasshierarkin hämtad från paketet java.util:
    • Object
      • ______
        • ______
          • Properties

    (1 p)


  5. Vad är gemensamt för klasserna direkt under Object i ovanstående uppgifter? Det är en egenskap som skiljer dessa från t ex Object.

    (1 p)


  6. Vad är skillnaden mellan operatorena >> och >>>?

    (2 p)


  7. Om i är 3 och j är 4, vad blir i+++j? Visa hur uttrycket beräknas. Vad är i resp j efter det att detta uttryck har beräknats?

    (2 p)


  8. Vad betyder RMI?

    (1 p)


  9. Vilka möjligheter ger RMI i kombination med JDBC? Rita en skiss över ett typiskt system.

    (3 p)


  10. Vad måste man göra precis innan man kan starta en RMI-server?

    (1 p)


  11. Vad är skillnaden mellan sockets och datagram?

    (2 p)


  12. Skriv en metod howSick() som tar ett flyttal (febern i oC) som inargument och som returnerar en sträng med ett läkarutlåtande som kan vara: farligt låg, låg, frisk, hög, eller farligt hög. Bestäm själv temperaturgränserna.

    (5 p)


  13. En del av undantagshierarkin ser ut så här:
    • Exception
      • IOException
        • FileNotFoundException
        • EOFException
      • RunTimeException

    Vad är det för fel på catch:arna i följande kod? Skriv det rätta.

    try {
      ...
    } catch(Exception e) {
      ...
    } catch(IOException e) {
      ...
    } catch(FileNotFoundException e) {
      ...
    }

    (3 p)


  14. Förbättra paint-metoden så att den använder double buffering (förutsätt vissa medlemsvariabler och vissa anrop i init-metoden):
    public void paint(Graphics g) {
       // Add double buffering code here
       g.setColor(Color.pink);
       .
       .
       g.fillOval(0, 0, x2, y2);
       g.setColor(Color.black);
       g.drawOval(0, 0, x2, y2);
       .
       .
       // And here
    }

    Lägg även till en lämplig update-metod. (Denna paint-metod är hämtad från NewGraph - ellipsritarprogrammet.)

    (5 p)


  15. Skriv en applet som laddar en bakgrundsbild vid initiering och som spelar upp ett ljud varje gång man trycker på en knapp. Ljudet skall spelas med hjälp av interfacet AudioClip:s play-metod. Appletten skall ha parametrarna image och sound som innehåller filnamnen för bilden respektive ljudet. Filerna skall ligga i samma mapp som html-filen. Skriv även ett exempel på applet-taggen som skall läggas in i html-dokumentet.

    (7 p)


Copyright © 1998 by Mikael Bonnier, Lund, Sweden