Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.



Relevanta dokument
Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

Tentamen. DD2385 Programutvecklingsteknik vt Fredagen den 5 juni 2009 kl Inga hjälpmedel utom penna, sudd och linjal

Tentamen. DD2385 Programutvecklingsteknik vt 2014 Måndagen den 2 juni 2014 kl Hjälpmedel: penna, suddgummi, linjal

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Objektorienterad programmering i Java

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

OOP Objekt-orienterad programmering

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Tentamen. DD2385 Programutvecklingsteknik vt 2011 Tisdagen den 24 maj 2011 kl Hjälpmedel: penna, suddgummi, linjal

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

Grundläggande programmering med C# 7,5 högskolepoäng

Tentamen i Objektorienterad programmering

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

OOP Objekt-orienterad programmering

Tentamen. DD2385 Programutvecklingsteknik vt 2015 Fredagen den 5 juni 2015 kl Hjälpmedel: penna, suddgummi, linjal

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

SI-pass 4. Johan Brook och Jesper Persson. 25 september Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Tentamen, EDAA20/EDA501 Programmering

Objektorienterad programmering D2

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen. Grundläggande programmering i Java A 5p, DTAA

OOP Omtenta

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Tentamen OOP

Introduktion till arv

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

OOP Tentamen

Tentamen Programmeringsteknik II och NV2 (alla varianter) Skriv bara på framsidan av varje papper.

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag aug - 23 Tentamen i Objektorientering och Java Skrivtid 5 h

Föreläsning 13 Innehåll

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Klasshierarkier - repetition

Tentamen i EDAF25. 1 juni Skrivtid: Skriv inte med färgpenna enda tillåtna färg är svart/blyerts.

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Objektorienterad programmering

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/ Exempel: Implementation av Schackpjäser.

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Programmering för språkteknologer II, HT2014. Rum

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Tentamen i Programmering

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

OOP Tenta

Objektorienterad Programkonstruktion. Föreläsning jan 2016

Föreläsning 7. Träd och binära sökträd

Objektsamlingar i Java

Tentamen. DD2385 Programutvecklingsteknik vt Tisdag 7 juni 2016 kl

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Tentamen. DD2385 Programutvecklingsteknik vt Tisdagen den 26 maj 2009 kl Inga hjälpmedel utom penna, sudd och linjal

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Övningar Dag 2 En första klass

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/ Exempel: Implementation av Schackpjäser.

Lösningar till tentamen i EDAF25

TENTAMEN OOP

Föreläsning 13 och 14: Binära träd

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Tentamen i Grundläggande programmering STS, åk 1 fredag

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Tentamen, EDA501 Programmering M L TM W K V

Föreläsning 1 & 2 INTRODUKTION

Arv. Objektorienterad och komponentbaserad programmering

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Tentamen i Grundläggande programmering STS, åk 1 lördag

DAT043 Objektorienterad Programmering

Tentamen. Lösningsförslag

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

SMD 134 Objektorienterad programmering

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

Föreläsning 10. ADT:er och datastrukturer

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

OOP Objekt-orienterad programmering

public interface Skrivbar { void skriv(); } public class Punkt implements Skrivbar { public double x; public double y;

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Objektorienterad Programmering (TDDC77)

Repetition av viktiga begrepp inom objektorienterad programmering

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Transkript:

Tentamen 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.00, sal E33 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel tillåtna och på problemdelen är alla skriftliga hjälpmedel tillåtna. Man löser teoridelen först, lämnar in den, hämtar problemdelen och tar sen fram sina böcker m.m. Använd inte mer än 2 timmar till teoridelen! Teoridelen har 20 poäng och problemdelen har 30 poäng. Dessutom kan man få tentapoäng för avklarade laborationer. 1-2 labmoment klara ger 1 bonuspoäng, 3-4 labmoment klara ger 2 bonuspoäng och om man gjort samtliga labmoment så får man 4 bonuspoäng som läggs till det man erhåller på tentan. 25 poäng varav minst 10 poäng från tentans problemdel ger säkert godkänt. Preliminära gränser för betygen 4 och 5 är 35 respektive 45. Teoridel T1) (2p) Förklara begreppet dynamisk bindning och vad man använda det till. T2) (2p) Vad är ett ramverk (framework) inom objektorienterad programmering? Vad är det för skillnad på ett ramverk och ett designmönster? T3) (2p) Förklara principen programmera mot ett gränssnitt och inte mot en implementation och nämn någon fördel med att göra så. T4) (3p) Beskriv mönstret Composite, vad dess syfte är, vilka delar som ingår. Rita gärna både ett UML-klassdiagram och ett objektdiagram för en exempeltillämpning. T5) (1p) Ett försök att implementera mönstret Singleton i Java resulterade i följande kod. Tyvärr fungerar inte klassen som det är tänkt. Vad är det som ska ändras för att det ska bli en riktig Singleton? class Singleton { private Singleton theinstance = new Singleton(); private Singleton() { public String tostring() { return "The One and Only"; public static Singleton getinstance() { return theinstance; 1

Frågorna 6 15 är flervalsfrågor, skriv alla svar på samma blad! T6) Antag att vi har klassen Ruta samt att konstanten N har ett värde >0. Vi vill skapa en vektor med N st Ruta objekt. Ruta har en parameterlös konstruktor. Betrakta följande programrader. Ruta[] ruta; // 1) ruta = new Ruta[N]; // 2) for (int i=0; i<n; i++) // 3) = hela for-satsen ruta[i] = new Ruta(); Vad behövs för att skapa den önskade vektorn? A) Alla satserna 1), 2) och 3) måste vara med B) Satserna 1) och 3) behövs. 2) är fel och måste strykas. C) Satserna 1) och 3) behövs. 2) är inte fel men behövs ej. D) Satserna 1) och 2) behövs men inte 3) T7) Konstruktor vid arv. Vad skall det stå vid *** iklassentorn? class Pjäs { int x; Pjäs (int x) {... class Torn extends Pjäs { Torn (int x) { ***... A) Det måste stå this.x = x; B) Det måste stå Pjäs(w); där w har typen int. C) Det måste stå super(w); där w har typen int. D) Inget av A), B) och C) är rätt, man kan t.ex. lämna tomt. T8) Antag att en instansmetod i klassen C är märkt med synchronized, dvsbörjar t.ex. public synchronized void m(). Metoden anropas via referensen r: r.m() Vilket påstående är rätt? A) Under exekvering av r.m() kan andra trådar inte anropa några metoder alls i det objekt som r refererar till. B) Under exekvering av r.m() kan andra trådar inte anropa några metoder som är märkta synchronized i det objekt som r refererar till. C) Under exekvering av r.m() sker en synkroniserad skräpsamling. D) Metoden m får inte anropa några andra metoder i det objekt som r refererar till. 2

T9) Javas klasser för strömmar är uppbyggda enligt ett välkänt designmönster. Vilket då? A) Template Method B) Composite C) Decorator D) Iterator T10) Vilket designmönster används i exemplet nedan? abstract class Date {... class SwedishDate extends Date {... class ChineseDate extends Date {... class NorwegianDate extends Date {... abstract class Document { abstract Date makedate(); // Flera konkreta metoder class SwedishDocument extends Document { Date makedate () { return new SwedishDate(); class ChineseDocument extends Document { Date makedate () { return new ChineseDate(); A) Factory Method B) Proxy C) Composite D) Observer T11) Vilket av följande påståenden om arbetssättet Extreme Programming, XP är falskt? A) XP-programmerare arbetar i par. B) XP är en iterativ process. C) Testning av små och stora moduler görs ofta, man kan t.o.m. säga att XP är en testdriven metodik. D) Man skriver först en noggrann systemspecifikation och håller sig sedan till den. 3

T12) Klassen Test har fyra metoder. En skall bort! En av metoderna är felaktig och gör att det inte går att kompilera klassen. Vilken då? class Test { static int sv = 17; int iv = 42; static int ma () { return sv; static int mb () { return iv; int mc () { return iv; int md () { return sv; A) ma B) mb C) mc D) md T13) Vilket av följande alternativ beskriver bäst termen refactoring? A) Uppdelning av programkoden i många små delar (klasser och metoder). B) Förbättring av programkoden utan att programmets yttre funktion ändras. C) Upprepad testning av ett program allteftersom det byggs ut. D) Förbättring av det gränssnitt ett program visar mot användaren med så lite förändringar av programkoden som möjligt. T14) Vilket av följande påståenden om arv/implementation i Java är sant? A) En klass kan ärva från två eller flera konkreta klasser, class Z extends X, Y... B) En klass kan ärva från två eller flera abstrakta klasser C) En klass kan implementera två eller flera gränssnitt (interface), class Z implements I1, I2.. D) När en klass implementerar ett gränssnitt med två metoder så kan man välja att i klassen skriva en implementation av endast en av dem. Den andra ges då en tom implementation som standard. 4

Studera följande två klasser: class Glass { String sort; String omdöme; Glass (String s, String o) { sort = s; omdöme = o; void sättomdöme (String o) { omdöme = o; public String tostring() { return sort + " fick omdömet " + omdöme; class GlassTest { public static void main(string[] x) { Glass banan = new Glass("Banan med basilika", "I NÖDFALL"); Glass hallon = new Glass("Hallon-vaniljdröm", "SOMMARENS GODASTE"); mysko(banan, hallon); System.out.println(banan); System.out.println(hallon); static void mysko (Glass g1, Glass g2) { g2.sättomdöme("favoriten"); Glass tmp = g1; g1 = g2; g2 = tmp; T15) Vad blir utskriften från main metoden? A) Hallon-vaniljdröm fick omdömet FAVORITEN B) Hallon-vaniljdröm fick omdömet SOMMARENS GODASTE C) Hallon-vaniljdröm fick omdömet FAVORITEN D) Hallon-vaniljdröm fick omdömet SOMMARENS GODASTE 5