CSC

 

Exempel på frågor till tentans del I

Obs! Det kan komma andra frågor än dessa på tentan!

Frågor

  1. Ange två skillnader mellan Javas grafikpaket swing och awt.
  2. a. Om man vill försäkra sig om att ett program kan skapa endast ett objekt av en klass, hur gör man?
    b. Vad kallas designmönstret?
  3. Vilket är syftet med designmönstret Singleton? (variant av föregående fråga)
  4. Vad kallas det designmönster som tillämpas av Javas lyssnarklasser och lyssnarinterface och de grafiska komponenter som kan lyssnas på ?
  5. Vad betyder MVC inom programutveckling ?
  6. Vilken roll spelar MVC för Javas swing-komponenter ?
  7. Vad är ett interface i java ?
  8. Vad är en abstrakt klass i Java?
  9. Vad är skillnaden mellan abstrakt klass och interface i Java ?
  10. Vad är en Layout-manager i Java?
  11. Rita ett UML-klassdiagram över följande schematiska kombination av klasser och interface. Tänk på att öppna och slutna pilspetsar betyder olika saker och att heldragna och streckade linjer också har olika betydelser!
    interface I {
      void metoden();
    }
    
    class A {...}
    
    class B extends A { 
      private C[] c = new C[49];
    
      B() {
        for (int i=0; i<49; i++)
          c[i] = new C(...);
      }
      ...
    }
    
    class C implements I {
       A theA;
       ...
    }
  12. Vad är fördelen med att ha inre klasser? Finns det någon nackdel?
  13. Vilka (minst tre) Javaklasser behöver man definitivt för att skriva ett serverprogram som kan hantera flera klienter samt ett klientprogram ? Vilka två viktiga data om servern behöver ett klientprogram för att kunna koppla upp sig ?
  14. Om två olika trådar samtidigt försöker ändra ett vaialbelvärde så kan det bli problem (t.ex. om trådarna är bankomater och variabeln är saldot på ett bankkonto). Vilket är problemet och hur löses det i Java ?
  15. En klassdeklaration börjar så här:
      <m1> class C {
        <m2> void m() { ... }
    
    ... symboliserar metodkropp och <m1> resp. <m2> står för en modifierare: private, protected, public eller ~, där det sista får symbolisera att man inte skriver något alls. I ett annat paket än det där C ligger vill vi ha en klass som ärver från C och definierar om metoden m().

    a. Vad ska det stå i stället för <m1>?
         A) protected    B) private     C) ~    D) public

    b. Vad ska det stå i stället för <m2> ?
    A) protected eller private    B) protected eller ~    C) protected eller public    D) public eller ~

  16. Vad blir utskriften från följande program ?
    class X {
        void m () { System.out.print("Hej "); }
    }
    
    class Y extends X {
        void m () { System.out.print("Hopp "); }
    }
    
    class HejHopp {
        public static void main (String[] a) {
            X x1 = new X(); X x2 = new Y(); Y y = new Y();
            x1.m(); x2.m(); y.m();
            System.out.println();
        }
    }
    
    A) Hej Hej Hopp
    B) Hej Hopp Hopp
    C) Hej Hej Hej
    D) Hopp Hopp Hopp

  17. Vad menas med ramverk (framework) i programutvecklingssammanhang ? Ge några exempel från Java-API:n.
  18. Om variabeln a referear till en objektsamling (t.ex. en ArrayList eller LinkedList) så kan man under vissa förutsättningar få samlingen sorterad genom att anropa metoden Collections.sort(a). Vad måste gälla för att sorteringen ska gå att genomföra?
  19. I Java kan man inte direkt ha en funktion (metod) som parameter till en metod, dvs man kan inte anropa rita(f1) och rita(f2) där f1 och f2 är funktioner. Hur åstadkommer man att rita kan använda olika funktioner vid olika anrop i samma programkörning, alltså utan att kompilera om programmet emellan (det duger inte att välja funktion med if-sats)? Vad kallas designmönstret (det finns två snarlika) ?
  20. Vad menas med "Mock Object" och vilken fördel är det att använda den tekniken ?
  21. Vad är en fabriksmetod? Nämn två skäl för att använda sådana.
  22. Om du har tillgång till ett Java-ramverk med 112 klasser fördelade på tre paket och ofta behöver använda ett par kombinationer av metoder ur 7 av dessa klasser, vilket designmönster är lämpligt att använda för att underlätta ?
  23. Om N st objekt som inte känner till varandra (alltså inte har referenser till varandra) ska utbyta information, vilket designmönster kan då användas ? Hur sker kommunikationen ?
  24. Para ihop arbetssätten Vattenfall och eXtreme Programming med följande karakteristika:
    a) Testfasen ligger sent i projektet
    b) Programmeringen sker i par
    c) Systemspecifikation görs tidigt
    d) Kunden/beställaren är med hela tiden i projektet
  25. Beskriv skillnaden mellan Code-and-fix och Rapid prototyping.

Sidoansvarig: <ann "at"nada.kth.se>
Senast ändrad 23 maj 2010
Tekniskt stöd: <webmaster@nada.kth.se>