Erfarenheter från biljardprojektet. måndag 23 november 15

Storlek: px
Starta visningen från sidan:

Download "Erfarenheter från biljardprojektet. måndag 23 november 15"

Transkript

1 Erfarenheter från biljardprojektet

2 Gästföreläsningen Synpunkter?

3 Sanningen bakom ordet implements Det underlättar överenskommelser mellan olika programmerare, och gör att java kan se till att de inte bryts!

4 Exempel Jag är systemprogrammerare. Jag skriver metoden addactionlistener() i javabiblioteket. public void addactionlistener(...) Metoden tar en parameter: ett lyssnarobjekt. Av vilken typ? public void addactionlistener(??? thelistener)

5 Exempel Kräver endast att det finns en actionperformed() public void addactionlistener(??? thelistener) thelistener ska kunna komma från många olika klasser! Det addactionlistener() gör är att se till att ActionEvents triggar anrop till parameterns metod actionperformed(). Så det kräver att parametern faktiskt har en sådan metod! Annars är jag kokt.

6 Du gör en tillämpning och vill använda min fina addactionlistener(). Du importerar biblioteket där den ligger och anropar den med ett hemsnickrat objekt som parameter. class MyApplication {... MyApplication() {... addactionlistener(this); Måste komma ihåg att skriva en actionperformed() Detta objekt har förhoppningsvis en metod actionperformed(). Annars är vi kokta

7 Interface är ett sätt att formulera sådana garantier och kolla att de uppfylls.

8 Ett interface innehåller metodhuvuden, dvs namn, typ och parametertyp(er) för metoden. Obs: Det innehåller inga metodkroppar inget { interface ActionListener { public void actionperformed(actionevent e); Javatradition: Namn på interface liksom namn på klasser börjar med Stor bokstav Betyder: den som är en ActionListener har åtminstone metoden actionperformed()

9 interface ActionListener { public void actionperformed(actionevent e);.. Definierar vad det innebär att vara en ActionListener public void addactionlistener(actionlistener thelistener) {.. (koden för addactionlistener) Kräver att parametern är. en ActionListener Systemprogrammerarens kod Användarens kod class MyApplication implements ActionListener {.. public void actionperformed(actionevent e) {.. Gör en utfästelse att klassens objekt ska bli ActionListeners uppfyller utfästelsen... addactionlistener(new MyApplication())...

10 Sanningen bakom ordet implements 2. Det möjliggör så kallad polymorfi: en metod kan ta parametrar av flera olika klasser

11 Exempel: bubblesort Vi har skrivit en metod bubblesort() som sorterar en array av heltal: void bubblesort(int[] data) {... Men samma metod skulle i princip kunna användas för att sortera - en array av double - en ArrayList av alla slags tal... Måste jag skriva en ny bubblesort för varje sådant fall?

12 bubblesort() tar en parameter, data. Vad är det jag ovillkorligen måste veta om den parametern? Jo, - jag måste kunna jämföra två intilligande tal - jag måste kunna byta plats på två intilliggande tal - jag måste kunna få reda på längden På alla datastrukturer som uppfyller detta kan jag göra bubblesort!

13 Formulera kravet Kravet formuleras som ett interface. Det ska alltså vara tre metoder, en för jämförelse mellan position i och i+1, en för platsbyte mellan position i och i+1, och en för längden interface Bubblesortable { public boolean compare(int i); public void swap (int i); public int length();

14 Använd kravet när du gör bubblesort boolean bytintill(bubblesortable data) { boolean bytt = false; for (int i = 0; i < data.length() - 1; i++) { if (!data.compare(i)) { data.swap(i); bytt = true; return bytt; void bubblesort(bubblesortable data) { while (bytintill(data)) { interface Bubblesortable { public boolean compare(int i); public void swap (int i); public int length();

15 Uppfyll kravet för att använda bubblesort class MyStructure implements Bubblesortable { int[] data;... public boolean compare(int i) { return data[i] < data[i + 1]; public void swap(int i) { int temp = data[i]; data[i] = data[i + 1]; data[i + 1] = temp; public int length() { return data.length; interface Bubblesortable { public boolean compare(int i); public void swap (int i); public int length();

16 Eller så här class MyStructure implements Bubblesortable { double[] data;... public boolean compare(int i) { return data[i] < data[i + 1]; public void swap(int i) { double temp = data[i]; data[i] = data[i + 1]; data[i + 1] = temp; public int length() { return data.length; interface Bubblesortable { public boolean compare(int i); public void swap (int i); public int length();

17 Eller såhär class MyStructure2 implements Bubblesortable { ArrayList<Integer> data; public boolean compare(int i) { return data.get(i) < data.get(i + 1); public void swap(int i) { int temp = data.get(i); data.set(i, data.get(i + 1)); data.set(i + 1, temp); public int length() { return data.size(); interface Bubblesortable { public boolean compare(int i); public void swap (int i); public int length();

18 Fördel: Du definierar bubblesort en enda gång Du kan använda den på många olika klasser, nämligen på alla som implementerar interfacet Bubblesortable

19 OBS Användning av interface göra att java kollar att rätt metoder är definierade och har rätt typ av parametrar. java kollar inte att metoderna faktiskt gör det som är tänkt!

20 Exceptions Division med 0 Array index out of bounds File not found onormal I/O-händelse Null reference...

21 try - catch Python Java try: a = 1/b except: a = 0 try { a = 1/b; catch (Exception e) { a = 0; except i Python heter catch i Java. Inga kolon, men krullparanteser. Man måste alltid ange vilka exceptions som avses inom parantes efter catch.

22 try statement try block catch block aka catch clause aka exception handler try { a = 1/b; catch (Exception e) { a = 0; Grundidé: Börja köra try block. Om ett fel inträffar avbryt, och kör catch block

23 try { c1; c2; catch (Exception e) { c3; c4; c5; Allt OK c1 c2 Exception inträffar c3 c4 c5

24 Exception classes Detta är bara en liten del! Jfr Horstmann s339 En stor hierarki av klasser.

25 Varje klass svarar mot en typ av exception. Klasserna är ordnade hierarkiskt och underklasserna ärver överklasserna på vanligt sätt. Exempel: Exception är en klass för alla slags exception. IOException är en underklass för en del exceptions, nämligen de som orsakas av IO. I varje catch ska man alltid deklarera vilken typ av exception som man ska fånga. Till ett try can finnas flera catch för att fånga olika typer av exception.

26 try { Exempel Ett kodblock som kan ge upphov till många olika exception catch (IndexOutOfBoundsException e) { Kodblock som hanterar indexeringsfel catch (IOException e) { Kodblock som hanterar IO-fel Beroende på vilket slags exception som inträffar i try blocket kommer man till rätt catch block. Try blocket måste ha minst ett catch block

27 Exception objects När exception inträffar skapar Java ett objekt: en instans av exception-klassen. Objektet innehåller information om vad som hänt. Objektet kan man komma åt i motsvarande catch.

28 Typexempel: Exception object catch (IndexOutOfBoundsException e) { System.out.println( Exception + e.getmessage() ) Använd exception object för att få felmeddelande Till exempel har ett sådant objekt ett meddelande som nås med metoden getmessage()

29 catch (IndexOutOfBoundsException e) { System.out.println( Exception + e.getmessage() ) Objektets namn skrivs efter klassnamnet inom paranteserna efter catch. Det ser alltså lite ut som en deklaration. Objektnamnet räknas som en lokal variabel med scope som är resten av denna catch clause

30 finally Efter alla catch block får det finnas (men måste inte finnas) ett finally block. Det utförs hur try blocket än avslutas - vare sig någon exception inträffat eller ej. Även om try blocket avslutas med en return eller break. Användning: för att säkerställa att reserverade resurser (tex filer) släpps.

31 Grundmönster för IO try { Ett kodblock som öppnar en fil/enhet och försöker läsa/skriva catch (IOException e) { Kod som upplyser användaren om att något gick fel finally { Kod som stänger filen/enheten

32 Checked exceptions Terminologi: exception inträffar = exception kastas, exception is thrown En del exception classes kallas checked De som programmeraren borde förutse och ta hand om Typexempel: IOException En metod som kan kasta ett sådant måste antingen själv ta hand om det i en catch eller tydligt deklarera att anroparen måste ta hand om det

33 En metod som läser fil och hanterar eventuella exception själv: void readfile() { try { Ett kodblock som öppnar en fil och försöker läsa kan kasta ett IOException catch (IOException e) { Kod som upplyser om att något gick fel vid läsning finally { Kod som stänger filen

34 En metod som läser fil och låter anroparen hantera exceptions Ny deklaration i metodhuvudet void readfile() throws IOException { Ett kodblock som öppnar en fil och försöker läsa Notera: ingen try - catch här Med ordet throws följt av exceptiontyp deklareras att metoden kan kasta sådana exceptions utan att själv fånga dem. De bör fångas av anroparen try { readfile() catch (IOException e) {...

35 Sammanfattning try {... catch (Exception e) {... finally {... Får finnas flera catch Varje måste ange felklass lokal variabel e är ett exceptionobjekt finally är bra för att släppa resurser En metod som kan åstadkomma IOException måste antingen fånga dem själv eller deklareras med throws IOException

36 Franska Guyana 4 juni 1996

37 Exception vs Event Var skapas objektet? Vart i koden kommer man? Hur kommer man åt objektet? Vad händer om det inte tas om hand?

38 Javas IOsystem Uppbyggt runt så kallade strömmar (stream) En ström: enkelriktad överföring av data Input stream: från något externt till programmet Output stream: från programmet till något externt Externt : ex annan enhet, fil, url, annan dator import java.io.*;

39 Lokal användare System.in Javaprogram Filer Andra datorer via internet xxx xxxxxx xx xx xxxxxxx xxxx xxxxxxxxx xxxxxxxxx xxxxxxxxxxxx xxxxx xxxxxx xxx xxxxxx xx xx xxxxxxx xxxx xxxxxxxxx xxxxxxxxx xxxxxxxxxxxx xxxxx xxxxxx xxx xxxxxx xx xx xxxxxxx xxxx xxxxxxxxx xxxxxxxxx xxxxxxxxxxxx xxxxx xxxxxx

40 Strömtyper Olika slags strömmar för att överföra olika slags saker Byte stream Character stream Data stream Object stream

41 Strömtyper = klasser ObjectOutputStream DataInputStream FileReader... Som alltid: omöjligt att lära sig allt. Lär dig ett exempel som funkar och var du ska slå upp information

42 Strömmar = objekt Instansiera en klass för att få en ström Typiskt: konstruktorn har en parameter som talar om vart strömmen leder. ex: new FileReader("words.txt") Detta returnerar en inputström från filen words.txt Den bör bindas till en variabel så att vi kan använda den, ex wordsinput = new FileReader("words.txt") Sådana variabler ska förstås deklareras som alla andra. Ofta ligger viktiga strömmar i instansvariabler.

43 read / write Inputströmobjekt har metoder för att läsa från strömmen. Typiskt heter de något med read. Exakt vad och vilken signatur beror på strömmen. Ex: readobject() På samma sätt har outputströmmar metoder för att skriva till strömmen. Alla metoder för att skapa, skriva till eller läsa från strömmar kan kasta IOException, och måste ha exception handlers

44 Exempel: filkopiering FileReader inputstream = null; FileWriter outputstream = null; Skapar strömmar try { till och från filer inputstream = new FileReader("xanadu.txt"); outputstream = new FileWriter("characteroutput.txt"); int c; while ((c = inputstream.read())!= -1) { outputstream.write(c); catch (IOException e) { System.out.println( Error: +e.getmessage()); finally { if (inputstream!= null) inputstream.close(); if (outputstream!= null) outputstream.close(); inputstream.read() läser ett tecken i form av heltal. Dito för outputstream.write() Exception kan kastas när vi skapar, läser eller skriver Se till att stänga filerna när vi är klara

45 Exempel: ObjectStream Den mest generella strömmen Kan transportera objekt av skilda slag ObjectOutputStream och ObjectInputStream Wrapping: Konstruktorn tar en parameter som är en dataström. Returnerar en objektström som använder denna

46 Javaprogram myobjectstream mystream xxx xxxxxx xx xx xxxxxxx xxxx xxxxxxxxx xxxxxxxxx xxxxxxxxxxxx xxxxx xxxxxx xxx xxxxxx xx xx xxxxxxx xxxx xxxxxxxxx xxxxxxxxx xxxxxxxxxxxx xxxxx xxxxxx xxx xxxxxx xx xx xxxxxxx xxxx xxxxxxxxx xxxxxxxxx xxxxxxxxxxxx xxxxx xxxxxx ObjectInputStream myobjectstream = new ObjectInputStream(myStream)

47 ObjectOutputStream har en metod writeobject() Den är void och tar en parameter: det objekt som ska skrivas. parametern måste implementera det speciella interfacet Serializable. Interfacet är tomt men talar om för Java att finna ett sätt att överföra objekten De flesta enkla klasser som String implementerar detta. Vill du att objekten i en egen klass ska kunna skickas skriv implements Serializable i klasshuvudet.

48 ObjectInputStream har en metod readobject() Den har inga parametrar och returnerar något av typ Object. Object är Javas översta klass i klasshierarkin: alla klasser är underklasser till Object. Använd casting för att specifiera objektet närmare Exempel: läs en String message = (String)myObjectStream.readObject(); Downcasting till String. Gör så att högerledet anses ha typ String. Om det i själva verket har annan typ kastas ett exception

49 Idiom try { String message = (String)myObjectStream.readObject(); process the message as a String catch (ClassNotFoundException e) { System.out.println("Unknown object received");

50 class MyData implements Serializable { int a; String name;..... Exempel: Lagra ett objekt på en fil MyData dataitem =... ; ObjectOutputStream output;... try { output = new ObjectOutputStream( new FileOutputStream( myfile )); catch (IOException e) { System.out.println ( Error opening file );... try { output.writeobject(dataitem); catch (IOException e) { System.out.println ( Error writing to file );

51 class MyData implements Serializable { int a; String name;... MyData dataitem; ObjectInputStream input;... try { Exempel: Läs ett objekt från en fil input = new ObjectInputStream( new FileInputStream( myfile )); catch (IOException e) { System.out.println ( Error opening file );... try { dataitem = (MyData)input.readObject(); catch (ClassNotFoundException e) { System.out.println ( Incorrect object on file ); catch (IOException e) { System.out.println ( Error reading from file );

52 Nätverksprogrammering Hur man skickar data mellan datorer via internet

53 Internet Protokoll: Serie konventioner för hur kommunikation ska gå till IP: Internet Protocol, ett protokoll som används vid internet. Vanligast nu är IPv4. Paketorienterat (jfr skicka avgränsade paket) TCP: Transmission Control Protocol, använder sig av IP. Förbindelseorieterat (jfr ett telefonsamtal) Sockets: ett programmeringsgränssnitt för att använda TCP. Java har olika Socketklasser. import java.net.*;

54 Lite historia 1960-talet: datorer kan kommunicera 1969: två första noderna i ARPANET (mellan UCLA och SRI) 1971: ARPANET har 15 noder 1974: ordet Internet används 1981: CSNET finansieras av NSF 1982 TCP/IP standardiseras mitten 1990-talet: genombrott i hemmen. Java börjar spridas.

55 IP-adresser Varje internetansluten dator har en IP-adress. Kan jämföras med telefonnummer. För att kontakta datorn måste man ange dess IP-adress. En IP-adress består av 4 bytes separerade av punkt. Varje byte är ett tal mellan 0 och 255. Exempel: min IP just nu är IP-adressen ändras när datorn rör sig fysiskt mellan olika nät (till skillnad från tex telefonnummer). Den speciella adressen localhost leder alltid tillbaka till samma dator. Bra när man testar.

56 Vad är min IP? InetAddress.getLocalHost().getHostAddress() Returnerar en String som representerar IPadressen. OBS: Den kastar IOException try { title = "I am at IP "+InetAddress.getLocalHost().getHostAddress(); catch (IOException e) { title = "Unable to determine IP";

57 Portar Varje dator har 216 = stycken portar Portarna har ingen fysisk motsvarighet. Kan anses vara lokala anknytningar inom datorn. Varje tillämpning har en specifik port den kan bli kontaktad på. För din egen tillämpning: välj ett portnummer. Helst inte ett som redan är i bruk. Undvik nummer mindre än 1024.

58 Sockets Ett sätt att etablera TCP-förbindelse mellan två datorer. Uppkopplingsfasen är asymmetrisk. Den ena, Client, kopplar upp aktivt mot ett visst IP och viss port. Den andra, Server, lyssnar efter uppkopplingsförsök vid en viss port. När förbindelsen väl är igång är situationen symmetrisk: Båda datorerna har en inputstream och en outputstream. Jfr telefonsamtal. Den ena ringer och den andra blir uppringd, men sedan är samtalet symmetriskt

59 Klassen Socket Objekt av klassen Socket svarar mot existerande uppkopplingar mot andra datorer. De har metoder bl.a. för att ta fram strömmarna och för att stänga sig. OutputStream getoutputstream() InputStream getinputstream() För att skicka data, ta fram Outputströmmen och skriv på den. Samma för input. void close()

60 Uppkoppling Asymmetrisk. Det finns en Client sida och en Server sida. Client skapar sin socket genom att helt enkelt använda konstruktorn Socket(). Den tar två parametrar: 1. IP-numret att koppla upp sig mot (String) 2. Portnumret för tillämpningen (int) mysocket = new Socket( , 12345)

61 OBS: Kastar IOException om uppkopplingen misslyckades. try { mysocket = new Socket( , 12345) catch (IOException e) { System.out.println( Could not connect to server )

62 Servern använder klassen ServerSocket. Konstruktorn har en parameter: portnumret den ska betjäna (int) Den skapar ett ServerSocket - objekt. Detta objekt har en metod accept() som väntar på anslutningar från en client När en sådan kommer returnerar accept() en Socket. myserver = new ServerSocket(12345); mysocket = myserver.accept(); OBS: detta kastar också IOException och bör omslutas av try-catch.

63 Kommunikation Symmetrisk. En förbindelse mellan två datorer använder en socket i vardera datorn, och kan ta fram input och outputströmmar myinput = mysocket.getinputstream() myoutput = mysocket.getoutputstream()

64 Client mysocket = new Socket(ipNumber, port) Server myserver = new ServerSocket(port); mysocket = myserver.accept(); Uppkoppling klar myoutput = mysocket.getoutputstream() myinput = mysocket.getinputstream() myoutput = mysocket.getoutputstream() myinput = mysocket.getinputstream() objectoutput = new ObjectOutputStream(myOutput) objectoutput = new ObjectOutputStream(myOutput) objectinput = new ObjectInputStream(myInput) Strömmar klara objectinput = new ObjectInputStream(myInput) objectoutput.writeobject( Hello ) m = (String)objectInput.read() m = (String)objectInput.readObject() objectoutput.writeobject( Hi )

65 Superviktigt Allt måste omslutas av en try-catch med ett finally block. Finally blocket måste göra close() på alla strömmar och sockets. I annat fall kan en port forsätta vara reserverad efter att programmet slutat. Om det händer, logga ut och logga in

66 class MainClass { public static void main(string[] parameters) { new Chat(); Chat: Client och Server är olika class Chat { bara i uppkopplingen Chat() { dialog för att välja Server eller Client if (valt Client) { dialog för att välja ip och port Socket socket = new Socket(ip,port); new ChatParticipant(socket); else { dialog för att välja port ServerSocket server = new ServerSocket(port); Socket socket = server.accept(); new ChatParticipant(socket); Samma! OBS: Ett skelett - det saknas tex exception handlers

67 ChatParticipant socket ChatParticipant socket dataströmmar constructorn GUI /Jframe med paneler, textfält, knappar etc)

68 Vilka händelser kan inträffa som måste tas om hand? Vilka aktiviteter ska kunna göras? meddelande från annan användare ChatParticipant socket meddelande till annan användare meddelande från min användare dataströmmar GUI Visa text i textarean klick på slutaknappen Avsluta allt

Gästföreläsningen. Synpunkter?

Gästföreläsningen. Synpunkter? Gästföreläsningen Synpunkter? Syfte: Att stadfästa Interface överenskommelser mellan flera personer som använder varandras kod. Interface Syfte: Att stadfästa överenskommelser mellan flera personer som

Läs mer

Gästföreläsningen. Synpunkter?

Gästföreläsningen. Synpunkter? Gästföreläsningen Synpunkter? Erfarenheter från biljardprojektet Var ska koden ligga? Som i labben: anta klasserna Table och Ball En metod bounce() ska skrivas som anger vad som händer när två bollar studsar

Läs mer

Klasser som datastrukturer

Klasser som datastrukturer Klasser som datastrukturer Ex: du vill skicka ett meddelande som består av text (String), avsändarnamn (String), klockslag (två int). Du kan förstås skicka alla dessa efter varandra. Bättre är att bygga

Läs mer

För att hitta filen gå till mappen NetBeansProjects. Välj undermappen med rätt projekt, och sedan undermapp dist. Där ligger.jar-filen.

För att hitta filen gå till mappen NetBeansProjects. Välj undermappen med rätt projekt, och sedan undermapp dist. Där ligger.jar-filen. Java utan netbeans Du har gjort ett program i netbeans Hur exportera det så att andra kan köra det utan att använda netbeans? Välj projektet som main project Högerklicka på det och välj Clean and Build

Läs mer

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag Undantagshantering Fördjupad Java Ett undantag (Exception) är ett objekt som påtalar en ovanlig eller felaktig situation i ett program. Undantag kastas av programmet och kan fångas och hanteras. Java har

Läs mer

Fördjupad Java. Undantagshantering. Fel

Fördjupad Java. Undantagshantering. Fel Fördjupad Java 1 Undantagshantering Ett undantag (Exception) är ett objekt som påtalar en ovanlig eller felaktig situation i ett program. Undantag kastas av programmet och kan fångas och hanteras. Java

Läs mer

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag Undantagshantering Fördjupad Java Ett undantag (Exception) är ett objekt som påtalar en ovanlig eller felaktig situation i ett program. Undantag kastas av programmet och kan fångas och hanteras. Java har

Läs mer

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

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016 Objektorienterad Programkonstruktion Föreläsning 4 8 nov 2016 Nästade klasser I Java går det att deklarera en klass inuti en annan klass. Vi kallar detta för att en yttre klass innehåller en inre klass.

Läs mer

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

Att skriva till och läsa från terminalfönstret Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F12:1 OOP Objekt-orienterad programmering Föreläsning 12 Mer om JOptionPane Undantagshantering Vad är det? try catch Kasta egna undantag Filhantering spara objekt mellan körningar Användardialog via

Läs mer

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets Surfning Webbklienter och webbservrar Starta Firefox (eller Opera, eller Internet Explorer, eller... ). Skriv en URL i adressfältet: http://www.w3.org/history/1989/proposal.html. Webbläsaren kopplar upp

Läs mer

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

Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013 DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013 Innehåll Trådar i Java swing- klassen Timer Klient-Server-program Trådar Tråd = enkel process Ett program kan ha flera trådar, flera

Läs mer

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

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

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

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/4 2014 Innehåll Kort om Javas Exceptions Trådar i Java swing- klassen Timer Klient-Server-program Javas Exceptions Checked måste hanteras,

Läs mer

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

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

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

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin 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:

Läs mer

Undantag. Engelska: exceptions. Skansholm: exceptionella händelser

Undantag. Engelska: exceptions. Skansholm: exceptionella händelser Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker öppna en fil som inte finns, dividera med noll, indexera utanför en array osv. bjectorienterad programmering

Läs mer

Föreläsning 14. Filhantering

Föreläsning 14. Filhantering Föreläsning 14 Filhantering Filhantering Att hantera filer, dvs att läsa eller skriva data till en fil är en viktig del i de flesta program. Ur Javas synvinkel är filer objekt med egenskaper och metoder

Läs mer

Språkkonventioner och redigering av tal.

Språkkonventioner och redigering av tal. Språkkonventioner och redigering av tal. Kap J3-1 Konventioner för olika språk hanteras med hjälp av klassen java.util.locale Ett objekt i denna klass beskriver en lokal konvention. Lokala konventioner

Läs mer

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr

Läs mer

F2 Java I/O - strömmar Meddelandesändning med TCP

F2 Java I/O - strömmar Meddelandesändning med TCP F2 Java I/O - strömmar Meddelandesändning med TCP EDA095 Nätverksprogrammering Roger Henriksson Datavetenskap Lunds universitet Java I/O Strömmar och filer Ström (eng. Stream) En ström är en sekvensiell

Läs mer

Instuderingsuppgifter läsvecka 6 - LÖSNINGAR

Instuderingsuppgifter läsvecka 6 - LÖSNINGAR Instuderingsuppgifter läsvecka 6 - LÖSNINGAR 1. 2. Om vi använder interfacet List behöver vi inte bry oss om den konkret implementation som används, därför kan implementationen bytas ut genom att endast

Läs mer

Föreläsning 6: Metoder och fält (arrays)

Föreläsning 6: Metoder och fält (arrays) TDA 545: Objektorienterad programmering Föreläsning 6: Metoder och fält (arrays) Magnus Myréen Chalmers, läsperiod 1, 2015-2016 I (föregående och) denna föreläsning Läsanvisning: kap 2 & 13 meddelanden

Läs mer

Föreläsning 2, vecka 8: Repetition

Föreläsning 2, vecka 8: Repetition TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 8: Repetition Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Idag Metoder och terminologi Referensvärden och arrays Interface och ritning

Läs mer

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

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta

Läs mer

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

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 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 Klassen Mio ffl Särfall ffl Interface Kungl. Tekn. Högskolan

Läs mer

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

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

Översikt. Skriva och läsa data. Kontrollflöde. Två sorters loopar. For-loop. For-loop

Översikt. Skriva och läsa data. Kontrollflöde. Två sorters loopar. For-loop. For-loop Översikt Repetition for-loopar Skriva till och läsa från filer Strömmar Eclipse Hur anpassa till vad du gillar? Skriva och läsa data Institutionen för datavetenskap Programmering 1 Rita Kovordányi 2 Kontrollflöde

Läs mer

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

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Strömmar Filer m.m. 1 In- och utmatning Definition: En ström (en.

Läs mer

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016 Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter

Läs mer

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

Tentamensskrivning Nätverksprogrammering (EDA095 - FED) 2004-05-25, kl 8-13 LUNDS TEKNISKA HÖGSKOLA Datavetenskap Nätverksprogrammering 2004 LÖSNINGAR Tentamensskrivning Nätverksprogrammering (EDA095 - FED) 2004-05-25, kl 8-13 DEL 1 - Frågor av teoretisk, principiell eller utredande

Läs mer

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

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det

Läs mer

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

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av

Läs mer

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 7 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 7 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Bubblesort, Shakersort, Mergesort Strömmar,

Läs mer

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

Föreläsnings 9 - Exceptions, I/O Föreläsnings 9 - Exceptions, I/O Josef Svenningsson Tisdag 6/11 Undantag - Exceptions Kommer ni ihåg det här programmet? Det var ett av de första ni såg i första föreläsningen. import javax.swing.*; public

Läs mer

Exempel på spelprogrammering i java.

Exempel på spelprogrammering i java. Exempel på spelprogrammering i java http://www.brackeen.com/javagamebook/ Chatten? Overloading Vi kan ha flera olika metoder med samma namn Dessa måste i så fall skiljas genom olika signaturer: parametrarnas

Läs mer

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

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

Föreläsning REPETITION & EXTENTA

Föreläsning REPETITION & EXTENTA Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder

Läs mer

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

Föreläsning 11 Aktiva objekt och trådar, strömmar, kommunikation DAT043, Föreläsning 11 Aktiva objekt och trådar, strömmar, kommunikation DAT043, 2017-02-20 Aktiva objekt och trådar Multitasking, parallella program Vanliga datorer har kunna köra flera program skenbart samtidigt

Läs mer

Lösningar för tenta 2 DAT043,

Lösningar för tenta 2 DAT043, Lösningar för tenta 2 DAT043, 2018-06-08. Uppgift 1 public class Car{ private String model; private String year; private double price; public Car(String model, String year, double price){ this.model =

Läs mer

Tentamen Nätverksprogrammering Lösningsförslag

Tentamen Nätverksprogrammering Lösningsförslag LUNDS TEKNISKA HÖGSKOLA 1(7) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2014 06 02, 8.00 13.00 Del 1 1. a) TCP (Transmission Control Protocol) och UDP (User Datagram

Läs mer

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

Objektorienterad Programmering DAT043. Föreläsning 4 23/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) Objektorienterad Programmering DAT043 Föreläsning 4 23/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Repetion: Klasser och objekt Vi definierar nya objekttyper i klasser. Ett objekt

Läs mer

1 Comparator & Comparable

1 Comparator & Comparable 1 Comparator & Comparable 1.1 Implementation av Comparable Att implementera Comparable innebär att man gör objekt av sin klass jämförbara med andra och att det därmed antas existera en naturlig ordning

Läs mer

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

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker

Läs mer

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

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 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 riktiga provet tar 45 minuter (en lektionstimme) och det

Läs mer

Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag

Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag Föreläsning 12 Föreläsning 12 Rörliga figurer Klassen Timer Undantag Något om applets Rörliga appletsfigurer Klassen Timer Undantag Något om applets Klassen javax.swing.timer I Swing finns en klass Timer

Läs mer

Föreläsning 3. Stack

Föreläsning 3. Stack Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista ADT Stack Grundprinciper: En stack

Läs mer

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

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson Lösningar till TENTAMEN I IXC003 SYSTEMUTVECKLING MED INTERNET/INTRANET, del 1 (5p) för IT3 och INTERNETPROGRAMMERING MED JAVA

Läs mer

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Tentamen ID1004 Objektorienterad programmering May 29, 2012 Omtentamen för ID1004 Objektorienterad programmering HT11, 29 maj 2012, 09-13 Denna tentamen examinerar 3 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av 12 frågor. Varje fråga

Läs mer

Tentamen , Introduktion till Java, dtaa98, dtea53

Tentamen , Introduktion till Java, dtaa98, dtea53 Mittuniversitetet 2007-09-01 Institutionen för informationsteknologi och medier Sid:1(3) dtaa98, dtea53 Martin Kjellqvist; Linda Karlsson, Ulf Reiman Lösningsansatser Tentamen 2007-09-01, Introduktion

Läs mer

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1) Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag

Läs mer

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

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker

Läs mer

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

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

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

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1

Läs mer

Datainsamling över Internet

Datainsamling över Internet Datainsamling över Internet I den här uppgiften skall du styra ett mätförlopp och hämta mätdata via internet. Från en dator skall du styra en annan dator och beordra den att utföra en mätning och skicka

Läs mer

F5 Meddelandesändning med TCP

F5 Meddelandesändning med TCP F5 Meddelandesändning med TCP EDA095 Nätverksprogrammering Roger Henriksson Datavetenskap Lunds universitet Transmission Control Protocol TCP En del av transportlagret. Applikationsprogram Transportlagret

Läs mer

F4. programmeringsteknik och Matlab

F4. programmeringsteknik och Matlab Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner

Läs mer

Lösningsförslag till tentamen

Lösningsförslag till tentamen till tentamen 1 (6) Kurs Objektorienterad programmering Program D2 Läsår 2010/2011, lp 1 Examinator Uno Holmer Uppgift 1 (10 p) Ingen lösning ges. Se kurslitteraturen. Uppgift 2 (11 p) public class CounterButton

Läs mer

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

Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016 Objektorienterad Programkonstruktion Föreläsning 11 6 dec 2016 Föreläsningen 13/12 Halvtidsrepetition Maila frågor som ni vill att jag tar upp! ccs@kth.se Processer Vad vi i dagligt tal menar när vi pratar

Läs mer

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

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl 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

Läs mer

10 Kommunikation i Java

10 Kommunikation i Java 10 Kommunikation i Java adresser filaccess över nätverk ar och sockets datagram multicasting client-server Skansholm kap 18 Adressering En URL (=Uniform Resource Locator) identifierar en resurs på WWW

Läs mer

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]

Läs mer

Tentamen Nätverksprogrammering Lösningsförslag

Tentamen Nätverksprogrammering Lösningsförslag LUNDS TEKNISKA HÖGSKOLA 1(7) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2008 05 26, 8.00 13.00 1. a) Raden sent = input.read(buffer); läser in så många bytes (dock max

Läs mer

Tentamen Nätverksprogrammering Lösningsförslag

Tentamen Nätverksprogrammering Lösningsförslag LUNDS TEKNISKA HÖGSKOLA 1(7) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2018 04 11, 8.00 13.00 Del 1 1. a) IP-numret identifierar en enskild dator på internet. b) Port-numret

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

Transport Layer. Transport Layer. F9 Meddelandesändning med UDP EDA095 Nätverksprogrammering. Java och UDP TCP/UDP

Transport Layer. Transport Layer. F9 Meddelandesändning med UDP EDA095 Nätverksprogrammering. Java och UDP TCP/UDP F9 Meddelandesändning med UDP EDA095 Roger Henriksson Datavetenskap Lunds universitet Transport Layer Transport Layer Bygger vidare på på "Internet Internet Layer" Layer / IP. / IP. Applikationsprogram

Läs mer

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1. Objektorienterad programmering E Telefonboken, än en gång Föreläsning 5 Wrapper classes Exempel, histogram. Inldening om undantag. Mer om klassen Påminnelse Vår senaste version bestod av två klasser, bägge

Läs mer

Felhantering TDDD78, TDDE30, 729A

Felhantering TDDD78, TDDE30, 729A Felhantering TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Felhantering 2 Ofta antar vi att allt ska fungera Alla filer vi behöver finns går att öppna Tillräckligt mycket minne finns Servrar som

Läs mer

F2 Java I/O - strömmar Meddelandesändning med TCP EDA095 Nätverksprogrammering

F2 Java I/O - strömmar Meddelandesändning med TCP EDA095 Nätverksprogrammering Java I/O Strömmar och filer F2 Java I/O - strömmar Meddelandesändning med TCP EDA095 Roger Henriksson Datavetenskap Lunds universitet Ström (eng. Stream) En ström är en sekvensiell följd av bytes (tecken).

Läs mer

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning

Läs mer

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine. Outline Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Undantag Design Hösttermin 2017 En frukt har ett namn Man kan lägga en frukt i

Läs mer

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

Kort om klasser och objekt En introduktion till GUI-programmering i Java Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Hashing Undantag Design Outline Hashing Undantag Design En frukt

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 10 7 dec 2015

Objektorienterad Programkonstruktion. Föreläsning 10 7 dec 2015 Objektorienterad Programkonstruktion Föreläsning 10 7 dec 2015 Nätverksprotokoll - OSI Open Systems Interconnection model (ISO standard) definierar 7 lager för nätverkskommunikation: 1 - Physical Layer:

Läs mer

Inre klasser Anonyma klasser Kloning I/O-ramverket. anonyma klasser

Inre klasser Anonyma klasser Kloning I/O-ramverket. anonyma klasser Föreläsning 12 Inre klasser Anonyma klasser Kloning I/O-ramverket 1 Nästlade klasser En nästlad klass är en klass som är definierad i en annan klass. Det finns fyra olika slag av nästlade klasser: statiska

Läs mer

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser. (16 februari 2016 F5.1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (16 februari 2016 F5.2 ) Pokertärningar

Läs mer

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

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ Organisation En array Šr en ordnad lista av všrden Varje všrde har ett numeriskt index - deklaration & anvšndning som parametrar flerdimensionella fšlt N element indexeras med 0 till N-1 0 1 2 3 4 5 6

Läs mer

F8 Meddelandesändning med UDP

F8 Meddelandesändning med UDP F8 Meddelandesändning med UDP EDA0965 Nätverksprogrammering Per Andersson Datavetenskap Lunds universitet Transport Layer Bygger vidare på Internet Layer / IP. Applikationsprogram Transportlagret Internetlagret

Läs mer

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

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning Generiska klasser Undantag Interface Nästlade klasser 1 Problem:

Läs mer

Föreläsning 5 Meddelandesändning med TCP

Föreläsning 5 Meddelandesändning med TCP Föreläsning 5 Meddelandesändning med TCP EDA095 Nätverksprogrammering Per Andersson Datavetenskap Lunds universitet Transmission Control Protocol TCP En del av transportlagret. Applikationsprogram Transportlagret

Läs mer

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

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid: Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-17, TDA540 Dag: 2018-04-06, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar:

Läs mer

DAT043 - föreläsning 8

DAT043 - föreläsning 8 DAT043 - föreläsning 8 Paket, generics, Java collections framework 2017-02-07 Paket och tillgänglighet Ovanför klasser finns en hierarkisk namespace med paket. Filer som inte deklareras i något paket finns

Läs mer

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

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering

Läs mer

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

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-03-19 Skrivtid: 14:00 19:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

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

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Abstrakt stack Abstrakt kö Länkade listor Abstrakta datatyper Det är ofta praktiskt att beskriva vilka operationer man vill kunna göra på sina

Läs mer

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

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private. Tentamen Programmeringsteknik I 2013-06-14 med lösningar 1. Svara kortfattat på följande: a) Vad är en instansvariabel? Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och

Läs mer

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

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten? Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Sammanfattning och repetition utgående från typiska tentamensuppgifter (2 mars 2018 F6 1 ) Dagens föreläsning Sammanfattning och repetition utgående från typiska tentamensuppgifter (2 mars 2018 F6 2 ) A-fråga Hur många objekt skapas av nedanstående kod? World w = new World();

Läs mer

Föreläsning 3: Händelsestyrda program och användargränssnitt

Föreläsning 3: Händelsestyrda program och användargränssnitt (2 september 2015 F3.1 ) Föreläsning 3: Händelsestyrda program och användargränssnitt Idag Från sekventiella till händelsestyrda program Lyssnare Kontroller Layout för ordning av kontroller (2 september

Läs mer

Classes och Interfaces, Objects och References, Initialization

Classes och Interfaces, Objects och References, Initialization Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class

Läs mer

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

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck Betrakta följande uttryck a +(b + c) d + e (f + g h) Parsing med Recursive Descent, Avbildningsklasser Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 22 november 2010 Beräkning med regler: multiplikation

Läs mer

Tentamen Nätverksprogrammering Lösningsförslag

Tentamen Nätverksprogrammering Lösningsförslag LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2018 03 14, 8.00 13.00 Del 1 1. Applikationslagret levererar data mellan applikationer och till

Läs mer

Lab5 för prgmedcl04 Grafik

Lab5 för prgmedcl04 Grafik Lab5 för prgmedcl04 Grafik Viktigt läs detta först:den här labblydelsen är ganska lång, detta betyder inte att labben tar lång tid.en hel del av lydelsen är anvisning om hur man går tillväga för att kunna

Läs mer

Föreläsning 5 Meddelandesändning med TCP

Föreläsning 5 Meddelandesändning med TCP Transmission Control Protocol TCP Föreläsning 5 Meddelandesändning med TCP EDA095 Per Andersson Datavetenskap Lunds universitet En del av transportlagret. Applikationsprogram Applikationsprotokoll Applikationsprogram

Läs mer

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

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 Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

(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

(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 (Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart

Läs mer