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



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

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

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

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

Högskolan Dalarna sid 1 av 5 Data-sektionen Hans-Edy Mårtensson

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

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

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

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

Lycka till! TENTAMEN: Objektorienterade applikationer. Läs detta! 1 (6) Tentamen

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

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

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

DAT043 Objektorienterad Programmering

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

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

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

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.

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

TENTAMEN OOP

Föreläsning 5-6 Innehåll

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

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

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

Högskolan Dalarna sid 1 av 5 DI-institutionen 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)

Tentamen i Objektorienterad programmering

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

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

Polymorfi. Objektorienterad och komponentbaserad programmering

Föreläsning 3-4 Innehåll

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

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

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

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.

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

Grafiska komponenter.

Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

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

Tentamen i Programmering

Klasshierarkier - repetition

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

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

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

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

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

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.

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

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Objektorienterad programmering i Java

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

Lab5 för prgmedcl04 Grafik

Tentamen. Lösningsförslag

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

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

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

F4. programmeringsteknik och Matlab

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

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

Händelsestyrda program

Modern Programmering (2546) Tentamen lördag

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

1 Repetition av viktiga begrepp inom objektorienterad programmering

OOP Tenta

Tentamen FYTA11 Javaprogrammering

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

JAVA Mer om klasser och objektorientering

Tentamen, EDAA20/EDA501 Programmering

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

Konstruktion av klasser med klasser

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

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

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Repetition av viktiga begrepp inom objektorienterad programmering

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

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

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

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

OOP Objekt-orienterad programmering

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

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

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

Tentamen Programmeringsteknik II Inledning. Anmälningskod:

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

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada

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

2 b) Bodega bodegan = new Bodega(); double moms = 0.235; String namn = "Vargtass"; System.out.println(namn + " " + moms + bodegan.ändra(moms, namn); S

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Tentamen , Grundläggande programmering i Java

Malmö högskola 2008/2009 CTS

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

(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

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

TENTAMEN OOP

OOP Tentamen

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

Transkript:

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle: Måndagen den12 april kl 11.50 i S200. Max: 70 poäng, för godkänt krävs 50%. Skriv tydliga och kortfattade svar! 1. Introduktion till Java (10p) Vad beskrivs nedan? Svara med maximalt två ord per beskrivning. a) I ett objektorienterat datorprogram förekommer en sorts beskrivningar av olika typer av objekt. Vad kallas dessa beskrivningar? b) En referens som alltid refererar till sitt eget objekt c) Ett uttryck som syftar på metodens namn och parameterlista. d) Ett objekt som tillhör en viss klass sägs utgöra en???? av klassen. e) Samlar objekt som inte används längre och återlämnar deras minnesutrymme. f) En modifierare som måste användas vid deklaration av en konstant g) Referenser som inte refererar till något har detta värde h) Endast klasser implementerar sådana i) Får endast förekomma som första rad i konstruktorns metodkropp j) Programmet bestämmer själv under sin exekvering vilken version av en metod som ska anropas

2. Klasser och objekt. Typer och operatorer. Arv och gränssnitt. (10p) Den här uppgiften består av tre deluppgifter. I deluppgifterna används följande kod: public abstract class Person private int ålder; protected String namn; protected long hemnr; public Person(String personensnamn, long hemtelefon, int personensålder) namn = personensnamn; hemnr = hemtelefon; ålder = personensålder; public int getålder() return ålder; public class Arbetare extends Person protected long jobbnr; Arbetare(String arbetarensnamn, long hemtelefon, int arbetarensålder, long jobbtelefon) super(arbetarensnamn, hemtelefon, arbetarensålder); jobbnr = jobbtelefon; public long gettelnr() return jobbnr; public class Vikarie extends Arbetare private boolean itjänst = false; Vikarie(String vikariensnamn, long hemtelefon, int vikariensålder, long jobbtelefon) super(vikariensnamn, hemtelefon, vikariensålder, jobbtelefon); public long gettelnr() if (itjänst) return jobbnr; else return hemnr; public int getålder() return 27; 2

a) Metoden "main" i följande klass innehåller tre fel. Beskriv dessa fel. (3p) public class Uppgift2a public static void main(string[] arg) Person lisa = new Person("Lisa Karlsson", 11111, 10); Arbetare erik = new Arbetare("Erik Nilsson", 22222, 20, 12345); Arbetare karin = new Vikarie("Karin Andersson", 33333, 30, 56789); System.out.println("Namn: " + erik.getnamn()); System.out.println("Telefon: " + erik.gettelnr()); System.out.println("Ålder: " + erik.ålder); b) Vilken utskrift ger följande main-metod (3p) public class Uppgift2b public static void main(string[] arg) Person[] individ = new Person[2]; Arbetare[] knegare = new Arbetare[2]; knegare[0] = new Arbetare("Niklas Jonsson", 54321, 30, 12345); knegare[1] = new Vikarie("Urban Jansson", 99999, 35, 11111); individ[0] = knegare[0]; individ[1] = knegare[1]; for (int i=0; i<individ.length; i++) System.out.println(individ[i].getÅlder()); for (int i=0; i<knegare.length; i++) System.out.println(knegare[i].getTelNr()); c) Implementera gränssnittet "Info" så att följande main-metod ger nedanstående utskrift. (4p) Endast förändringar i uppgiftens ursprungliga kod behöver redovisas. public interface Info public String getinfo(); public class Uppgift2c public static void main(string[] arg) Info stina = new Arbetare("Stina Flink", 54321, 40, 12345); Info urban = new Vikarie("Urban Rask", 99999, 45, 11111); System.out.println(stina.getInfo()); System.out.println(urban.getInfo()); Följande utskrift ska erhållas: 3

Stina Flink har telefonnummer 54321 hem och 12345 till arbetet. Urban Rask har telefonnummer 99999 hem och 11111 till arbetet. 3. Användargränssnitt och händelsehantering (10p) a. Klasserna Container och Component är två viktiga klasser i Javas AWT-paket. När man bygger ett användargränssnitt används subklasser av dessa klasser. Ange de viktigaste skillnaderna mellan dessa båda klasser. (2p) b. Följande deklaration är felaktig. Förklara varför. (2p) Component area = new Component(); c. Förklara varför följande anrop av metoden add är olika. Varför har tredje och fjärde satsen anropet p.add() medan femte satsen anropas med add()? (2p) Panel p = new Panel(); p.setlayout(new FlowLayout()); p.add(new Label("Tel:", Label.RIGHT)); p.add(new TextField(40)); setlayout(new BorderLayout()); add("north", p); d. Beskriv hur klassdefinitionen nedan ska ändras om lyssnargränssnittet ActionListener ska implementeras som en inre klass i stället för att implementeras i den egna klassen. (4p) public class Test extends Applet implements ActionListener private TextField resultat; private Button ok; public void init() ok = new Button("OK"); ok.addactionlistener(this); add(ok); resultat = new TextField(10); add(resultat); public void actionperformed(actionevent event) resultat.settext("ok"); 4. Applets och grafik (10p) a. Varför finns det ingen main-metod i en applet? (2p) b. Hur kan man anropa paint-metoden från programmet i en applet? Vilka metoder kommer att anropas i samband med detta anrop? (2p) c. Skriv kod för en komplett applet som ritar en kvadrat där kvadratens storlek kan varieras med ett textfält och en tillhörande knapp. (6p) 4

5. Trådar, exceptionella händelser och JDBC (10p) a. Följande klass som ska skapa och starta ett trådobjekt genom att ärva från klassen Thread innehåller två logiska fel. Ange och rätta felen. (2p) class MyThread extends Thread public void run()... // kod public static void main(string[] arg) Thread t = new Thread(); start();... // kod b. Behöver alla metoder i en s.k. monitor-klass vara synkroniserade? Motivera ditt svar. (2p) c. Följande run-metod ger ett fel vid kompileringen vid anropet till sleep-metoden. Föreslå två olika sätt att rätta detta kompileringsfel. (4p) public void run() while (clockthread!= null) repaint(); clockthread.sleep(1000); d. Ange tre olika typer av JDBC drivers som kan användas för att skapa databasprogram i Java. Vilket krav på drivern måste vara uppfyllt för att den ska vara fullt nedladdningsbar över Internet? (2p) 5

6. Skrivning och läsning till fil (10p) a) Följande program läser rader från tangentbordet och skriver ut dom på skärmen. Läsningen avbryts när användaren trycker <Ctrl-Z>. (5p) import java.io.*; public class Skrivare public static void main(string[] arg) throws IOException BufferedReader tangenterna = new BufferedReader( new InputStreamReader(System.in)); String rad = tangenterna.readline(); while (rad!= null) System.out.println(rad); rad = tangenterna.readline(); Ändra på programmet så raderna inte skrivs ut på skärmen utan i stället skrivs till textfilen "rader.txt". Varje gång programmet körs så ska det gamla innehållet i filen skrivas över. b) I deluppgift "a" skapades en textfil "rader.txt". Skriv ett program som läser och skriver ut innehållet i filen till datorns skärm. (5p) 7. Nätverkskommunikation (10p) Svara med maximalt tre till fyra rader per delfråga "a" t o m "c". a) Vad är TCP och IP? (1p) b) Vilka datorer kan en applet koppla upp förbindelser med, om den är laddad i en webbläsare via Internet? (1p) c) Nämn en viktig skillnad mellan "CORBA" och "RMI"? (1p) d) En server exekverar på datorn "sun-hem.du.se". Serverns funktion är följande. Efter att en klient anslutit sig till servern via en socket på port 4321, så väntar servern helt tyst på att klienten ska sända. Skriv en klient som ansluter sig till servern. Klientens funktion är följande. Klienten sänder två heltal av typen "int" till servern vilken returnerar summan av talen, som ett heltal av typen "long". Klienten kopplar slutligen ned förbindelsen och skriver ut summan på skärmen. (7p). 6