Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel

Save this PDF as:
 WORD  PNG  TXT  JPG

Storlek: px
Starta visningen från sidan:

Download "Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel"

Transkript

1 Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel Eva Blomqvist Linköpings universitet Sweden December 1,

2 Innehåll OO-programmering fortsättning Skapa objekt baserat på data q Reguljära uttryck (överkurs) Exempel December 1,

3 Vad ska en klass innehålla? (repetition) En klass kan innehålla följande: q En klassdeklaration (obligatoriskt) public class MittKlassNamn { q Klass- och instansvariabler "globala variabler" som kan kommas åt från vilken metod som helst (i klassen om de är private, även från andra klasser om de är public) Skrivs gärna högst upp i klassens kropp q En eller flera konstruktorer metod som talar om vad som händer när ett nytt objekt (instans) av metoden skapas q Klass- och instansmetoder metoder som representerar klassens och instansernas beteende - vad kan den här typen av objekt göra? q En main-metod...om det här är "huvudklassen" varifrån programmet ska köras December 1,

4 Exempel: klassen Person Klassdeklaration: public class Person { December 1,

5 Exempel: klassen Person...eller: class Person { December 1,

6 Exempel: klassen Person Klass- och instansvariabler: public class Person { //Klassvariabel public static int noofpersons = 0; //Instansvariabler public String fname; public String lname; public int year; December 1,

7 Exempel: klassen Person...men tänk på principen om inkapsling, då är det bättre såhär: public class Person { //Klassvariabel private static int noofpersons = 0; //Instansvariabler private String fname; private String lname; private int year; December 1,

8 Exempel: klassen Person Konstruktor: public class Person { //Klassvariabel private static int noofpersons = 0; //Instansvariabler private String fname; private String lname; private int year; public Person(String fn, String ln, int yr){ fname = fn; lname = ln; year = yr; noofpersons++; December 1,

9 Exempel: klassen Person En klassmetod: public class Person { //Klassvariabel private static int noofpersons = 0; //Instansvariabler private String fname; private String lname; private int year; public Person(String fn, String ln, int yr){ fname = fn; lname = ln; year = yr; noofpersons++; public static int getnoofpersons(){ return noofpersons; December 1,

10 Exempel: klassen Person En instansmetod: public class Person { //Klassvariabel private static int noofpersons = 0; //Instansvariabler private String fname; private String lname; private int year; public Person(String fn, String ln, int yr){ fname = fn; lname = ln; year = yr; noofpersons++; public static int getnoofpersons(){ return noofpersons; public String getname (){ return fname + " " + lname; December 1,

11 Exempel: klassen Person En till instansmetod: public class Person { //Klassvariabel private static int noofpersons = 0; //Instansvariabler private String fname; private String lname; private int year; public Person(String fn, String ln, int yr){ fname = fn; lname = ln; year = yr; noofpersons++; public static int getnoofpersons(){ return noofpersons; public String getname (){ return fname + " " + lname; public void setlastname (String newname){ lname = newname; 11

12 Exempel i Eclipse... December 1,

13 Sammanfattning av modifierare (rep.) Klasser q Offentlig - public q Pakettillgänglig - (om inget sägs) q Nästlade klasser (klass i klass) - private Metod i en klass q Offentlig - public q Pakettillgänglig - (om inget sägs) q Skyddad (åtkomst från subklasser + paketet) - protected q Privat för den klassen - private q Klassmetod (statisk metod) - static q Instansmetod - (om inte static) December 1,

14 Sammanfattning av modifierare (rep.) Variabel q Offentlig - public q Pakettillgänglig - (om inget sägs) q Skyddad (åtkomst från subklasser + paketet) - protected q Privat för den klassen - private q Klassvariabel (statisk variabel) - static q Instansvariabel - (om inte static) q Konstant - final Tre beslut q Åtkomst (offentlig, paket, skyddad, eller privat)? q Klass- eller instans (-variabel/-metod)? q Möjlig att ändra? December 1,

15 Läsa från fil (repetition) och skapa objekt December 1,

16 Ett exempel Anta att vi vill läsa in information om personer från en fil istället för att låta användaren mata in informationen via terminalfönstret Uppgift: En person har ett förnamn, ett efternamn och ett födelseår Hur lagrar vi detta i en fil? q q q Vi får bestämma oss för ett filformat som passar Vad sägs om: varje rad i filen representerar en person, och de olika dataelementen skiljs åt med hjälp av "," Vi måste välja något tecken som inte kommer att förekomma i de data vi vill läsa in - så att vi inte blandar ihop data och "separator-tecknet" Exempel på filinnehåll (alt1.txt): Anna,Andersson,1986 Arvid,Bengtsson,1947 December 1,

17 Ett exempel baserat på uppgift 2.1 Alternativt exempel q Varje dataelement har en egen rad i filen. Vi antar att en person alltid representeras av exakt tre rader. q Fil enligt detta alternativ (alt2.txt): Anna Andersson 1986 Arvid Bengtsson 1947 OBS I projektet får ni anta att ni vet vad filerna heter, var de ligger och formatet på data i filerna (ni får en fil av oss för att testa med), men ni får inte göra några antaganden om innehållet (t ex måste ni kunna hantera ett okänt antal personer/kunder) December 1,

18 public class PersonFromFile { public static void main(string[] args) { File personfil = new File("alt1.txt"); try { FileReader fr = new FileReader(personfil); BufferedReader br = new BufferedReader(fr); String s = br.readline(); while (s = null){ String[] personarray = s.split(","); if (personarray.length == 3){ int fodelse = Integer.parseInt(personarray[2]); Person p = new Person(personarray[0], personarray[1],fodelse); System.out.println("Skapat person: " + p.getname()); s = br.readline(); br.close(); catch (Exception e){ e.printstacktrace(); System.out.println("Antal personer = " + Person.getNoOfPersons()); 18

19 public class PersonFromFile { public static void main(string[] args) { File personfil = new File("alt1.txt"); try { FileReader fr = new FileReader(personfil); BufferedReader br = new BufferedReader(fr); String s = br.readline(); while (s = null){ String[] personarray = s.split(","); Vi skapar en klass PersonFromFile, if (personarray.length den == 3){ är publik och innehåller endast en mainmetod. (Vi behöver även tala om vilket Person p = new Person(personarray[0], int fodelse = Integer.parseInt(personarray[2]); paket klassen ligger i och importera de personarray[1],fodelse); klasser vi behöver anävnda i main-system.out.println("skapametoden, syns inte här. person: " + p.getname()); s = br.readline(); br.close(); catch (Exception e){ e.printstacktrace(); System.out.println("Antal personer = " + Person.getNoOfPersons()); 19

20 public class PersonFromFile { public static void main(string[] args) { File personfil = new File("alt1.txt"); try { FileReader fr = new FileReader(personfil); BufferedReader br = new BufferedReader(fr); String s = br.readline(); while (s = null){ String[] personarray = s.split(","); if (personarray.length == 3){ int fodelse = Integer.parseInt(personarray[2]); Person p = new Person(personarray[0], personarray[1],fodelse); System.out.println("Skapat person: " + p.getname()); Vi skapar ett File-objekt, som s = br.readline(); representerar filen alt1.txt (som ligger i vår projektkatalog) sedan försöker vi br.close(); skapa en FileReader och en catch (Exception e){ BufferedReader som använder den (kan e.printstacktrace(); kasta undantag om filen inte finns). Går det bra så läser vi in första raden i filen. System.out.println("Antal personer = " + Person.getNoOfPersons()); 20

21 public class PersonFromFile { public static void main(string[] args) { File personfil = new File("alt1.txt"); try { FileReader fr = new FileReader(personfil); BufferedReader br = new BufferedReader(fr); String s = br.readline(); while (s = null){ String[] personarray = s.split(","); if (personarray.length == 3){ int fodelse = Integer.parseInt(personarray[2]); Person p = new Person(personarray[0], personarray[1],fodelse); System.out.println("Skapat person: " + p.getname()); Vi vill läsa in alla data i hela filen, så vi s = br.readline(); har en loop som säger att vi ska fortsätta tills vi inte längre har några br.close(); rader att läsa in, dvs vi får tillbaka null catch (Exception e){ av vår BufferedReader. e.printstacktrace(); System.out.println("Antal personer = " + Person.getNoOfPersons()); 21

22 public class PersonFromFile { public static void main(string[] args) { File personfil = new File("alt1.txt"); try { FileReader fr = new FileReader(personfil); BufferedReader br = new BufferedReader(fr); String s = br.readline(); while (s = null){ String[] personarray = s.split(","); if (personarray.length == 3){ int fodelse = Integer.parseInt(personarray[2]); Person p = new Person(personarray[0], personarray[1],fodelse); System.out.println("Skapat person: " + p.getname()); s = br.readline(); För varje inläst rad gör vi följande: Dela upp raden i br.close(); sin "beståndsdelar", dvs dela catch strängen (Exception vid varje e){ kommatecken. Resultatet e.printstacktrace(); hamnar i en array av strängar. Vi vet hur formatet på filen ska System.out.println("Antal se ut, så vi vet att längden personer på = " + Person.getNoOfPersons()); arrayen borde vara 3, men kolla för säkerhets skull... 22

23 public class PersonFromFile { public static void main(string[] args) { File personfil = new File("alt1.txt"); try { FileReader fr = new FileReader(personfil); BufferedReader br = new BufferedReader(fr); String s = br.readline(); while (s = null){ String[] personarray = s.split(","); if (personarray.length == 3){ int fodelse = Integer.parseInt(personarray[2]); Person p = new Person(personarray[0], personarray[1],fodelse); System.out.println("Skapat person: " + p.getname()); s = br.readline();...gör om den tredje delsträngen till ett heltal (vi vet att br.close(); årtalet ska vara ett tal och inte catch en textsträng (Exception e){ när vi skapar vår Person-instans). e.printstacktrace(); Skapa sedan en ny instans (new) av klassen System.out.println("Antal Person, genom att anropa personer = " + Person.getNoOfPersons()); konstruktorn, och lagra resultatet i variabeln p... 23

24 public class PersonFromFile { public static void main(string[] args) { File personfil = new File("alt1.txt"); try { FileReader fr = new FileReader(personfil); BufferedReader br = new BufferedReader(fr); p String s = br.readline(); while (s = null){ String[] personarray = s.split(","); Person if (personarray.length == 3){ int fodelse = Integer.parseInt(personarray[2]); Person p = new Person(personarray[0], personarray[1],fodelse); System.out.println("Skapat person: " + p.getname()); s = br.readline();...gör om den tredje delsträngen till ett heltal (vi vet att br.close(); årtalet ska vara ett tal och inte catch en textsträng (Exception e){ när vi skapar vår Person-instans). e.printstacktrace(); Skapa sedan en ny instans (new) av klassen System.out.println("Antal Person, genom att anropa personer = " + Person.getNoOfPersons()); konstruktorn, och lagra resultatet i variabeln p Anna

25 Person public class Person { //Klassvariabel private static int noofpersons = 0; //Instansvariabler private String fname; private String lname; private int year; public Person(String fn, String ln, int yr){ fname = fn; lname = ln; year = yr; noofpersons++; public static int getnoofpersons(){ return noofpersons; public String getname (){ return fname + " " + lname; public void setlastname (String newname){ lname = newname; 25

26 public class PersonFromFile { public static void main(string[] args) { File personfil = new File("alt1.txt"); try { FileReader fr = new FileReader(personfil); BufferedReader br = new BufferedReader(fr); String s = br.readline(); while (s = null){ String[] personarray = s.split(","); if (personarray.length == 3){ int fodelse = Integer.parseInt(personarray[2]); Person p = new Person(personarray[0], personarray[1],fodelse); System.out.println("Skapat person: " + p.getname()); s = br.readline(); br.close(); catch (Exception e){ e.printstacktrace(); System.out.println("Antal personer = " + Person.getNoOfPersons());...skriv sedan ut namnet på personen genom att anropa metoden getname() på den specifika instansen av Person som finns lagrad i varaibeln p. 26

27 public class PersonFromFile { public static void main(string[] args) { File personfil = new File("alt1.txt"); try { FileReader fr = new FileReader(personfil); BufferedReader br = new BufferedReader(fr); String s = br.readline(); while (s = null){ String[] personarray = s.split(","); if (personarray.length == 3){ int fodelse = Integer.parseInt(personarray[2]); Person p = new Person(personarray[0], personarray[1],fodelse); System.out.println("Skapat person: " + p.getname()); s = br.readline(); br.close(); catch (Exception e){ e.printstacktrace(); System.out.println("Antal personer Sen = läser " + Person.getNoOfPersons()); vi in nästa rad och fortsätter loopen... 27

28 public class PersonFromFile { Arvid public static void main(string[] args) { File personfil = new File("alt1.txt"); try { FileReader fr = new FileReader(personfil); BufferedReader br = new BufferedReader(fr); String s = br.readline(); while (s = null){ String[] personarray = s.split(","); if (personarray.length == 3){ Detta varv har vi en ny sträng att hantera. Vi delar upp den br.close(); på samma catch (Exception e){ sätt, och skapar en ny Person-instans e.printstacktrace(); som vi lagrar i varaibeln p och sedan skriver ut. s = br.readline(); int fodelse = Integer.parseInt(personarray[2]); Person p = new Person(personarray[0], personarray[1],fodelse); System.out.println("Skapat person: " + p.getname()); System.out.println("Antal personer = " + Person.getNoOfPersons()); Kom ihåg att konstruktorn även räknar antalet instanser och lagrar det i en klassvariabel... p Person 28

29 Person public class Person { //Klassvariabel private static int noofpersons = 0; //Instansvariabler private String fname; private String lname; private int year; public Person(String fn, String ln, int yr){ fname = fn; lname = ln; year = yr; noofpersons++; public static int getnoofpersons(){ return noofpersons; public String getname (){ return fname + " " + lname; public void setlastname (String newname){ lname = newname; 29

30 public class PersonFromFile { public static void main(string[] args) { File personfil = new File("alt1.txt"); try { FileReader fr = new FileReader(personfil); BufferedReader br = new BufferedReader(fr); String s = br.readline(); while (s = null){ String[] personarray = s.split(","); if (personarray.length == 3){ int fodelse = Integer.parseInt(personarray[2]); Person p = new Person(personarray[0], personarray[1],fodelse); System.out.println("Skapat person: " + p.getname()); s = br.readline(); br.close(); catch (Exception e){ e.printstacktrace(); System.out.println("Antal personer Sen = läser " + Person.getNoOfPersons()); vi in nästa rad, men nu kommer vi få tillbaka null, vi har nått EOF... 30

31 public class PersonFromFile { public static void main(string[] args) { File personfil = new File("alt1.txt"); try { FileReader fr = new FileReader(personfil); BufferedReader br = new BufferedReader(fr); String s = br.readline(); while (s = null){ String[] personarray = s.split(","); if (personarray.length == 3){ int fodelse = Integer.parseInt(personarray[2]); Person p = new Person(personarray[0], personarray[1],fodelse); System.out.println("Skapat person: " + p.getname()); s = br.readline(); br.close(); catch (Exception e){ e.printstacktrace(); System.out.println("Antal personer Vi stänger = " + Person.getNoOfPersons()); strömmen... 31

32 public class PersonFromFile { public static void main(string[] args) { File personfil = new File("alt1.txt"); try { FileReader fr = new FileReader(personfil); BufferedReader br = new BufferedReader(fr); String s = br.readline(); while (s = null){ String[] personarray = s.split(","); if (personarray.length == 3){ int fodelse = Integer.parseInt(personarray[2]); Person p = new Person(personarray[0], personarray[1],fodelse); Och avslutar med att skriva ut värdet på System.out.println("Skapat person: " + p.getname()); klassvariabeln noofpersons från Person-klassen. Den är private, så vi får s = br.readline(); använda en get-metod för att komma åt den br.close(); catch (Exception e){ e.printstacktrace(); System.out.println("Antal personer = " + Person.getNoOfPersons()); 32

33 public class PersonFromFile2 { public static void main(string[] args) { File personfil = new File("alt2.txt"); try { FileReader fr = new FileReader(personfil); BufferedReader br = new BufferedReader(fr); String fornamn=br.readline(); while (fornamn = null){ String enamn = br.readline(); int fodelse = Integer.parseInt(br.readLine()); Person p = new Person(fornamn,enamn,fodelse); System.out.println("Skapat person: " + p.getname()); fornamn=br.readline(); br.close(); catch (Exception e){ e.printstacktrace(); System.out.println("Antal personer = " + Person.getNoOfPersons()); 33

34 Reguljära uttryck (överkurs) OBS Överkurs - men kan vara bra att ha t ex till projektet - läs igenom på egen hand December 1,

35 Vad är ett reguljärt uttryck? Ett sätt att beskriva en mängd av textsträngar Ett sätt att beskriva ett "mönster" som textsträngar kan uppfylla Används ofta för att söka efter strängar, eller manipulera dem q q q Exempel: hitta alla textsträngar som innehåller bokstavssekvensen "abc" Exempel: byt ut alla förekomster av sekvensen "abc" mot bokstaven "d" Används när ni anropar s.split(","); -, är ett reguljärt uttryck Olika syntax i olika programmeringsspråk och gänssnitt men samma principer - här: Java-syntax December 1,

36 Grundprincipen Ett tecken matchar sig självt q Exempel: det reguljära uttrycket a matchar index 0 och 2 i textsträngen apa q Exempel: det reguljära uttrycket ap matchar index 0-1, 3-4 och 6-7 i textsträngen apaapaapa q, matchar sig självt när vi ska dela upp strängen mha split() Men... om vi i vår Java-kod frågar om a matchar apa kommer svaret vara false - apa innehåller mer än bara ett enda a December 1,

37 Operatorer... Konkatenering Alternativ Teckenklasser "Jokertecken" Upprepning I Java finns följande reserverade tecken för reguljära uttryck: < ( [ { \ ^ - = $ ] )? * +. > q Om man vill matcha tecknet självt används \ framför som "escape character" - Exempel: \? matchar strängen? December 1,

38 Operatorer - översikt Konkatenering q det reguljära uttrycket ap matchar index 0-1, 3-4 och 6-7 i textsträngen apaapaapa - ap är konkateneringen av a och p Alternativ - q det reguljära uttrycket a p matchar antingen strängen a eller strängen p Teckenklasser = beskriver en mängd av tecken q Omgärdas av [ ] q q [abc] - matchar någon av bokstäverna a, b eller c [a-za-z] - matchar en (stor eller liten) bokstav i engelska alfabetet December 1,

39 Operatorer - översikt Jokertecken q. matchar vilket tecken som helst Upprepning q q q? gång, exempel: a? = matchar tecknet a eller inget tecken alls * - 0-många gånger, exempel: a* = matchar inget tecken alls, eller tecknet a en eller flera gånger i rad många gånger, exempel: a+ = matchar tecknet a en eller flera gånger i rad December 1,

40 Exempel [a-za-z]*a matchar alla strängar som bara innehåller bokstäver i engelska alfabetet och avslutas med ett litet a [0-9][0-9] matchar alla heltal (uttryckta som en textsträng) med två siffror, dvs tal från 00 till 99 ; matchar ett semikolon, ;+ matchar ett eller flera semikolon i rad.[a-za-z]. matchar alla strängar med tre tecken där det mittersta tecknet är en bokstav i engelska alfabetet Från tidigare: s.split(","); q q Dela textsträngen runt den delsträng som matchar uttrycket, dvs "dela textsträngen runt alla kommatecken" Vi skulle kunna blanda separatorer: s.split(", ;"); December 1,

41 Sammanfattning Att skapa en klass q q Klassens beståndsdelar Exempel: Person Repetition: modifierare Att skapa instanser av en klass q Exempel som läser in data från fil och skapar instanser December 1,

42 December 1,

Laboration 1 - Grunderna för OOP i Java

Laboration 1 - Grunderna för OOP i Java Uppdaterad: 2006-08-31 Laboration 1 - Grunderna för OOP i Java Inledning Laborationen går ut på att lära sig grunderna för objektorienterad programmering, samt motsvarande språkkonstruktioner i Java. Labben

Läs mer

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305 Klass Object, instans av klass public/private Klassvariabler och klassmetoder 1 Array och ArrayList Arrayer och ArrayList är till för att innehålla

Läs mer

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel Objekt Instansvariabler Instansmetoder Klassvariabler Klassmetoder Inkapsling Föreläsning 6 Vad är ett objekt? Ett objekt har egenskaper, som kallas för objektets attribut Egenskaperna beskriver tillsammans

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

Föreläsning 7: Objektorienterad programmering - introduktion

Föreläsning 7: Objektorienterad programmering - introduktion Föreläsning 7: Objektorienterad programmering - introduktion Eva Blomqvist eva.blomqvist@liu.se Linköpings universitet Sweden December 1, 2013 1 Innehåll Del 2 i kursen Objektorientering - vad är det?

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

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering Programmeringsteknik för I1 Övning 2 Administrativt Övningsgrupp 2 (Sal E32/D32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kontrollera att ni har fått Lab2 inrapporterad

Läs mer

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.

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. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

Lösningsförslag övning 2.

Lösningsförslag övning 2. Objektorienterad programmering, Z1 Lösningsförslag övning 2. Uppgift 1. public class SIUnits { public static double yardspermeter = 1.093613; public static double poundperkilo = 2.204623; public static

Läs mer

JAVA Mer om klasser och objektorientering

JAVA Mer om klasser och objektorientering JAVA Mer om klasser och objektorientering Begreppet package - paket Package används när man t ex vill skapa ett eget bibliotek med klasser. Sen är det då meningen att man ska importera detta paket i det

Läs mer

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 14 I torsdags & fredags: arrayer Deklaration, initiering, åtkomst Arrayer är referenser Arrayer som parametrar och returvärden Exempel

Läs mer

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

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt Föreläsning 4 Klasser Och Objekt Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning Objekt skapas från klassbeskrivningen - instansieras

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

JAVAUTVECKLING LEKTION 11

JAVAUTVECKLING LEKTION 11 JAVAUTVECKLING LEKTION 11 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Mer om klasser och objekt Statiska/instans-metoder Överlagrade metoder Inkapsling Konstruktorer 1 UPPGIFT

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

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else Förkunskaper från tidigare föreläsningar: Objektorienterad Programmering (TDDC77) Föreläsning IX: Klasser och Objekt, Instantiering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 I STONE I Variabler,

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

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

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp

Läs mer

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 TDDE11, 725G90/1 Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Introduktion OOP Instanser, instansvariabler, instansmetoder

Läs mer

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

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: Att skapa en klass kvadrat Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: public class Kvadrat { private int sida; Det var väl inte

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

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

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... } En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class

Läs mer

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

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer. Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language

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

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

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel Programmeringsteknik för Bio1 och I1 Övning 2 Kort repetition Övningsgrupp 3 (Sal E33) 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/2d1310/

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

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

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

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning 2I1049 Föreläsning 5 Objektorienterad programmering i Java KTH-MI Peter Mozelius Objektorientering Världar uppbyggda av objekt Inte helt olikt vår egen värld Ett sätt att modularisera våra system Objekten

Läs mer

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder Introduktion TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder OO är den mest använda programmeringsparadigmen idag, viktigt steg att lära sig och använda OO. Klasser är byggstenen i

Läs mer

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

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes Idag statiska metoder och variabler private/public/protected final, abstrakta klasser, gränssnitt, delegering wrapper classes ett lite större exempel Objectorienterad programmering Sida 1 Vad vi vet om

Läs mer

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

Grundläggande programmering med C# 7,5 högskolepoäng Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)

Läs mer

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private Inkapsling tumregler Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler Tobias Wrigstad (baserat på material från Tom Smedsaas) 5 november 2010 1. Man skall

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

LÖSNINGSFÖRSLAG TENTAMEN

LÖSNINGSFÖRSLAG TENTAMEN LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND

Läs mer

Objekt och referenser

Objekt och referenser Objekt och referenser Antag att vi har följande enkla klass: public class Person { private String namn; private String adress; private String personnummer; public Person() { namn = NN ; adress = ; personnummer

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

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

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/3 2014 Innehåll Kursöversikt Javarepetition/Javaintroduktion UML - klassdiagram-introduktion i anslutning till Java-exemplen Kursmål,

Läs mer

725G61 - Laboration 6 Objektorientering, modellering och arv. Johan Falkenjack

725G61 - Laboration 6 Objektorientering, modellering och arv. Johan Falkenjack 725G61 - Laboration 6 Objektorientering, modellering och arv Johan Falkenjack November 27, 2013 1 Inledning I labb 5 tittade vi på grundläggande objektorientering och skapade en första klass som vi kunde

Läs mer

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

Läs mer

Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering!

Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering! Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering! Gränssnitt igen För att kunna ändra på olika delar av programmet utan att andra delar

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

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

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

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Instansiering Åtkomst Abstrakt datatyp UML Överlagring

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

Laboration 3, uppgift En klass för en räknare

Laboration 3, uppgift En klass för en räknare Laboration 3, uppgift 1 3.1 En klass för en räknare Ursprungligen skriven av Erland Holmström. Magnus Myreen har uppdaterat vissa delar. Hösten 2014 Anvisningar: Programmet skall utformas enligt de principer

Läs mer

Introduktion till Java

Introduktion till Java Översikt Introduktion till Java Språket Java Operatorer Kontrollsatser Överlagring This Klassens beståndsdelar Klassvariabler och klassmetoder Instansvariabler och instansmetoder Strängar Paket Programmering

Läs mer

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

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

Malmö högskola 2008/2009 CTS

Malmö högskola 2008/2009 CTS Laboration 8 Avsikten med laborationen är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom

Läs mer

Objekt och klasser - Introduktion

Objekt och klasser - Introduktion Objekt och klasser - Introduktion Begreppet objekt Hur klasser används för att skapa objekt Fördefinierade klasser Metoder och parameteröverföring Definiera klasser Modifierare Statiska variabler och metoder

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

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

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4: (22 januari 2016 F2.1 ) Föreläsning 2 Täcker material från lektion 1, 2, 3 och 4: Datatyper Aritmetik Tecken och strängar Klasser, Objekt Metoder Villkor, villkorssatser och iterationer main-metoden Kodstandard

Läs mer

Design av en klass BankAccount som representerar ett bankkonto

Design av en klass BankAccount som representerar ett bankkonto Klasser Kommer ta upp följande begrepp: Design av en klass Implementera en klass Testa en klass med en mainmetod Instansvariabler, lokala variabler, formella parametrar, aktuella parametrar och variablers

Läs mer

2203$( Föreläsning ii - Mer om Java bla this och konstruktorer. Exempel: lampa

2203$( Föreläsning ii - Mer om Java bla this och konstruktorer. Exempel: lampa 2203$( Föreläsning ii - Mer om Java bla this och konstruktorer Av Björn Eiderbäck Email: bjorne@nada.kth.se Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: 7906277 previous next Exempel: lampa Light1 #

Läs mer

Klasshierarkier - repetition

Klasshierarkier - repetition Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet

Läs mer

Klasser och objekt. Henrik Johansson. August 20, 2008

Klasser och objekt. Henrik Johansson. August 20, 2008 Föreläsning 5 Klasser och objekt Henrik Johansson August 20, 2008 Ett objekt är en modell av ett fysisikt eller ett tänkt ting. Objektet och det som vi kan göra med det beskrivs av en mall, en klass. Ett

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

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.

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. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye DD2310 Javaprogrammering för Pythonprogrammerare Johan Boye James Gosling pappa till Java Hej.java public class Hej { public static void main( String[] args ) { System.out.println( "Hej" ); Java basics

Läs mer

Mer om klasser och objekt

Mer om klasser och objekt Klassvariabler och klassmetoder En klass kan innehålla klassvariabler och klassmetoder. TDA143 I1 Programmerade system Föreläsning 5 (OH-bilder 5) Mer om klasser och objekt Christer Carlsson Det som skiljer

Läs mer

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus. Fält av referenser Tanken med objekt är man kan bygga ihop olika sorts objekt till nya saker. Sålunda kan man exempelvis använda Bil och Trafikljus att konstruera ett Väg-objekt. Om Bil och Trafikljus

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

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F5:1 OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling Vi skall nu titta på ett exempel med myror. Varje myra har ett namn

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

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

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

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

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

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)

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

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

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34 Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger

Läs mer

Modeller, Objekt och Klasser

Modeller, Objekt och Klasser Modeller, Objekt och Klasser Bildserie 3 Objekt Orienterad Programmering OO-programmering bygger på att vi som människor uppfattar tillvaron i termer av objekt - Bastu, pizza, öl,... Det borde vara lättare

Läs mer

Tentamen i Grundläggande Programvaruutveckling, TDA548

Tentamen i Grundläggande Programvaruutveckling, TDA548 Tentamen i Grundläggande Programvaruutveckling, Joachim von Hacht/Magnus Myreen Datum: 2017-08-14 Tid: 14.00-18.00 Hjälpmedel: Lexikon Engelskt-Valfritt språk. Betygsgränser: U: -23 3: 24-37 4: 38-47 5

Läs mer

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

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen. TT Kapitel 3. Husdjur & Fisk Javaklasser Translation by Leif Lourié Java program består av klasser som beskriver saker (objekt) som finns på riktigt. Även om det finns många olika sätt att skriva program

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (

Läs mer

Föreläsning 9: Arv och UML

Föreläsning 9: Arv och UML TDA 545: Objektorienterad programmering Föreläsning 9: Arv och UML Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Quiz Vad betyder static? Varför skriver man get-metoder? public int getpos() { return pos;

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

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

a. Vilka av följande påståenden är riktiga? Observera att felaktigt valda påståenden ger poängavdrag. (4p) TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för Sy 2 2002-03-15, kl 09.00 13.00 Hjälpmedel: Endast bifogat kompendium Max: 66 poäng, för godkänt krävs 50%. Skriv tydliga och kortfattade svar 1. Grunderna

Läs mer

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander F4 Klasser och Metoder ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Klasser och objekt Klasser definierar (utgör idén) Objekt instantierar (utgör förekomsten) En klassdefinition Många

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

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

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer

Läs mer

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

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 Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor i Java Först följer frågor av flervalstyp. Frågorna är inte ordnade efter svårighetsgrad. 1. Skillnaden mellan typerna int och

Läs mer

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller

Läs mer

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

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

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

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

DAT043 - Föreläsning 7

DAT043 - Föreläsning 7 DAT043 - Föreläsning 7 Model-View-Controller, mer om klasser och interface (arv, ) 2017-02-06 Designmönstret Observer avläser Observer Observable meddelar Observer avläser En eller flera objekt registrerar

Läs mer

Tentamen ID1004 Objektorienterad programmering April 7, 2015

Tentamen ID1004 Objektorienterad programmering April 7, 2015 Ordinarie tentamen för ID1004 Objektorienterad programmering, 7 april 2015 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av en obligatorisk del och

Läs mer

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

Läs mer

Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-05-25

Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-05-25 Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-0-2 Skrivtid: 09.00 14.00 Hjälpmedel: Inga Lärare: Anders Berglund. Elena Fersman besöker tentan vid två tillfällen: cirka kl. 10.30 samt cirka

Läs mer

Objektorienterad programmering i Java I

Objektorienterad programmering i Java I Laboration 4 Objektorienterad programmering i Java I Uppgifter: 1 Beräknad tid: 6 9 timmar Att läsa: Kapitel 7, 8 (stränghantering, arrayer och Vector) Utdelat material (paket) Syfte: Att kunna använda

Läs mer

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Camilla Kirkegaard camilla.kirkegaard@liu.se Linköpings universitet Sweden October 14, 2013 1 Innehåll n n n n n Repetition Typomvandlingar

Läs mer

Tentamen i Programmeringsteknik I

Tentamen i Programmeringsteknik I Tentamen i Programmeringsteknik I 2016-10-17 Skrivtid: 8:00 13:00 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

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin) Lektion Java Grunder Javas historia Ursprungligen utvecklades Java (1991) för att användas i olika typer av konsumentelektronik (mikrovågsugnar, videoapparater) av programmerare på Sun. Språket kallades

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016 Objektorienterad Programkonstruktion Föreläsning 2 2 nov 2016 Objekt - klass Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 Objekt - klass Objekt - klass Objekt - klass + Objekt - klass public class

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-06-11 Skrivtid: 0900 1400 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

//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.

//Använd main som ett handtag för att hålla ihop programmet. //Själva programmet finns i övriga klasser. /*==================================================================== Detta program hör ihop med dokumentet EXEMPEL_AVERAGE_POINTS.PDF där det finns förklaringar. ======================================================================*/

Läs mer

Modern Programmering (2546) Tentamen lördag 30.09.2000

Modern Programmering (2546) Tentamen lördag 30.09.2000 Modern Programmering (2546) Tentamen lördag 30.09.2000 Svara på minst sex frågor. Om du svarar på alla sju frågorna faller den fråga bort som ger minst antal poäng. Maximalt 70 poäng. Det krävs 35 poäng

Läs mer