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

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

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

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.

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

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

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

Tentamensskrivning Nätverksprogrammering (EDA095 - FED) , kl 8-13

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

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

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

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

Lösningar för tenta 2 DAT043,

Tentamen Nätverksprogrammering Lösningsförslag

Att skriva till och läsa från terminalfönstret

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

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

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

Föreläsning 13 Innehåll

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

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

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016

Introduktion till arv

TENTAMEN OOP

Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013

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

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

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

Föreläsning 5-6 Innehåll

Språkkonventioner och redigering av tal.

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

Classes och Interfaces, Objects och References, Initialization

F4. programmeringsteknik och Matlab

Tentamen ITK:P2. Inga hjälpmedel tillåtna förutom penna och papper. Skriv tydligt och texta gärna. 14 st frågor, 70 poäng.

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java

Fakulteten för ekonomi, kommunikation och IT. Corba. Datum: Mathias Andersson

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

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

Tentamen Nätverksprogrammering Lösningsförslag

Föreläsnings 9 - Exceptions, I/O

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

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

Objektorienterad programmering i Java

Föreläsning 11 Aktiva objekt och trådar, strömmar, kommunikation DAT043,

DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU

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

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

Tentamen ID1004 Objektorienterad programmering May 29, 2012

DAT043 - Föreläsning 7

Tentamensskrivning Nätverksprogrammering (EDA095) , kl 8-13

Föreläsning 3-4 Innehåll

Målen med OOSU. Objektorienterad programmering. Objektorienterad programmering. Karlstads Universitet, Johan Öfverberg 1

Tentamen Nätverksprogrammering Lösningsförslag

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

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

5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har

Lab5 för prgmedcl04 Grafik

Lösningsförslag till tentamen

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

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

DAT043 Objektorienterad Programmering

Fortsättningskurs i programmering F 5. GUI händelsehantering - undantagshantering Hugo Quisbert AWT. Paket för hantering av grafik

Tentamen Nätverksprogrammering Lösningsförslag

Polymorfi. Objektorienterad och komponentbaserad programmering

TENTAMEN OOP

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

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

JAVAUTVECKLING LEKTION 7

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

Concurrency Saker händer samtidigt. Process En instans av ett program

Chapter 4: Writing Classes/ Att skriva egna klasser.

Kopiering av objekt i Java

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.

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

Distribuerade system. CORBA eller RMI

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

Java, klasser, objekt (Skansholm: Kapitel 2)

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

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

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Föreläsningsmaterial (Arv) Skrivet av Andreas Lund

SMD 134 Objektorienterad programmering

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

Tentamen OOP

Objektorienterad Programkonstruktion. Föreläsning jan 2016

Parallellism, återblick

TDDC77 Objektorienterad Programmering

Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016

LÖSNINGSFÖRSLAG TENTAMEN

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Laborationer, moment 4 5

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

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

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Laborationer, moment 4 5

Programmeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt

Transkript:

Högskolan Dalarna sid 1 av 6 DI-institutionen Hans-Edy Mårtensson Sten Sundin FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 1. Grunderna i Java (10p) a) En konstruktor används för att (1p) II. Initiera ett objekt i samband med att det skapas b) Ett program skrivet i Java kan exekvera på flera olika plattformar på grund av att (1p) II. Den virtuella Java maskinen tolkar programmet för den specifika plattformen c) En kommentar i Java-kod kan markeras enligt alternativ: (1p) IV. /*en kommentar*/ d) int, 32 bitar double, 64 bitar float, 32 bitar long, 64 bitar byte, 8 bitar char, 16 bitar e) x = 1 y = 9

f) //-Demo------------------------------------- public class Demo //Skapa och initiera variabel "tala" till 1.2 private static double tala = 1.2; //Skapa och initiera variabel "talb" till 2.3 private static double talb = 2.3; public static double add(double tal1, double tal2) //returnerar summan av de båda parametrarna return tal1 + tal2; public static void main(string[] arg) //Skapa variabel "resultat" double resultat; //Tilldela "resultat" resultatet från anropet add(tala, talb) resultat = add(tala, talb); //Skriv ut värdet på variabeln "resultat" till datorns bildskärm System.out.println("Resultat: " + resultat); //------------------------------------------ 2. Fält och Strängar. Arv och gränssnitt. (8p) a. Initiering av elementobjekten måste göras explicit med: for (int i = 0; i < cirklar.length; i++) cirklar[i] = new Cirkel(); b. Ett objekt kan omvandlas till en strängrepresentation med metoden tostring() som returnerar en sträng som representerar värdet av objektet. Metoden överskuggas i de klasser där den ska användas. Metoden equals(obect obj) jämför två objektreferenser. Returnerar som default "true" endast om referenserna går till samma objekt. Metoden bör överskuggas om likhet istället skall avgöras med avseend på objektens värden. c. Påstende 2 och 3 är sanna d. abstract - en abstrakt klass är en klass där en eller flera metoder är deklarerade, men inte definierade. Detta innebär att man inte kan skapa en instans av klassen utan en subklass måste ärva den abstrakta klassen och definiera de abstrakta metoderna för att subklassen skall kunna instansieras. final - om man deklarerar en klass som final, innebär att inga klasser kan ärva från klassen som är deklarerad final. Det är även möjligt att deklarera metoder som final och då går det inte att överskugga dessa metoder i subklasser. 2

3. Användargränssnitt, Händelsehantering, Grafik och Applets (8p) a. I ett traditionellt (procedurellt) program bestämmer programmet när det är dags att läsa indata eller skriva utdata, programmets exekvering är programstyrd. I ett händelsestyrt program skriver programmeraren metoder som anropas när en händelse inträffar. Programmet känner inte till i vilken ordning som händelserna inträffar. I programmet initieras först gränssnittskomponenterna och därefter väntar det på att hantera någon händelse som inträffar. b. 1. Registrera händelselyssnare ok.addactionlistener(this); 2. Skapa en lyssnare och implementera gränssnittet ActionListener i den händelselyssnare som registrerats public void actionperformed(actionevent event) resultat.settext("ok"); c. Canvas är en enkel rityta som bl.a används för att hindra kollision mellan gränssnittskomponenter och grafik. Figurerna kan isoleras från grafikkomponenterna med hjälp av ett Canvasobjekt. Canvas har en egen paintmetod som oftast överskuggas för att rita grafik på objektet. d. Antalet pixlar är oförändrat men appletens storlek på skärmytan kommer att minska eftersom totala antalet pixlar på skärmen ökar när upplösningen ökar. 4. Dataströmmar (10p) import java.io.*; public class Kvadrerare public static void main(string[] arg) throws IOException BufferedReader fråntangenterna = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Skriv ett tal"); String rad = fråntangenterna.readline(); fråntangenterna.close(); double tal = Double.parseDouble(rad); double kvadrat = tal * tal; PrintWriter tillfil = new PrintWriter( new FileWriter("resultat.txt")); tillfil.println(tal); tillfil.print(kvadrat); tillfil.close(); 3

5. RMI (10p) a) Förklara begreppet "marshaling" (2p) Marshaling kallas den process som innebär att ett metodanrop översätts till en binär ström. Med hjälp av den binära strömmen så kan metodanropet förmedlas till en server via ett nätverk. På servern översätts den binära strömmen tillbaka till det ursprungliga metodanropet igen, vilket kallas för unmarshaling. Därefter exekveras metoden på servern. Metodens eventuella resultat returneras till klienten på liknade sätt som metodanropet förmedlades. b) Vad är "skeleton"? (2p) Serverns skeletonobjekt unmarshals metodanrop som den tar imot via nätverket från klienten. Skeletonobjektet marshals eventuella resultat som ska sändas tillbaka till klienten. c) Beskriv en viktig skillnad mellan RMI och CORBA. (2p) Om man använder RMI så är man begränsad till Java som programmeringsspråk. Om man använder CORBA så kan det distribuerade systemet olika delar kodas i olika språk. d) Vad är "rmiregistry"? (2p) rmiregestry är ett register som exekverar på servermaskinen. I registret registreras referenser till alla distribuerade objekt och deras URL-adresser. Klienter kan därefter via serverns rmiregister ansluta sig mot ett eller flera objekt på servern. e) Vad är "rmic"? (2p) rmic är ett program med vilket man kan generera bytekodsfiler för stub och skeleton. 4

6. JSP (10p) a) Beskriv hur en begäran av en JSP-sida hanteras av webservern. (5p) Webläsaren sänder en begäran om en JSP-sida till servern. Om den begärda JSP-sidans servlet inte är laddad i webservern så kommer JSP-sidan att översättas till motsvarande servlet. Servleten kompileras och därefter kommer den laddas i webservern och exekveras. Om den begärda sidan redan har exekverats tidigare och därmed har sin servlet laddad i webservern så kommer webservern att först att kontrollera om JSP-sidan har förändrats sen föregående anrop exekverades. Om sidan är förändrad så kommer den att behandlas som om det vore en ny JSP-sida som inte har anropats tidigare. Om JSP-sidan inte är förändrad så kommer JSP-sidans servlet att anropas direkt. b) <html> <head><title>intresseanmälan</title></head> <body> <center> <% %> String namnet = request.getparameter("namn"); String elposten = request.getparameter("elpost"); </body> </html> <h1>tack för din intresseanmälan <%=namnet%>!</h1> Information kommer att sändas till adress: <%=elposten%><br> 5

7. Trådar (10p) a) public class Bagare extends Thread private Burk kakburken; public Bagare(Burk kakburk) kakburken = kakburk; public void run() int bakplåt = 0; try while (bakplåt < 10) kakburken.läggtillkakor(20); bakplåt++; sleep(1000); catch(interruptedexception exception) System.out.println(exception); b) public class Burk private int antalkakor = 0; public synchronized void läggtillkakor(int antal) antalkakor += antal; notify(); public synchronized void tabortkaka() try while (antalkakor < 1) wait(); antalkakor--; catch (InterruptedException exception) System.out.println(exception); 6