Java Sommarkurs. Institutionen för datavetenskap. Här sitter vi. Kursen kontaktpersoner utbildningsprogram

Storlek: px
Starta visningen från sidan:

Download "Java Sommarkurs. Institutionen för datavetenskap. Här sitter vi. Kursen kontaktpersoner utbildningsprogram"

Transkript

1 Institutionen för datavetenskap Java Sommarkurs Jürgen Börstler Thomas Johansson Marie Nordström utbildningsprogram Datavetenskap Teknisk datavetenskap C:a 80 anställda (5 professorer) Forskning inom många olika ämnen Teknisk-vetenskapliga o parallella beräkningar Medicinsk informatik Kognitionsvetenskap Flera forskningscentra Kognitionsvetenskap Interaktion och design Programvaruteknik Teoretisk datalogi MDI... HPC2N VR-Lab Interactive Institute Java--SU01 jubo, marie, thomasj@cs.umu.se, Kursen kontaktpersoner Här sitter vi Studentexpeditionen Inga Bohman (inga, 5598) Anne-Lie Persson (anne-lie, 6130) Studievägledare Peter Stenberg (peter, 6985) Support Magdalena Kågström (support, 9950) Kursens lärare Jürgen Börstler (jubo, 6735) Marie Nordström (marie, 7708) Thomas Johansson (thomasj, 6259) Vä Ex MN TJ JB Su Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

2 Här finns labsalarna Kursens mål Kunskaper om problemlösning och programmering Färdighet i datoranvändning och programmering i Java Kännedom om begrepp, metoder och hjälpmedel för programkonstruktion Datorlab Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se, Lektioner Datorövningar Obligatoriska uppgifter Individuell handledning Studie Kursens uppläggning Två olika sätt att förmedla stoffet Samma innehåll totalt Gemensamma föreläsningar Olika datorövningar Grupp 1: Objekt och design tidigt Grupp 2: Vår beprövade ansats Grupp 3: Deltar ej i övningarna Examination 3 obligatoriska uppgifter Teoriprov Praktikprov Regelbundet deltagandet viktig! Lunch på Björken Java--SU01 jubo, marie, thomasj@cs.umu.se, Kursmaterial Kursbok Lewis/Loftus: Java Software Solutions, 2nd edition, Addison- Wesley, OBS! Vi följer inte bokens upplägg till punkt och pricka OH bilderna från föreläsningen (finns på websidan) Diverse material som kommer att delas ut så småningom Hemsidan: Java--SU01 jubo, marie, thomasj@cs.umu.se,

3 Innehåll Programvaruutveckling Programvaruutveckling och programmering OOP snabbintroduktion Triangel exemplet Datatyper Uttryck Satser Arv Polymorfi Interfaces Metodik i programvaruutveckling Fält Undantag Filer och in-/utmatning Grafik GUI:s Design (CRC) Rekursion Applets Vitsen med att skriva ett program är att lösa ett problem Typiska steg för att lösa ett problem: Första problemet Dela in problemet i hanterliga delar Skissa och konsra en lösning Fundera på alternativa lösningar Förfina lösningen Realisera lösningen Testa lösningen och åtgärda alla fel Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se, Programmering Programmering är att formulera en lösning till ett problem i ett programspråk. Känt problem Känd lösning Känt programspråk Problemlösning m h a datorer 0. Lös problemet 1. Skriv ett program som löser problemet 2. Mata in programmet i datorn 3. Exekvera programmet 4. Läs av resultatet Programmering är inte ett sätt att komma fram till en lösning. Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

4 Programmering i Java Kodning är bara en liten del i programvaruutvecklingen programmering <fil>.java Java programkod översättning compiler exekvering <fil>.class Java bytekod exekvering exekvering 67% 6% 1% 6% 5% 7% 8% Analys Planering Design Kodning Testning Integration Underhåll Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se, Sent upptäckta fel blir dyra att åtgärda Problemlösning igen Olika studier IBM AS/400 (1994) 368 Många projekt misslyckas, eftersom utvecklarna inte till fullo förstår problemet som ska lösas Alla antaganden måste klargöras Möjliga feltolkningar måste undanröjas Kravinsamling Analys Planering Design 10 Kodning Integration Underhåll När problem blir större, måste lösningen delas in i hanterliga delar Denna teknik är fundamental för programvaruutveckling I objektorienterad utveckling delas lösningen in i så kallade objekt och klasser Java är ett objektorienterad språk Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

5 Innehåll Objekt Programvaruutveckling och programmering OOP snabbintroduktion Triangel exemplet Datatyper Uttryck Satser Arv Polymorfi Interfaces Metodik i programvaruutveckling Fält Undantag Filer och in-/utmatning Grafik GUI:s Design (CRC) Rekursion Applets Ett objekt är en individuellt identifierbar entitet som kan vara konkret eller abstrakt. Ett objekt har tillstånd, beteende och identitet. Reellt, gripbart, synligt ting (t ex en specifik person) Abstrakt ting (t ex en tid eller en kurs) Varje objekt har ett tillstånd, ett beteende och en identitet. Tillståndet beskriver objektets egenskaper (t ex adress och ålder hos en person) Beteendet beskriver vad objektet kan göra (t ex flytta). OBS! Detta kan innebära att tillståndet ändras Identiteten skiljer ett objekt från alla andra objekt Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se, Klass Objekt vs klass En klass är en byggplan för objekt av samma sort. Alla objekt av en klass (instanser) har samma sorts egenskaper och beteendet En klass beskriver en mängd liknande objekt namn ålder address flytta... Person namn egenskaper (attribut) beteende (metoder) bigyellowtriangle smallbluetriangle height width xposition yposition color Triangle changecolor changesize move... Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

6 Ett programspråk specificerar ord och symboler som får användas för att skriva program regler som bestämmer hur ord och symboler får sättas ihop Syntaxen beskriver hur giltiga programstrukturer (satser) måste se ut (se Appendix L i kursboken) Basic assignment Identifier = Programspråk Expression Semantiken beskriver vad precis olika satser betyder (dvs hur datorn ska tolka programmen) Värdet av uttrycket i expression tilldelas ( sparas i ) variablen identifier. Java--SU01 jubo, marie, thomasj@cs.umu.se, ; Identifierare och variabler Identifierare är namn på olika storheter som definieras av programmeraren Identifierare får innehålla bokstäver, siffror, understrykningstecknet (_), och valuta tecknen (t ex dollar tecknet) Identifierare får ej inledas med en siffra Identifierare måste vara entydiga Java är case sensitive, dvs Total är olika total Identifierare för värden eller objekt kallas variabler Identifier Java Letter Java Letter Java Digit Java Letter Java--SU01 jubo, marie, thomasj@cs.umu.se, a - z A - Z $ _ Java Digit 0-9 Reserverade ord får inte användas som identifierare Exempel på reserverade ord (det finns 59 sty): abstract boolean class const class extends float for Reserverade ord if implements import int import private public return static this void while Reserverade ord brukar visas i en annan färg i editorn Variabler och datatyper Variabler används för att spara data Variabler måste deklareras med datatyp och namn innan de får användas Basic Variable Declaration Primitive Type Identifier ; Class Type, En primitiv datatyp kan vara heltal (byte, short, int, long), flyttal (float, double), tecken (char) eller boolean En klasstyp är ett namn på en klass (t ex Triangle) Primitiva datatyper kallas också inbyggda datatyper Klasstyper kallas också användardefinierade datatyper Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

7 Tilldelning av värden En variabel innehåller antingen ett primitivt värde eller en referens till ett objekt Värdet av en variabel efter deklarationen är odefinierad Referenser som inte pekar till ett objekt har värdet null Variabler måste initialiseras En variabel tilldelas ett (nytt) värde genom = Basic assignment Identifier = Expression ; Exempel int value, discount; float net_price; value = 123; net_price = 123.0; discount = -15; net_price = 1.23e2; char acharacter; acharacter = A ; acharacter = \n ; boolean continue = ; Triangle bigyellowtriangle, smallbluetriangle; bigyellowtriangle =??? Hur skaffas objekt? Initialisering är tillåten i samband deklarationen! Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se, Skapa och manipulera objekt Varje klass har (minst) en konstruktor för skapa (nya) objekt (s k instanser) av denna klass Variabeln tilldelas en referens till objektet Konstruktorn används genom new operatorn Referenser vs värden Tilldelning har lite olika effekt för primitiva datatyper och klasstyper! Primitiva datatyper: Variabel själva värdet Klasstyper: Variabel = referens till objektet Triangle bigyellowtriangle = new Triangle(); Objektet manipuleras med hjälp av objektets metoder Kom ihåg: Metoderna definieras i klassen Klassnamn Attribut (egenskaper) Metoder (beteendet) int i1 = 5, i2 = 10; i1: 5 i2: 10 i2 = i1; i1: 5 i2: 5 Triangle t1 = new Triangle(); Triangle t2 = new Triangle(); t1 t2 t2 = t1; t1 t2 Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

8 Alias och garbage collection Innehåll Triangle t1 = new Triangle(); Triangle t2 = new Triangle(); t1 t2 t2 = t1; t1 t2 t2.changecolor ( red ); t1 t2 Ett objekt med flera namn; namnen kallas alias Objekt som inte längre kan nås; rensas bort automatiskt (garbage collection) Båda trianglar (t1 och t2) har blivit röda Var försiktig med aliasing Programvaruutveckling och programmering OOP snabbintroduktion Triangel exemplet Datatyper Uttryck Satser Arv Polymorfi Interfaces Metodik i programvaruutveckling Fält Undantag Filer och in-/utmatning Grafik GUI:s Design (CRC) Rekursion Applets Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se, Triangle height width xposition yposition color changecolor changesize move... Instantiering och manipulation Triangle atriangle = new Triangle(); atriangle.move(); atriangle.changecolor( blue ); atriangle.move(); atriangle.changesize(50, 100); En vanlig metodanrop ser ut så här <objektnamn>.<metodnamn> (<parameterlista>); Java--SU01 jubo, marie, thomasj@cs.umu.se, public class Triangle private int height; private int width; private int xposition; private int yposition; private String color; Triangle i detalj 1 /** * Create a new triangle at default position with default color. */ public Triangle()... height = 30; width = 40; xposition = 50; yposition = 15; color = "green"; draw(); Att göra attribut oåtkomliga är bra programmeringsstil Konstruktorn Kommentar Java--SU01 jubo, marie, thomasj@cs.umu.se,

9 Triangle i detalj 2 /** * Move the square a few pixels down. */ Kommentar public void move() erase(); // clear old position yposition = yposition + 100; // determine new position draw(); // draw on new position En metod /** * Change the size to the new size (in pixels). * PRE: Size must be >= 0. */ public void changesize (int newheight, int newwidth) erase(); height = newheight; width = newwidth; draw(); Parameter... Java--SU01 jubo, marie, thomasj@cs.umu.se, Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar variabel deklaration Class Body Java--SU01 jubo, marie, thomasj@cs.umu.se, Syntax: Basic Method Declaration Modifier Exempel: Metoddeklaration Type void Identifier Ej resultat Parameters Method Body public void changesize (int newheight, int newwidth) Parameter public float getarea ( ) Resultatets datatyp Parameter En metod kan ta noll eller flera parameter Varje parameter specificeras med datatyp och namn, de s k formella parametrar Antal, datatyperna och ordningen av de formella parametrar, metodnamnet och resultattyp kallas en metods signatur De s k aktuella parametrar i metodanropet måste vara kompatibelt med metodens signatur Exempel: atriangle.changesize (100, 50); atriangle.changesize (100); atriangle.changesize ( 1, 50); char c = atriangle.getarea (); // OK // fel antal // fel datatyp // fel datatyp Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

10 Parameteröverföring I Java överförs alla parameter by value Värdet på den aktuella parametern kopieras till den formella parametern (motsvarar tilldelningssats) När en referens överförs blir den formella parametern ett alias för aktuell parameter Return-satsen anger vilket värde som returneras (dvs överförs tillbaka) Överförs också by value Metodbody Innehåller lokala deklarationer & exekverbara satser Om resultattyp är inte void måste minst en returnsats finnas Exempel: public float getarea () float temp = 0.0; temp = height * width / 2; return temp; Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se, Konstruktordeklaration En konstruktor är en speciell metod Samma namn som klassen Ingen explicit resultattyp Används för att initialisera objektets attribut Får ha parameter, t ex för att påverka initialiseringen Exempel: public Triangle () Grafisk notation - int height - int width - int xposition - int yposition - String color Triangle + Triangle ( ) + changecolor (String newcolor) + changesize (int newheight, int newwidth) + move ( ) + float getarea ( ) + boolean isequilateral ( ) // liksidigt?... Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

11 Abstraktion, information hiding och inkapsling En abstraktion är en förenklad men trogen modell av nånting som kan vara väldigt komplicerat En objekt/klass är abstrakt i den meningen att vi inte behöver känner till alla detaljer för att kunna använda det Vi behöver t ex inte känna till koden till move Med information hiding menas att viss information görs oåtkomlig för användaren T ex för att säkerställa att xposition och yposition bara förändras på ett kontrollerad sätt (genom move) Med inkapsling menas att abstraktion och information hiding används för att definierar meningsfulla klasser Abstraktionen görs offentlig (public) Känslig och oväsentlig data görs oåtkomlig (private) Java--SU01 jubo, marie, thomasj@cs.umu.se, Programmeringsfel En dator gör inte det programmeraren menade, den gör precis det ett programs semantik föreskriver. Man kan skiljer tre typer av fel Kompileringsfel När kompilatorn upptäcker att syntaxreglerna ej har följts eller att vissa typer ej är kompatibla (t ex int i = c ;) Run-time fel När programmet kraschar när det körs, t ex pga division med noll eller att typer ej är kompatibla Logiska fel När programmet verkar fungera bra, men levererar fel resultat Java--SU01 jubo, marie, thomasj@cs.umu.se, Programvaruutveckling och programmering OOP snabbintroduktion Triangel exemplet Datatyper Uttryck Satser Arv Polymorfi Interfaces Innehåll Metodik i programvaruutveckling Fält Undantag Filer och in-/utmatning Grafik GUI:s Design (CRC) Rekursion Applets Primitiva datatyper: Hel- och flyttal De olika heltal och flyttal typer har olika storlek Kan ta upp olika värden med olik noggrannhet Typ byte short int long float double Storlek 8 bits 16 bits 32 bits 64 bits 32 bits 64 bits Minimum ,768-2,147,483,648 < -9 x /- 3.4 x /- 1.7 x Maximum ,767 2,147,483,647 > 9 x med 7 signifikanta siffror med 15 signifikanta siffror Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

12 Primitiva datatyper: Tecken En variabel av datatypen char sparar precis ett s k Unicode tecken A character set is an ordered list of characters, and each character corresponds to a unique number Det finns 65,536 unika Unicode tecken (16 bit) med tecken och symboler från olika språk, t ex 'å' och 'ö' Alla tecken är ordnade och varje tecken motsvarar en siffra (detta underlättar att kolla om ett tecken ligger t ex mellan 'a' och 'z') Se Appendix C för detaljer Primitiva datatyper: Boolean En variabel av datatypen boolean innehåller antingen värdet eller värdet Används ofta för att definiera villkor logik Det finns tre logiska operatorer i Java inte (!), och (&&) och eller ( ) a!a a b a && b a b Java--SU01 jubo, marie, thomasj@cs.umu.se, back Java--SU01 jubo, marie, thomasj@cs.umu.se, Konstanter Innehåll Variabler som får inte ändras Markeras med reserverade ordet final Guideline: Använd bara stora bokstäver Exempel: final double PI = ; final char NEWLINE = \n ; Fördelar Vettiga namn istället för konstiga siffror eller tecken Lättare att förstå koden Enklare att uppdatera Programvaruutveckling och programmering OOP snabbintroduktion Triangel exemplet Datatyper Uttryck Satser Arv Polymorfi Interfaces Metodik i programvaruutveckling Fält Undantag Filer och in-/utmatning Grafik GUI:s Design (CRC) Rekursion Applets Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

13 Uttryck 1 Uttryck 2 Ett uttryck är en programkonstruktion som producerar (evalueras till) ett resultatvärde av en viss datatyp. Ett uttryck kan (bl a) vara: Ett primitivt värde (literal) -5, 1.23e2, c, En variabel smallbluerectangle, PI En metodanrop atriangle.changesize(50, 100); En tilldelning height = newheight Java--SU01 jubo, marie, thomasj@cs.umu.se, Ett uttryck är en syntaktiskt korrekt kombination av literaler, variabler, metodanrop, tilldelningar och operatorer. Typiska exempel på operatorer: Aritmetiska, t ex +, -, *, /, Logiska:!, &&, Relationala, t ex ==,!=, <, >=, Uttryck kan vara komplext Priotitetsordning för att bestämma hur det ska evalueras Se Appendix D för en fullständig lista Java--SU01 jubo, marie, thomasj@cs.umu.se, Prioritetsordning Exempel Operatorer med lägre prioritet evalueras först Vid samma prioritet avgör associativiteten hos operatorerna (vänster-höger / höger-vänster) Uttryck: Prioritetsordning: Evalueringsordning: Resultat: / 5-10 % 3 Använd parenteser för att vara på säkra sidan (5 + (12 / 5)) - (10 % 3) Uttryck * 4 / 2 3 * (3 * 13) * (13 + 2) 4 * (11-6) * ( ) (5 * (4-1)) / 2 Resultat Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

14 Uttryck 3 Innehåll Resultatvärdets datatyp hos ett uttryck beror på operatorn och datatyperna hos operanderna. Uttryck 17 / / 5 17 / / 12 9 / % 2 7 % % 2.5 Resultat int dollar = 25; float money; money = dollar; // OK, money blir 25.0 dollar = money; // FEL, typerna är // icke kompatibla Programvaruutveckling och programmering OOP snabbintroduktion Triangel exemplet Datatyper Uttryck Satser Arv Polymorfi Interfaces Metodik i programvaruutveckling Fält Undantag Filer och in-/utmatning Grafik GUI:s Design (CRC) Rekursion Applets Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se, Satser Satserna (statements) är grundinstruktionerna i ett programspråk. Block används för att grupperar satser sats; sats; OBS! Varje sats kan i sin tur vara ett block Sekvens Satserna exekveras en efter en Standard Urval Ordning på satserna Man väljer om satser ska exekveras eller ej If-sats, if-else-sats, switch-sats Repetition Satsen exekveras ett visst antal gånger while-loop, do-loop, for-loop Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

15 If-satsen Villkor if (villkor) sats; villkor sats Villkoret är ett uttryck Måste evaluera till / Ett s k boolskt uttryck Kan vara mer eller mindre komplicerat Exempel: i == j!(a > b) && (i == j+5-k) Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se, If-else-satsen Switch-satsen if (villkor) sats1; else sats2; villkor switch (expression) case value1: sats1; break; case value2: sats2; break; Uttrycket måste vara heltal eller tecken Motsvarar nästade if-satser sats1 sats2 default: satsn; OPTIONAL Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

16 While-satsen Oändliga loopar while (villkor) sats; Gå runt i varv Villkoret evalueras på nytt före varje varv Satsen utförs/utförs inte en gång till Villkoret testas inte kontinuerligt Satsen utförs alltid helt villkor sats Det får hända att satsen exekveras inte alls Villkoret måste någon gång bli falskt, annars kommer man inte ut ur loopen Vanligt logiskt fel Se t ex Forever.java (s.138) int count = 1; while (count <= 25) System.out.println (count); count = count - 1; System.out.println ("Done"); // exekveras aldrig Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se, Do-satsen For-satsen do sats while (villkor); Motsvarar omvänd while-sats Villkoret evalueras på nytt efter varje varv Satsen utförs minst en gång sats villkor for (initialisering; villkor; förändring) sats; motsvarar initialisering; while (villkor) sats; förändring; Fast loop Initialisering, villkor och förändring brukar refererar till samma variable Loop-variabeln bör inte ändras i satserna Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

17 For-satsen Exempel initialisering for (int antal=1; antal < 75; antal++) System.out.println (antal); villkor sats förändring for (int num=5; num <= total; num = num*2) sum = sum + num; System.out.println (sum); Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se, Programflödet Programflödet är sekventiellt Sats efter sats i den beskrivna ordningen Återhoppet sker till anropsstället Referenser en gång till... Primitiva datatyper Storlek av variabler är fastlagd (se OH 44) Alla variabler av samma datatyp ta samma utrymme i minnet Värdet kan sparas direkt method1() sats; method2(); sats; method2() return ; Klasstyper Storlek av variabler varierar Variabler av samma datatyp kan ta olika utrymme i minnet Värdet kan inte sparas direkt Referenser ( pekare ) Olika effekt (semantik) för = och == Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

18 Minnet 1 Minnet 2 Minnet består av en rad celler Alla celler har samma storlek (en byte) Varje cell har en unik adress En variabel är i princip ett (vettigt) namn på en adress Stora värden sparas i konsekutiva celler Exempel (primitiva datatyper): byte b = 5; char c = A ; int i = 6; b c A i Referenser är också adresser Triangle t1 = Exempel new (klasstyper): Triangle(); Triangle t2 = new Triangle(); Utförligt exempel: Se föreläsning 9278 t1 t2 Java--SU01 jubo, marie, thomasj@cs.umu.se, Java--SU01 jubo, marie, thomasj@cs.umu.se,

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

Parameteröverföring. Exempel. Exempel. Metodkropp

Parameteröverföring. Exempel. Exempel. Metodkropp Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

Personal Objektorienterad programmeringsmetodik 5DV081 5DV109

Personal Objektorienterad programmeringsmetodik 5DV081 5DV109 Personal Objektorienterad programmeringsmetodik 5DV081 5DV109 VT-10 Lärare Johan Eliasson (johane@cs.umu.se) Handledare Thomas Johansson Mikael Öhman Lucas Lindström 1 2 Här sitter vi MIT-huset våning

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i

Läs mer

Personal. Objektorienterad programmeringsmetodik 5DV133. Kursmål. Här sitter vi MIT-huset våning 4. Examination. Kursens uppläggning.

Personal. Objektorienterad programmeringsmetodik 5DV133. Kursmål. Här sitter vi MIT-huset våning 4. Examination. Kursens uppläggning. Personal Objektorienterad programmeringsmetodik 5DV133 Java VT-12 1 Lärare Johan Eliasson (johane@cs.umu.se) (kursansv) Thomas Johansson (thomasj@cs.umu.se) Handledare Marcus Karlsson (marcusk@cs.umu.se)

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik för ingenjörer, VT06 2 Repetition Repetition -

Läs mer

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser Abstrakta Klasser 1 God klassdesign placerar gemensamma attribut och metoder så högt som möjligt i hierarkin men ibland kan dessa egenskaper inte definieras fullständigt Abstrakta klasser innehåller ofta

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

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

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

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

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

Personal. Objektorienterad programmeringsmetodik 5DV133. Kursmål. Kursens uppläggning. Lärare. Handledare och gruppövningar.

Personal. Objektorienterad programmeringsmetodik 5DV133. Kursmål. Kursens uppläggning. Lärare. Handledare och gruppövningar. Personal Objektorienterad programmeringsmetodik 5DV133 Java VT-16 1 Lärare Anders Broberg, anders.broberg@cs.umu.se Handledare och gruppövningar Niklas Fries Adam Dalhgren Jonathan Westin Erik Moström

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

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

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och Innehåll u OOP snabbintroduktion u Datatyper u Uttryck u Satser u Arv (intro) u Programvaruutveckling och programmering u Klassdesign och metodik (UML, CRC) u Arv, polymorfi och dynamisk bindning u Fält

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

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

Föreläsning 3: Booleans, if, switch

Föreläsning 3: Booleans, if, switch TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt

Läs mer

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

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:

Läs mer

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander F2 Datatyper och variabler ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Datatyper Java är ett starkt typat språk Varje slags data har en datatyp Datatyp Javasyntax Exempel Teckensträng

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

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

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

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 ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering October 29, 2013 Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

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

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

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto Objekt och klasser - Introduktion Objekt Ð Begreppet objekt Ð Hur klasser anvšnds fšr att skapa objekt Ð Fšr-definierade klasser Ð Metoder och parameteršverfšring Ð Definiera klasser Ð Modifierare Ð Statiska

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

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga

Läs mer

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

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

Läs mer

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

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,

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

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

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

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå

Läs mer

Java, klasser, objekt (Skansholm: Kapitel 2)

Java, klasser, objekt (Skansholm: Kapitel 2) Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma

Läs mer

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

E02 The Review Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition Kurs: 1dv403 Webbteknik I Johan Leitet E02 - "The Review" Dagens agenda Identifierare Kommentarer Variabler Datatyper Operatorer Villkorssatser

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

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 5 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Arrayer Metoder Räckvidd och Livslängd Arrayer Vända om inlästa värdena Vända om

Läs mer

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

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

Läs mer

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

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014 Introduktion till Datalogi DD1339 Föreläsning 2 22 sept 2014 Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 public class { public class { Åtkomst, public betyder fullt tillgänglig utifrån public

Läs mer

Objektorienterad programmering Föreläsning 4

Objektorienterad programmering Föreläsning 4 Objektorienterad programmering Föreläsning 4 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Introduktion till objektorientering Klasser och Objekt Instansvariabler Metoder Introduktion

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

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander F8 - Arv ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Arv och subklasser Klasser innehåller attribut och beteenden En subklass ärver dessa från föräldern Detta ger: Återanvänd kod

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

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

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv

Läs mer

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer Exempel for (int antal=; antal < 75; antal++) System.out.println (antal); Arrayer for (int num=5; num

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 2 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin, 2018 Outline Emacs Introduktion till Objektorienterad Programmering Introduktion till Java Variabler

Läs mer

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser // En första version av BankKonto-klassen class BankKonto { private String namn; private long nr; private double saldo; private double ränta; // Klassen TestaBankKonto // Klassens uppgift är att skapa

Läs mer

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner 732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (

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

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

Objektorienterad programmering i Java

Objektorienterad programmering i Java bild 1 Objektorienterad programmering i Java Föreläsning 1 Kapitel 1-3 i kursboken Java Software Solutions bild 2 Läsanvisningar Kapitel 1 är en repetition av det ni förväntas kunna sedan tidigare. Det

Läs mer

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit Fler byggstenar Heltalsrepresentation Fyra heltalstyper Intern data representation Typomvandlingar Fler operatorer VŠljande & upprepande satser Tecken-bit by te t short t int t 7 bitar 15 bitar 31 bitar

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, STS 1, VT Sven Sandberg. Föreläsning 12

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 12 I torsdags: Klassen TelefonKostnad Exemplifierar objektorienterad design, metoder, konstruktorer static Standardklassen Math Matematiska

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 2017 Outline Java Språket Utmatning av Sträng litteraler Variabler

Läs mer

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden Föreläsning 7 Uttryck, Operatorer Och Kontrollflöden Nyckelord I Java abstract double int super boolean else interface switch break extends long synchronized byte final native this case finally new throw

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 3 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Operatorer Java Standard Library Inmatning Operatorer operatorer En operator är en

Läs mer

Tentamen ID1004 Objektorienterad programmering December 15, 2012

Tentamen ID1004 Objektorienterad programmering December 15, 2012 Ordinarie tentamen för ID1004 Objektorienterad programmering, 15 december 2012, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java bild 1 Objektorienterad programmering i Java Föreläsning 2 Till och med kapitel 4 (och 5) i kursboken Java Software Solutions bild 2 Läsanvisningar Den här föreläsningen är i huvudsak uppbyggd kring ett

Läs mer

Typkonvertering. Java versus C

Typkonvertering. Java versus C Typer Objektorienterad programmering E Typkonvertering Typkonvertering Satser: while, for, if Objekt Föreläsning 2 Implicit konvertering Antag att vi i ett program deklarerat int n=3; double x = 5.2; Då

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

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

Programmeringsteknik I

Programmeringsteknik I Programmeringsteknik I Föreläsning 2: Grundläggande Java Johan Öfverstedt Java Grundläggande begrepp Datatyper Selektion if Räckvidd (scope) Iteration while Klasser Objekt Metoder Metodhuvudet Kodstandarden

Läs mer

Övning2. Variabler. Data typer

Övning2. Variabler. Data typer Vahid 28 okt 2002 prgk02 Övning2 -Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =, ,!=,!) -String hur man

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

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

Programmering för språkteknologer II, HT2011. Rum

Programmering för språkteknologer II, HT2011. Rum Programmering för språkteknologer II, HT2011 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv11/pst2/ Kursplan Mål Efter avslutad kurs skall studenten för att förtjäna betyget

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

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

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0.. Ett problem Kontrollstrukturer och er Hur sparas data T ex när man vill spara resultaten av en tävling Exempel med 3 deltagare: public class Competition private int result1; private int result2; private

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

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson OOP F1:1 Föreläsning 1 Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning OOP Objekt-orienterad programmering Delkursansvarig: First Class-konferens: Kursens webbsidor:

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

Tentamen Grundläggande programmering

Tentamen Grundläggande programmering Akademin för Innovation Design och Teknik Tentamen Grundläggande programmering Kurskod: DVA103 Datum 2012-06-11 Tid 14.10 16.30 Examinator: Lars Asplund Maxpoäng: 48 Betygsgränser: Betyg 3: 20 Betyg 4:

Läs mer

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20.

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20. Umeå Universitet Datavetenskap Anders Broberg 130605 TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg VT-13 Datum: 13-06-05 Tid: kl 16.00-20.00 Namn: Personnummer:

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

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

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram Analys och design med hjälp av CRC 83 Klassdiagram Objekt Ett objekt är en individuellt identifierbar entitet som kan vara konkret eller abstrakt. Ett objekt har tillstånd, beteende och identitet. Reellt,

Läs mer

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera Föreläsning 2 Variabler, tilldelning och kodblock if-satsen Logiska operatorer Andra operatorer Att programmera Variabler Det är i variabler som all data (information) lagras. Genom att ändra värde på

Läs mer

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser Introduktion till programmering Föreläsning 2: Variabler, uttryck och satser 1 1 Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och

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 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

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

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion Deklaration och tilldelning OOP F2:2 int x; double d; char ch; boolean

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

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler 1 Datorn som miniräknare I detta avsnitt tas upp hur man kan skriva program som utför enkla räkneoperationer och skriver resultat på skärmen. Syftet är i huvudsak att se hur flera satser kan bygga upp

Läs mer

Enkla datatyper minne

Enkla datatyper minne Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in

Läs mer