Introduktion till Java. (del1)
|
|
- Stefan Johansson
- för 8 år sedan
- Visningar:
Transkript
1 Introduktion till Java (del1) 1
2 Översikt Att köra Java Kompilator Interpretator Statisk vs. dynamisk variabelbindning Parameter-passing Primitiva datatyper Strängar Programmering tillämpningar och datastrukturer 2 2
3 Köra Java >> javac MyCode.java Producerar MyCode.class Assemblerkod för JVM >> java MyCode Interpreteras Programmering tillämpningar och datastrukturer 3 3
4 Program i Java Filstruktur i NetBeans Object Fågel Rovfågel Duva Pingvin Falk Varje klassdefinition i egen fil Biblioteksfiler (paket) Programmering tillämpningar och datastrukturer 4 Man ska ha kompilerat alla ingående filer, och lagt.class-filerna tillsammans. 4
5 Kompilering källkod kompilator Hello.java Hello.class Javabytekod Programmering tillämpningar och datastrukturer 5 5
6 Att köra program filsystem RAM CPU cache förinladdning av material som snart kommer att behövas Programmering tillämpningar och datastrukturer 6 Vad innebär det att köra ett program egentligen? Programmet laddas in i RAM (av operativsystemet), sedan överförs kontrollen till det inladdade programmet tills det exekverat färdigt. (Egentligen mer komplicerat. Ex.vis. Så brukar inte hela programmet få plats i RAM (operativsystemet tar ju också plats). Så, OS jobbar med cachen under tiden, försöker förutsäga vilka delar av programmet och andra länkade filer som kommer att behövas den närmaste tiden. Dessa laddas in i cachen. Laddning från cach till RAM mycket snabbare än laddning direkt från filsystemet. Ens program är alltså utspritt över RAM och cache (och filsystemet), och det är ytterst viktigt att rätt del snabbt kan hittas och laddas in i RAM. Naturligtvis snabbare om alla länkar, och referenser hittade, och det som refereras till har blivit fysiskt inlagt på referensens plats i koden. Det är bl.a. detta som kompilatorn gör.) Problemet är att alla referenser inte går att reda ut innan koden körs igång. Dessa delar går alltså inte att förkompilera. Ett annat, minst lika viktigt problem är att olika plattformar (Mac, PC, Unix) kör olika maskinnära språk. Kompilatorn måste alltså översätta.java-filen till helt olika språk, beroende på vilken dator man vill köra programmet på. Javas lösning är att köra mot en gemensam mjukvarudator, som beter sig likadant på alla plattformar, men som implementeras olika, på dessa plattformar. 6
7 JVM Hello.class Unix Windows Darwin RAM RAM RAM CPU CPU CPU CPU CPU CPU Programmering tillämpningar och datastrukturer 7 Vad som egentligen händer när man kör en.class-fil är att man kör på en mjukvarudator, som i sin tur körs på de olika plattformarna. 7
8 Mjukvarudator Java Virtual Machine (JVM) Interpreterar Java-program (.class) Finns aldrig några exe-filer Implementeras olika på olika plattformar Interpretering mot dator Olika för olika plattformar Unix, Mac, PC Eg. operativsystemsberoende Solaris, Darwin, Windows Programmering tillämpningar och datastrukturer 8 8
9 I två steg Kompilering av källkod (.java) Build (flera filer som ska kopplas in) Producerar bytecode (.class) Gör språket Java plattformsoberoende! Möjliggör dynamisk bindning Programmering tillämpningar och datastrukturer 9 Det blir alltså en procedur i två steg, först till javabytekod, sedan till maskinkod (det andra steget körs interpreterat). Varför inte kompilera i två steg? 9
10 Varför interpreterat? Polymorfism dvs. samma namn på metod i superklass och subklass Ex.vis. i kod för grafik där paint omdefinieras ofta i subklass Objekt skapas on-the-fly under körning Programmering tillämpningar och datastrukturer 10 För att man vill tillåta polymorfism. Men, polymorfism innebär tekniska svårigheter: när kompilatorn ser pelle.flyga(); vet den inte vilken kod som ska kopplas till detta anrop. pelle kanske är deklarerad som Fågel, eller t.o.m. Djur i en lista som ska representera djuren på ett zoo. Så, kompilatorns bästa gissning är att Djur.ät() kommer att behöva utföras. Men, när programmet väl körs kommer pingvin.flyga() att behöva utföras. Detta visar sig endast under körning, varför man inte i förväg kan kompilera ihop en exe-fil. 10
11 Varför interpreterat? Object element = mylist.getnext(); element.bläddrasidan(42); Omöjligt att i förväg veta vilken metod (= kod) som kommer att behöva exekveras Kräver dynamisk bindning Programmering tillämpningar och datastrukturer 11 Ett annat exempel: Kommer variabeln element att referera till ett objekt av typen Object, eller kanske av typen Litteratur, eller typen Bok? Bläddra betyder olika saker beroende på vilket objekt som ska utföra det (det är olika koder som ska exekveras). Och vilket objekt som ska utföra det (dvs. vilken kod som ska exekveras) beror på vilka vägar genom if-else satser som programmet kommer att ta, vilket i sin tur kan bero på användarinput, etc. Informationen finns i programmet, men kompilatorn skulle behöva tankesimulera programmet för att komma underfund med vilket objekt som i slutändan kommer att hamna i variabeln. Och att låta kompilatorn tankesimulera ett program genom alla dess möjliga förgreningar, är ju inte genomförbart. 11
12 Variabelbindning Två sätt Bestäms av syntaktiska strukturen hos koden Bestäms av kontrollstrukturen (exekveringsflödet ) Programmering tillämpningar och datastrukturer 12 OK, men, vad är dynamisk bindning för något? Jo, i vårt fall är dynamisk bidning = bindning av metodnamn till metodkropp (= kod) under körning. en sker alltså under körning, därav beteckningen dynamisk. För att ge en kort bakgrund, kan man titta på skillnaden mellan statisk och dynamisk bindning. 12
13 Variabelbindning (Lisp) (let ((n 1)) (defun addn (z) (add n z))) (let ((n 2)) (addn 3)) Statisk bidning 4 Dynamisk bindning 5 detta n eftersom definitionen sitter i den här omgivningen detta n eftersom anropet sker i den här kontexten Programmering tillämpningar och datastrukturer 13 Vid statisk bindning binds alla fria variabler på basis av hur de är placerade i koden. Så, om n = 1 omger en funktionsdefinition i Lisp, kommer detta värde att gälla för n. Detta helt oberoende av vad som sedan händer vid exekvering. I andra fallet, vid dynamisk bindning, binds inte fria variabler förrän under exekvering. Så, om n sattes till 1 vid definitionstillfället är det ändå inte detta som kommer att gälla. Det Som gäller är hur n sätts innan funktionen anropas (och ska exekveras). Här är alltså n = 2, och det är i detta dynamiska kontext som funktionen exekveras. Notera att nästa gång programmet körs, kanske n = 5. n kan t.o.m. sättas av användaren, precis innan funktionen anropas. 13
14 Statisk bindning Variabelns värde bestäms av dess position i programmet Närmast omslutande programblock där variabeln är deklarerad Kompilatorn kan bestämma variabelinstans och lägga in i exe-filen Programmering tillämpningar och datastrukturer 14 Så, statisk bindning baseras på kodens struktur, hur variabler, etc. ligger i förhållande till varandra i koden. Här ska en kompilator kunna avgöra värdet på variabler och kopplingen mellan metodnamn och kod genom att analysera programmets utseende (syntaktiska struktur). 14
15 Dynamisk bindning Variabelns (funktionsnamns) värde inte känt förrän programmet körs Kräver dynamisk bindning Implementeras genom interpretering, dvs. att programmet tolkas en sats i taget Programmering tillämpningar och datastrukturer 15 Dynamisk bindning är nödvändig i Java eftersom metodnamn inte kan associeras till rätt metoddefinition förrän programmet körs. Kompilatorn tittar naturligtvis på vilken datatyp en referensvariabel är deklarerad som, men objektet som de facto refereras med denna variabel kan vid exekvering visa sig vara en subklass av vad som deklarerades (detta är alltså tillåtet i Java). Om kompilatorn fick bestämma (= statisk bindning), skulle den metoddefinition som motsvarar deklarationstypen (eller en definitionen i en superklass till denna) associeras med metodanropet. Detta var inte programmerarens avsikt. Programmeraren vill att den metod utförs som hör till det objekt som just för tillfället råkar refereras med variabeln, trots att den ursprungliga deklarationen säger någonting annat (=dynamisk bindning). Ok, det här var kompilatorbekymmer. Java löser det hela genom att inte tillåta kompilatorn att binda metodkroppen till metodanrop vid kompileringstillfället. Denna bindning skjuter kompilatorn framför sig, och låter interpretatorn ta hand om under exekvering (då det är lätt att se vilket objekt som de facto refereras med en variabel). 15
16 Använder statisk bindning Fria variabler binds vid definitionstillfället Common Lisp Alla omgivningsvariabler skickas med när funktionen skickas som argument Programmering tillämpningar och datastrukturer 16 Ett språk som använder statisk bindning är Common Lisp. Vanlig LISP däremot kör dynamisk bindning. 16
17 Java Använder dynamisk bindning Därför körs JVM interpreterat Plussidan: flexibilitet Nackdel: långsam Just-in-time kompilering ger något förbättrad prestanda Programmering tillämpningar och datastrukturer 17 Just-in-time kompilering: Under körning kommer programmet att följa olika förgreningar, beroende på hur villkorsdelen på if-satser faller ut, etc. Har man väl hamnat på ett ställe i programmet, vet man vilka objekt som de facto döljer sig bakom de olika variablerna, och därmed också vilka metoder (=koder) som behöver exekveras ifall man skulle följa samma väg genom programmet en gång till. Man kan förbereda inför nästa gång genom att kompilera de delar av koden som man har följt. Detta förbättrar prestandan avsevärt, förutsatt att samma väg genom programmet kommer att tas flera gånger. 17
18 Parametrar argument Parameter (formell parameter) vid definition public static int add(int a, int b) { } Argument (aktuell parameter) vid anrop Math.add(3,4) Vid anrop: parametern ska bindas till argumentet (det aktuella värdet) Programmering tillämpningar och datastrukturer 18 OK, nu har vi alltså ett sätt att bestämma vilken metodkropp (= kod) som ska anropas. Nästa steg är att se till att metoden får tillgång till rätt information. Viktigt att veta är om Java kopierar argumenten eller inte. Om man t.ex. skickar en lista till en metod, och metoden vill radera i listan, kommer detta att förstöra anroparens lista också? Först lite grundbegrepp: parameter är det som metoden har i sin definition, argument är det som skickas till metoden vid anrop. 18
19 Anropssätt Call-by-value Enkel Argumenten evalueras en gång Call-by-name Kan undvika vissa beräkningar Oändliga loopar Odefinierade operationer (delning med 0) Ger ren semantik programkorrekthet Call-by-need Programmering tillämpningar och datastrukturer 19 Call-by-value vida använt, lätt att implementera. 19
20 Call-by-value misse.sättålder(ålder); Steg1: Evaluera ålder Steg2: Lägg värdet på anropsstacken Steg3: Lämna kontrollen till metoden (tillsammans med en pekare till stacken) Programmering tillämpningar och datastrukturer 20 20
21 Call-by-name Steg1: Ersätta parameter på alla platser i metod-kroppen med motsvarande argument Steg2: Starta exekvera metoden Steg3: Evaluera argument vid behov Argument kan komma att evalueras flera gånger Oftast onödig extra-beräkning Programmering tillämpningar och datastrukturer 21 Oftast onödig extra-beräkning om samma argument förekommer flera gånger och därför behöver evalueras flera gånger. Om det finns sidoeffekter (ex.vis. att när argumentet evalueras så skrivs viss information till fil), så är det förmodligen meningen att argumentet ska evalueras flera gånger. I annat fall vore det bättre med en mer optimal lösning, typ call-by-need. 21
22 Skillnad CBV CBN public static void slask(int element, boolean b) { if (b) { System.out.println("Allt är ok"); } else { System.out.println(element); } } public static void main(string[] args) { int[] poäng = new int[10]; slask(poäng[10], true); } Programmering tillämpningar och datastrukturer 22 Oftast bättre chanser att undvika run-time problem med CBN. Hade Java använt CBN hade poäng[10] aldrig evaluerats, och man hade kunnat fortsätta i programmet. Eftersom Java använder CBV, evaluerades poäng[10] (just innan man lämnade över kontrollen till metoden), och detta resulterade i ett run-time exception: ArrayIndexOutOfBounds. 22
23 Lat evaluering Call-by-need Fördröjd evaluering tills argumentet faktiskt används i metoden Evalueras en gång Kombinerar fördelarna med CBV och CBN Programmering tillämpningar och datastrukturer 23 Är egentligen call-by-name. MEN, första gången en förekomst av parametern påträffas evalueras värdet, och läggs i uppslagstabellen. Nästa gång behöver man bara slå upp värdet. Eller så kan man se det som fördröjd evaluering: man lägger hela uttrycket (utan att evaluera) på stacken, och kör igång med metoden. När (ifall) metoden behöver argumentet, och slår upp det i tabellen, evalueras den, och ersätts med värdet. Nästa gång ligger värdet i tabellen. 23
24 Skillnad på det som skickas Primitiv variabel (ex. int, double, boolean) Innehåller själva värdet Referens Adress till ställe i datorns minne Programmering tillämpningar och datastrukturer 24 Notera att tilldelning =, test == 24
25 int n String namn Referenser i Java 3F02E3A0 3F02E3A1 3F02E3A2 3F02E3A3 3F02E3A4 3F02E3A5 3F02E3A6 datorns RAM-minne 123 3F02E3A5 Kalle Programmering tillämpningar och datastrukturer 25 Referenser pekar på en adress. När en referens evalueras och skickas som argument, kommer metoden att få adressen. Kan alltså böka omkring med det som refereras till och åstadkomma förändringar som består även efter att anropet är avslutat. 25
26 Call-by-reference Evaluering ger kopia av referensen som argument Kommer att kunna förändra variabelvärde utanför metoden Programmering tillämpningar och datastrukturer 26 CBV blir i praktiken CBR i Java, eftersom det är en adress som skickas till metoden (när argumentet var en referens). Metoden får alltså en egen referens, men till samma objekt som anroparen håller i! 26
27 Primitiva variabler - referenser Primitiv variabel (ex. int, double, boolean) Innehåller själva värdet Referens Adress till ställe i datorns minne Programmering tillämpningar och datastrukturer 27 Notera att tilldelning =, test == OK, vad har den här skillnaden för konsekvenser? 27
28 Exempel String myname = Kalle ; backupmyname = myname; myname = Jens ; System.print(backupMyName); Jens Programmering tillämpningar och datastrukturer 28 28
29 Referens myname Kalle myname backupmyname Jens Programmering tillämpningar och datastrukturer 29 Vad som händer vid tilldelning är att en referens skapas. Vid nästa tilldelning ny referens till samma objekt! När sedan myname ändras till Jens kommer även backupmyname att referera till denna. Vill man alltså komma ihåg namnet måste man kopiera strängen/texten (Skansholms terminologi). 29
30 Lösning Kopiera strängen String myname = Kalle ; // vill ha nytt objekt, dvs. ny sträng backupmyname = String.copyValueOf(myName); myname = Jens ; System.print(backupMyName); Kalle Programmering tillämpningar och datastrukturer 30 Gäller alla objekt som man skapat. Vad man har är referenser till dem, variablerna/objektnamnen innehåller inte själva objekten (utan bara en adress till dem). 30
31 Inbyggda primitiva datatyper Numeriska typer: int, float, double, boolean char true eller false (OBS! ej 0 1) String mystring = Kalle ; Klass som kan instansieras utan new mystring refererar till nytt objekt (instans av klassen String) Programmering tillämpningar och datastrukturer 31 Stor bokstav i String markerar att det är fråga om en klass, dvs. att mystring är en referens till en instans av denna klass. 31
32 Strängar Strängar kan inte ändras sedan de skapats Vid varje ändring slängs gamla strängen och nytt skapas Om många ändringar, bättre att använda StringBuffer Programmering tillämpningar och datastrukturer 32 32
33 StringBuffer StringBuffer sb = new StringBuffer( Hej hej ); Objektets innehåll kan ändras sb.append(" Kalle!"); sb.insert(7, ","); // lägg in på pos 7 sb.replace(4, 7, "då"); // ersätt bokst 4 till 7 System.out.println(sb); Hej då, Kalle! Obs! första pos = 0 Programmering tillämpningar och datastrukturer 33 Defaultkapacitet 16 tecken (denna utökas med det antal tecken man använt vid initieringen; i vårt exempel (första raden kod) ger detta 23 teckens kapacitet). 33
34 Operationer på strängar Konkatenering: String s = Mitt namn är + namn; Om namn inte är av typen sträng anropas namn.tostring() automatiskt Om inte definierad: letar efter tostring() uppåt i klasshierarkin Programmering tillämpningar och datastrukturer 34 34
35 Operationer på strängar Viktigt att tostring() är definierad i klassen I så fall ger: System.out.println(mittObjekt); en snygg utskrift av objektets tillstånd Annars kan man vid utskrift! Programmering tillämpningar och datastrukturer 35 Som default körs Object.toString(); (om inte definierat längre ner i klasshierarkin). 35
36 Operationer på strängar Sökning efter delsträng: int index = s.indexof( är, 0); // söksträng, startindex Plocka ut en delsträng: s.substring(0, s.length-1); // startindex, stopindex Programmering tillämpningar och datastrukturer 36 36
37 Operationer på strängar Escape-tecken ( kommandotecken ) \n = ny rad (Unix) \n\r = ny rad (Windows text-filer) \t = tab s = namn + \t + ålder + \n ; Konvertering till/från tal int x = Integer.parseInt(s); String s = Integer.toString(42); Programmering tillämpningar och datastrukturer 37 37
38 s1 == s2 Jämföra strängar Jämför två pekare! Inte vad vi vill ha! I stället: s1.equals(s2); s1.equalsignorecase(s2); Sortera strängar: s1.compareto(s2) om lika om s1 < s2 om s1 > s2 Programmering tillämpningar och datastrukturer 38 38
39 package lab2; import java.util.*; /** * Rita Kovordányi */ public class MyList { } Namn på mitt paket Vill komma åt alla klasser i detta paket Programmering tillämpningar och datastrukturer 39 Anger man inget eget paket hamnar klasserna i default-paketet. Kan bli mycket rörigt där. Man kanske har lekt omkring med listor och har glömt allt det där, och någon månad senare vill programmera listor på allvar. Det kan bli namnkrockar, och en massa strul Bättre att skapa nytt paket för alla små idéer man vill testa. Importerar alla klasser i paketet java.util. 39
40 Vill ibland slippa skriva Math vid varje anrop Math.random(); package MyPackage; import static java.util.math.*; Nu kan man skriva klassnamn istf paketnamn sqrt(3.14); // istf Math.sqrt(3.14); Programmering tillämpningar och datastrukturer 40 Importerar alla klassmetoder i klassen Math. 40
41 Användbara paket java.lang själva språket (importeras automatiskt) java.util datastrukturer, matematiska fn:er javax.swing fönsterhantering java.io in- och utmatning med strömmar java.awt äldre fönsterhantering med grafik java.awt.event inmatning i fönster java.net nätverkskommunikation Programmering tillämpningar och datastrukturer 41 Vanliga paket i klassbiblioteket. 41
Introduktion till Java
Översikt Introduktion till Java (del2) Vad är det som händer när man kör Java? Kompilator (före körning) Interpretator (under körning) Statisk vs. dynamisk variabelbindning Parameter-passing Call by value
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
(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
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
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
OOP Objekt-orienterad programmering
OOP Objekt-orienterad programmering OOP F1:1 Delkursansvarig Epost Kursens webbsidor sm@fc.dsv.su.se http://people.dsv.su.se/~sm/oop/ Föreläsning 1 Introduktion till kursen OOP Vad är Java? Ett första
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
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
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
Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018
Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design (DIT95) Niklas Broberg, 2018 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon
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å
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
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
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
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:
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
Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016
Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design Alex Gerdes, 2016 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon tripoly =
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
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
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
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
Static vs Dynamic binding Override vs Overload. Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018
Static vs Dynamic binding Override vs Overload Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018 Quiz: Gissa typen? Object o = new Square(100,100); Polygon p =
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
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
Java: Utvecklingsverktyg, datatyper, kontrollstrukturer
Java: Utvecklingsverktyg, datatyper, kontrollstrukturer Sven-Olof Nyström Uppsala Universitet 13 juni 2005 1 Utvecklingsverktyg för Java Vi rekommenderar Suns utvecklingsverktyg (SDK, tidigare JDK), se
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
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
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
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
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
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
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
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 (
Arrayer. results
Arrayer 85 Arrayer Deklarerar utrymme för många variabler i en enda deklaration Array (fält) Varje värde har ett numeriskt index i Java indexeras en array med N element med indexen till N-1 Exempel: 1
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
Programmering för språkteknologer I, VT2012. Rum
Programmering för språkteknologer I, VT2012 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.lingfil.uu.se/~evelina/uv/uv12/pst1/ Idag - Kursplan - Börja programmera - Lokala variabler - aritmetiska
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
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
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
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å
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å
NetBeans 7. Avsikt. Projektfönster
NetBeans 7 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till
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
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
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,
Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.
Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2. Hur vi jobbar med ett program. 1. Vad vi skriver (med hjälp av redigeringsprogrammet Emacs) på datorn: // Fig. 2.1: Welcome1.java // A first program in
Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).
Objektorienterad programmering Föreläsning 12. Copyright Mahmud Al Hakim
Objektorienterad programmering Föreläsning 12 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Introduktion till Arv Superklasser och Subklasser Dolda medlemmar (new och base) Statisk
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[]
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:
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
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/
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
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
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
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
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
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
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
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
Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner
Programmeringsteknik och Matlab Övning 3 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
OOP Objekt-orienterad programmering
OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public
Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.
Föreläsning 11 Arrayer Arrayer Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt int[] tal = new int[3]; Kan ha en array av t.ex: Heltal (int) Tecken (char) Personer (objekt av klassen
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)
Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada
Datastrukturer Vad är en datastruktur? Vad är en datatyp? Primitiva datatyper i Java Icke-primitiva datatyper i Java Minnesexempel med datastrukturer Vektorer i Java Erik Forslin efo@nada.kth.se Rum 1445,
Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll 2010-04-22
Översikt 732G11 PROGRAMMERING 1 Institutionen för datavetenskap Om kursen Vad är programmering (bra för)? Programmeringsspråket Java Utvecklingsmiljön Eclipse Genomgång av några programexempel Programmering
Föreläsning 13 Innehåll
Föreläsning 13 Innehåll Arv Repetition Om tentamen Datavetenskap (LTH) Föreläsning 13 HT 2017 1 / 32 Diskutera Här är början på klassen MemoryWindow som använts på en lab. Vad kan menas med extends SimpleWindow?
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
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
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
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
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
Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio
Ditt första C#-program med Visual Studio Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så
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
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
NetBeans 5.5. Avsikt. Projektfönster
NetBeans 5.5 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till
Lösningsförslag: Instuderingsfrågor, del D
Uppgift 1. Objektorienterad programmering, Z1 Lösningsförslag: Instuderingsfrågor, del D a) Inget fält behövs. Man kan läsa in ett tal i taget och addera dessa till summan. b) Här behövs ett fält. c) Här
FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl
Högskolan Dalarna sid 1 av 6 DI-institutionen Hans-Edy Mårtensson Sten Sundin FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 1. Grunderna i
Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer
Programmering hh.se/db2004 Föreläsning 3: Java. Grundtyper, variabler och arrayer Hej Då, Karel! Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded
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
Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6
Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner
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
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
UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.
Översikt UML Sekvensdiagram (dynamic structure) Informationsflöde genom programmet Användningsfall (use cases) Aktörers interaktion med systemet Paketdiagram Beroenden mellan paket abstrakta klasser Multipel
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
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
Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin
Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna
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,
Objektorienterad Programkonstruktion. Föreläsning jan 2016
Objektorienterad Programkonstruktion Föreläsning 13 19 jan 2016 Tentamen Del I, E del Flervalsfrågor 20/25 krävs för godkänt, ger betyg E Upp till 7 möjliga bonuspoäng Del II, Högrebetygsdel Problemfrågor
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
Introduktion till arv
Introduktion till arv 6 INTRODUKTION TILL ARV Arv Generell-Speciell Arv för att utnyttja det vi redan gjort Återanvändning Basklass Härledd klass Varför arv? Inför en subklass för att uttrycka specialisering
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
Tentamen. Programmeringsmetodik, KV: Java och OOP. 17 januari 2002
Pedher Johansson Institutionen för datavetenskap LÖSNINGSFÖRSLAG Lösningsförslag Tentamen Programmeringsmetodik, KV: Java och OOP 17 januari 2002 Uppgift 1 (20 p) Teoriuppgifter Resultat och uppgifter
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
Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo
Objektorienterade språk Historik Simula 67 Smalltalk 80 Procedurorienterad programmering Subprogram Programbibliotek Dataorienterad programmering Abstrakta datatyper Objektbaserade språk, föregångare till
F5: Högnivåprogrammering
F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data via
F5: Högnivåprogrammering
1 F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data
Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output
Programmering hh.se/db2004 Föreläsning 5: Fält samt Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Lite mer om Javas stöd för fält Hur många element har ett fält?
DD1342 Programkonstruktion för F1,
DD1342 Programkonstruktion för F1, 2007-2008 Lappskrivning 2 Tisdag 5/2 2008 kl 14.15 15.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga
TENTAMEN OOP
TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli