Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Relevanta dokument
FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

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

a. Vilka av följande påståenden är riktiga? Observera att felaktigt valda påståenden ger poängavdrag. (4p)

Högskolan Dalarna sid 1 av 5 DI-institutionen Hans-Edy Mårtensson Sten Sundin

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

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Micael Karlsson

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

TENTAMEN OOP

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering May 29, 2012

LÖSNINGSFÖRSLAG TENTAMEN

FÖRSLAG TILL LÖSNINGAR, TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2, , kl

DAT043 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Introduktion till arv

TENTAMEN OOP

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Föreläsning 13 Innehåll

TENTAMEN I DATAVETENSKAP

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

JAVA Mer om klasser och objektorientering

Föreläsning 5-6 Innehåll

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

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Chapter 4: Writing Classes/ Att skriva egna klasser.

Föreläsning 3-4 Innehåll

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

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

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

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

2D1339 Programkonstruktion för F1, ht 2004

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Classes och Interfaces, Objects och References, Initialization

Instuderingsfrågor, del D

Objektorienterad Programmering DAT043. Föreläsning 5 29/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

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

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Typkonvertering. Java versus C

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

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

Tentamen ID1004 Objektorienterad programmering April 7, 2015

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

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

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Datatyper. Programmering. Att definiera datatyper i Java. Laddade partiklar. (x,y) (Rx,Ry) hh.se/db2004

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).

Tentamen OOP

Tentamen i Programmering

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

SMD 134 Objektorienterad programmering

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

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

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

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

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

2D1339 Programkonstruktion för F1, ht 2003

Agenda. Objektorienterad programmering Föreläsning 13

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

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

Objektorienterad programmering i Java

F4. programmeringsteknik och Matlab

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

Modern Programmering (2546) Tentamen lördag

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

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

Laboration 1 - Grunderna för OOP i Java

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

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

Klasshierarkier - repetition

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Programmering för språkteknologer I, VT2012. Rum

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

Statistik över heltal

Polymorfi. Objektorienterad och komponentbaserad programmering

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Föreläsning 8: Exempel och problemlösning

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

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

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.

DAT043 - Föreläsning 7

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

OOP Tenta

Malmö högskola 2008/2009 CTS

Java, klasser, objekt (Skansholm: Kapitel 2)

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Transkript:

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna Återlämningstillfälle: fredag den 6/4 kl 12.00 i S200. Max: 66 poäng, för godkänt krävs 50%. Skriv tydliga och kortfattade svar! 1. Grunderna i Java (10p) a) En konstruktor används för att (1p) I. Återlämna allokerat minne II. Initiera ett objekt i samband med att det skapas III. Importera paket IV. Skapa en virtuell Java maskin för applets b) Ett program skrivet i Java kan exekvera på flera olika plattformar på grund av att (1p) I. Språket Java utvecklades ursprungligen från C++ II. Den virtuella Java maskinen tolkar programmet för den specifika plattformen III. Kompilatorn är identisk med C++ kompilatorn IV. "Application Programming Interface" utför nödvändigt arbete c) En kommentar i Java-kod kan markeras enligt alternativ: (1p) I. (*en kommentar*) II. /**en kommentar III. en kommentar IV. /*en kommentar*/

d) Vilka krav på minnesutrymme uttryckt i antal bitar (bit), har följande datatyper: (2p) int, double, float, long, byte, char e) Betrakta följande kod: class Test int x = 1; void skriv() int y = 2; for (int i=0; i<10; i++) int x = 0; x += i; y = i; System.out.println("x = " + x); System.out.println("y = " + y); Vilken utskrift genererar metoden "skriv()"? (2p) f) Här följer en skiss till ett program //-Demo------------------------------------- Skapa och initiera variabel "tala" till 1.2 Skapa och initiera variabel "talb" till 2.3 add returnerar summan av de båda parametrarna main Skapa variabel "resultat" Tilldela "resultat" resultatet från anropet add(tala, talb) Skriv ut värdet på variabeln "resultat" till datorns bildskärm //------------------------------------------ Skriv ett fullständigt program som fungerar enligt ovanstående skiss. (3p) 2

2. Fält och Strängar. Arv och gränssnitt. (8p) a. Följande sats deklarerar och skapar ett fält cirklar med tre referenser till objekt av typen Cirkel. (Alla element är referenser som initieras till null) (2p) Cirkel[] cirklar = new Cirkel[3]; Skriv koden för att initiera elementobjekten i fältet cirklar. b. Klassen Object innehåller bl.a metoderna equals() och tostring() som kan användas eller omdefinieras i samtliga klasser. Vad gör dessa metoder? (2p) c. Betrakta följande klasser public class Base public void print(int num) System.out.println(num); public class Derived extends Base public void print(string s) System.out.println(s); Vilka av följande påståenden är sanna? (2p) 1. printmetoden i klassen Base överskuggas (override) i klassen Derived. 2. printmetoden i klassen Base överlagras (overload) i klassen Derived. 3. Båda printmetoderna kan anropas på ett objekt av klassen Derived. 4. Båda printmetoderna kan anropas på ett objekt av klassen Base. d. I Java sammanhang använder man nyckelorden abstract och final i samband med att man deklarerar klasser. Beskriv vad dessa nyckelord innebär. (2p) 3

3. Användargränssnitt, Händelsehantering, Grafik och Applets (8p) a. Vad är den stora skillnaden mellan en traditionell procedurell programmering och en händelsestyrd programmering? (2p) b. Vad behöver en Java-programmerare göra för att hantera en händelse som initierats av användaren? Beskriv med kod de steg som krävs för att hantera en händelse, t.ex. att användaren klickar på en knapp. (3p) c. Vad används klassen Canvas till? Vilken metod överskuggas oftast i en klass som ärver från klassen Canvas? (2p) d. Vad händer med appletens storlek på skärmen om vi ökar bildskärmens upplösning? (1p) 4. Dataströmmar (10p) Skriv ett program som frågar användaren om ett tal. Talet läses in från tangentbordet. Därefter beräknar programmet kvadraten av talet, d v s multiplicerar talet med sig själv. Slutligen så skriver programmet ut det inlästa talet och dess kvadrat till en textfil med namnet "resultat.txt". (10p) 5. RMI (10p) a) Förklara begreppet "marshaling" (2p) b) Vad är "skeleton"? (2p) c) Beskriv en viktig skillnad mellan RMI och CORBA. (2p) d) Vad är "rmiregistry"? (2p) e) Vad är "rmic"? (2p) 4

6. JSP (10p) a) Beskriv hur en begäran av en JSP-sida hanteras av webservern. (5p) b) Här följer en HTML-sida <html> <head><title>intresseanmälan</title></head> <body> <center> <h1>intresseanmälan</h1> Anmäl ditt intresse och få fortlöpande information<br> via e-post genom att fylla i formuläret nedan:<br><br><br> </body> </html> <form action="intresse.jsp" method="get"> Ditt namn: <input type="text" name="namn" size="30"><br> Din E-post: <input type="text" name="elpost" size="30"><br><br> <input type="submit" value="skicka in!"> <input type="reset" value="radera!"> </form> Skriv den JSP-sida som formuläret anropar. (5p) JSP-sidan ska bekräfta att den har tagit i mot informationen, genom att sända tillbaka en ny htmlsida till klienten i vilket användarens namn och elpost-adress förekommer. 5

7. Trådar (10p) Den här uppgiften består av två deluppgifter. Deluppgift b bygger på deluppgift a. Därför bör du lösa deluppgift a innan du löser deluppgift b. Studera följande kod public class Burk private int antalkakor = 0; public void läggtillkakor(int antal) antalkakor += antal; public void tabortkaka() antalkakor--; public class Bagare extends Thread private Burk kakburken; public Bagare(Burk kakburk) kakburken = kakburk; public void run() int bakplåt = 0; while (bakplåt < 10) kakburken.läggtillkakor(20); bakplåt++; public class Bageri public static void main(string[] arg) Burk burken = new Burk(); Bagare erik = new Bagare(burken); erik.start(); a) Modifiera koden i klass Bagare så tråden sover 1 sekund efter varje gång som kakburken har fyllts med 20 stycken kakor. Observera att all kod inte behöver upprepas i din lösning förutsatt att det tydligt framgår var dina ändringar förekommer i den ursprungliga koden. (5p) 6

b) Förutsätt att följande klass även förekommer. public class Kund extends Thread Burk kakburken; public Kund(Burk kakburk) kakburken = kakburk; public void run() int antal = 0; while (antal < 200) kakburken.tabortkaka(); antal++; System.out.println("Jag mår inte riktigt bra..."); Samt att main-metoden i klassen Bageri är ändrad enligt följande: public class Bageri public static void main(string[] arg) Burk burken = new Burk(); Bagare erik = new Bagare(burken); erik.start(); Kund sara = new Kund(burken); sara.start(); Kunden "sara" tar bort kakor ur burken, bagaren "erik" fyller på kakor. Efter varje påfyllning så sover bagarens tråd 1 sekund i enlighet med deluppgift a. Modifiera koden så att kunden väntar till dess att bagaren har fyllt på burken, om burken är tom när kunden ska ta nästa kaka. Observera att all kod inte behöver upprepas i din lösning förutsatt att det tydligt framgår var dina ändringar förekommer i den ursprungliga koden. (5p) 7