Få en förståelse för vad Java är och hur det har utvecklats fram till idag. Få en inblick i de delar vi kommer att behandla i senare lektioner.

Storlek: px
Starta visningen från sidan:

Download "Få en förståelse för vad Java är och hur det har utvecklats fram till idag. Få en inblick i de delar vi kommer att behandla i senare lektioner."

Transkript

1 Datateknik A, Syfte: Få en förståelse för vad Java är och hur det har utvecklats fram till idag. Få en inblick i de delar vi kommer att behandla i senare lektioner. Att läsa: Kursbok, Kapitel 1 (sida 5 23)

2 Vi ska i denna lektion titta på vad programmering är för något, och då framför allt vad programmering i Java är. Vi kommer att gå igenom historiken bakom Java och hur Java har utvecklats fram till vad det är idag. Givetvis kommer vi även att titta på hur ett program i Java skrivs. I stor sett kommer vi att gå igenom alla de olika delar som kommande lektioner behandlar. Robert Jonsson Sida 1

3 För att vi ska ha någon egentlig nytta av datorer så behöver vi något som kan styra datorn så som vi vill, så att den utför de uppgifter vi vill att den ska utföra. För detta ändamål finns det mängder av s.k. dataprogram. Väldigt kort beskrivit består ett dataprogram av en mängd instruktioner som berättar hur en datormaskin ska bete sig. Det finns i stort sett två olika typer av program; systemprogram (för att styra operativsystemet) och applikationsprogram (word, netscape, spel m.m.). Programmering är kunskapen att skriva dessa instruktioner till datorn så att datorn fungera på ett sätt som man i förväg har bestämt. En av de främsta anledningarna till varför man väljer att programmera är att det är kreativt och stimulerande för hjärnan. Programmering är en problemlösande aktivitet. Robert Jonsson Sida 2

4 Java är ett objektorienterat språk som är enklare och som många tycker är mer elegant än andra objektorienterade språk (exempelvis C++ som många anser ha blivit för komplext). Java har inbyggt stöd för att skapa exekverbart innehåll på Internet, så ett Javaprogram (en s.k. Applet) kan exekveras som en del av en webbsida. I denna kurs kommer vi inte titta så mycket på Applets, men i en av övningsuppgifterna kommer du att få prova på att skapa en egen Applet. Java är plattformsoberoende. Detta innebär att ett program som skrivs i Java kan exekveras (köras) på de flesta plattformar så som Windows, Macintosh och UNIX m.fl. Javas komponentteknik heter JavaBeans vilket innebär att den är en självständig och återanvändbar programmodul som kan användas i en mängd olika applikationer och som kan manipuleras visuellt i en utvecklingsmiljö. JavaBeans är inte något vi kommer att titta på i denna kurs. Till Java finns det tillgängligt ett stort antal programbibliotek, s.k. paket, för vanliga uppgifter som skapande av användargränssnitt, upprättande av nätverkskommunikation, hantering av fil, uppkoppling mot databaser m.m. Dessa paket är fritt tillgängliga för programutvecklare kan använda i sina applikationer. Robert Jonsson Sida 3

5 Ursprungligen utvecklades Java som ett språk för att skriva kompakta och plattformsoberoende program för konsumentelektronik. Inom företaget Sun fanns det ett forskningsprojekt, projekt Green, för att enklare kunna programmera inbäddade system med enklare processorer. De första försöken utgick från ifrån C++, men man fann snart att C++ inte var tillräckligt portabelt mellan olika processorer (inom konsumentelektroniksystem används många olika processorer). Därför utvecklades ett språk i C++:s anda, men som var mer portabelt och också mindre komplex. Språket, som kallades Oak, hade James Gosling (på Sun Microsystems) som sin huvudsakliga skapare och konstruktör. Men namnet Oak var redan upptaget och därför döptes språket om till Java. Var namnet kom ifrån finns det många åsikter om. En del menar att det kom till efter ett besök i en lokal kaffebutik under en fikarast. Robert Jonsson Sida 4

6 Sommaren 1992 skapade projektet sin första produkt baserad på det nya språket. En extremt intelligent fjärrkontroll (jämfört med vad som fanns då). Fjärrkontrollen var interaktiv, handhållen och kontrollerades genom en touchscreen. I demot så sågs maskoten Duke springa runt på skärmen och vinka m.m. medan han utförde de kommandon användaren bad om. Produkten baserades på det nya språket Oak som var processoroberoende. Dock blev produkten ingen succé. Den var helt enkelt före sin tid. Robert Jonsson Sida 5

7 I samband med att Internet fick allt större uppmärksamhet fick projektgruppen också en idé om att Java borde kunna användas för att utveckla plattformsoberoende program för Internet. Tekniken prövades till att börja med genom att utveckla en egen webbläsare kallad HotJava. Den skrevs helt i Java och var till skillnad från tidigare webbläsare den första som på riktigt kunde visa animationer och dynamiska sidor. Hotjava visades upp på en konferens och i början var det knappt några som rynkade på näsan åt HotJava. Men när James och de andra visade upp en sida med en molekyl som man kunde ta tag i och vrida och vända på gick det ett sus genom publiken det röde på sig. I samband med detta började tekniken med Java att också skapa ett intresse utanför Sun. Språket offentliggjordes och lanserades officiellt i november 1995 då även Netscape meddelade att man licensierat språket och avsåg att ge fullt stöd för Java i sin webbläsare. I och med detta började det stora genombrottet för Java. Tidigt bestämde man att Javasstandarden även skulle omfatta ett flertal bibliotek så att vanliga uppgifter som filhantering m.m. utförs på samma sätt oavsett plattform. Genom att tidigt definiera klassbibliotek (paket) och låta dessa vara en del av Javastandarden (till skillnad mot t.ex C++ som länge saknat standardbibliotek) så kan de flesta program utvecklas med dessa standardbibliotek. Hela tiden utvecklas dessa standardbibliotek och fler bibliotek läggs till i nya versioner av Java släpptes v1.1, 1998 släpptes 1.2 och i dagsläget är senaste version (J2SE 5.0 eller Java 2 Platform Standard Edition 5.0). Robert Jonsson Sida 6

8 Java är ett generellt programmeringsspråk som kan användas för alla typer av applikationer. Läser man om Java i pressen kan man få intrycket av att Java är ett specialskrivet språk för Internet och som endast kan användas i denna miljö, men så är inte fallet. Anpassningen för Internet består av ett fåtal klasser i standardbiblioteken. Det är möjligt att skriva helt vanliga applikationer i Java som inte har någonting alls med Internet att göra. Java har influerats från många andra språk. James Gosling har sagt att Java är objektorienterat som Smalltalk, numeriskt som Fortran, systemspråk som C/C++, och distribuerat på ett sätt som inget tidigare språk. Syntaxmässigt är språket mest likt C++. När ett Javaprogram kompileras så genereras s.k. bytekod som är ett standardiserat instruktionsfomat för en virtuell Javamaskin. Det är denna virtuella Javamaskinen som är nyckeln till plattformsoberoendet för Java. En virtuell Javamaskin är ett program som är skrivet för en viss plattform (Windows, UNIX, Macintosh etc) och som tolkar bytekod och utför instruktionerna i denna bytekod. I och med att bytekodens format är standardiserat kan alltså en fil med bytekod exekveras på samtliga plattformar som har en virtuell Javamaskin, och bete sig på i princip samma sätt. Det är alltså samma bytekod exekveras men olika virtuella maskiner används på olika plattformar. Mer om detta senare. Robert Jonsson Sida 7

9 Java har en väldigt enkel kompileringsprocess jämfört med en del andra språk. Vårt program, de instruktioner vi skriver för att få datorn att utföra det vi vill, sparas i en källkodsfil. I Java har källkodsfilen filändelsen.java. Innan programmet kan köras måste källkoden kompileras till bytekod (filändelse.class). D.v.s. våra instruktioner översätts till ett annat format.samma bytekod kan sedan exekveras i olika virtuella maskiner för olika plattformar. Robert Jonsson Sida 8

10 Java är betydligt enklare att lära sig än andra språk som ex. C++. Trots detta är språket komplett, inga viktiga konstruktioner saknas utan snarare är det fällorna i C++ som har tagits bort. Java är fullt ut objektorienterat i och med att det har stöd för klasser, objekt, arv och polymorfism. Ett objektorienterat språk delar in program i separata moduler (objekt), som kapslar in ett programs olika attribut och händelser. Objektorienterad programmering är det programmeringssätt många föredrar för att skapa komplexa program med. Med plattformsoberoende menas både oberoende av en viss processor, ett visst operativsystem och ett visst användargränssnitt. Detta innebär att ett Javaprogram kan köras på olika datorer utan några förändringar. Detta är en egenskap som få andra språk har, och som i Java dessutom skapas på binär nivå, d.v.s. den källkod som skapas behöver inte kompileras om för olika plattformar. Java är robust, vilket innebär att fel i ett Javaprogram inte orsakar systemkrascher lika ofta som fel i andra programspråk. Även om det slutgiltiga ansvaret för att uppnå robusthet är upp till programmeraren att se till, innebär avsaknad av pekare, automatisk minneshantering och stöd för undantagshantering att programmeraren får det betydligt enklare att utveckla robusta system. Robert Jonsson Sida 9

11 Många operativsystem har numera stöd för parallell exekvering genom s.k. trådar där ett program kan innehålla många samtidiga exekveringsvägar. Normalt är dessa mekanismer svåra att programmera, men inte om Java används. Java har inbyggt i språket både för att skapa och styra trådar, samt eleganta mekanismer för att synkronisera trådar med varandra. Java har en filosofi att göra hårda kontroller vid kompileringen så att fel upptäcks redan då och inte under exekvering av ett program. Bl.a. genom att svårhanterliga pekare inte finns med i språket undviks många av de typproblem som är vanliga i andra språk. Med säkerhet kan menas robusthet som nämnts tidigare, men eftersom Java ofta används över Internet så menas med säkerhet normalt skydd mot missbruk av Java så att inte någon kan skriva Javaprogram som överförs via Internet och sedan förstör eller tar reda på information. Java har därför en välutvecklad säkerhetsmodell för att låta okända program exekvera under stark kontroll och med begränsade rättigheter. Java är ett distribuerat språk, vilket menas med att program kan skrivas för att köras i nätverk. Java har inbyggda paket för nätverkskommunikation vilket gör det väldigt enkelt att bygga applikationer för Internet och WWW. Robert Jonsson Sida 10

12 Ett objektorienterat program består av ett antal objekt som kommunicerar med varandra genom att skicka och ta emot meddelanden. Dessa meddelanden styr programmets beteende. Ett objekt i sin tur är en programmodul som kapslar in en del av programmets egenskaper och beteende. Ett objekt efterliknar riktiga ofta objekt ute i den riktiga världen och kan vara allt från stenar och regndroppar till cyklar och personer till ett bankkonto och bankkontor. Objektorienterad programmering är ett speciellt sätt att organisera program och att designa objekt som kan arbeta tillsammans för att utföra en bestämd uppgift. Robert Jonsson Sida 11

13 Ett exempel kan vara när en kund ska sätta in eller ta ut pengar från sitt konto i en bank. De objekt som ingår här är bl.a. kunden ifråga, den anställde på banken som servar kunden, kontot som kunden ska sätta in pengar på och i vis mån även summan som ska sättas in. Kommunikationen mellan dessa objekt kan vara att kunden ber den anställde att sätta in en viss summa pengar på sitt konto. Den anställde ber i sin tur kunden om vilket kontonummer hon önskar sätta in pengarna på. Skulle vi skriva ett objektorienterat program för att hantera detta så skulle det innehålla alla dessa objekt. Objekten skulle kommunicera med varandra enligt vissa bestämda mönster för att utföra de uppgifter som krävs. Robert Jonsson Sida 12

14 Exekveringsmiljön är det sätt och den omgivning som ett Javaprogram exekverar i. Traditionellt har en applikation alltid varit skriven och kompilerad för ett visst operativsystem, som i sin tur är bundet till en viss processor. Ett operativsystem definieras med hjälp av ett antal API:er som tillhandahåller tjänster till applikationerna. Dessa API:er har hittills alltid varit olika för olika operativsystem. Java åstadkommer en total helomvändning från denna traditionella syn. Istället för att använda tjänster från operativsystemet används de generella tjänster som definierats i klassbiblioteken i Java. Från ett Javaprogram genereras sen bytekod som är oberoende av både operativsystem och underliggande maskinarkitektur. Denna bytekod tolkas av en virtuell Java-maskin (översätts i exekveringsögonblicket till maskinkod för aktuell plattform). Det finns idag virtuella maskiner skrivna och anpassade för de flesta operativsystem. Den virtuella maskinen och standardbiblioteken tillhandahåller all funktionalitet som tidigare varit operativsystemets uppgift att tillhandahålla. Robert Jonsson Sida 13

15 Utvecklingsmiljön är den miljö i vilken utvecklare skriver sina Javaprogram. Miljön definieras dels av de API:er, klassbibliotek och komponenter som finns tillgängliga för Java, dels av de miljöer i vilken Javaprogram editeras, kompileras, avlusas och testas. De grundläggande API:erna (klassbiblioteken) för Java täcker alla centrala områden som användargränssnitt, databaser, nätverk, matematik etc. Java och Sun arbetar också väldigt hårt på att ta fram API:er/klassbibliotek för andra viktiga områden som säker handel över Internet, telefoni, multimedia, 3D, ljud- och bildöverföring. Den första utvecklingsmiljön från Sun var kommandobaserad, d.v.s. programmen skrevs i en vanlig texteditor och kompilerades och exekverades direkt ifrån operativsystemets kommandotolk. Företag som Symantech, Microsoft och Borland har tagit fram integrerande miljöer som använder Java som utvecklingsspråk. Dessa utvecklingsmiljöer innehåller editor, kompilator och avlusare, som gör att det går enkelt och snabbt att utifrån en utförd källkodsändring testa programmet. Dessa utvecklingsmiljöer innehåller också ofta stöd för visuell programmering där delar av programmet kan utvecklas genom att användaren drar och släpper komponenter på fönster och visuellt förbinder objekt med varandra. Stora delar av programmet kan alltså utvecklas genom att användaren inte skriver kod utan visuellt ritar upp sitt användargränssnitt. Robert Jonsson Sida 14

16 I en kommandobaserad miljö skriver utvecklarna Javaprogram i en vanlig texteditor (Notepad, TextPad, UltraEdit). För att sen kompilera och exekvera sina program skriver man kommandon i t.ex. kommandoprompten. Det är enligt detta arbetssätt vi i början av kursen kommer att jobba. Robert Jonsson Sida 15

17 I en integrerad utvecklingsmiljö gör man oftast allting i ett och samma program. Man skriver källkoden, kompilerar och exekverar den utan att växla till andra program. Många integrerade miljöer erbjuder även visuell kodning, vilket innebär att mycket av koden kan automatgenereras. För att bygga upp ett användargränssnitt är det i stort sett bara att dra-och-släppa komponenter till en rityta. Senare i kursens lektioner kommer vi att använda oss av en s.k. IDE för att utveckla våra program. Denna editor kommer dock inte att ha stöd för visuell programmering. Robert Jonsson Sida 16

18 Den grundläggande utvecklingsmiljön för Java, och även den första som släpptes, är Java Development Kit (JDK). Det är en kommandobaserad miljö som innehåller den senaste versionen av Java, kompilator, virtuell maskin och standardbiblioteken för Java. Denna miljö är gratis och finns att laddas ner från java.sun.com tillsammans med aktuell dokumentation. Den första versionen släpptes 1996 och sen dess har nya versioner kommit med jämna mellanrum. De nya versionerna innehåller förbättringar av befintliga klasser och paket (snabbare fönsterhantering, säkrare trådar och nätverkskommunikation m.m.), men även nya tillägg som utökar standardbiblioteken. Den senaste versionen är i dag (2005), men den anses innehålla så stora förändringar och nyheter att versionsnumret döps om till 5.0. Fullständigt uttalat lyder versionen: Java 2 Platform Standard Edition 5.0 eller bara JDK 5.0 (JDK J2SE Development Kit). Det är denna (eller senare verisoner) vi kommer att använda i kursen. Kompilatorn i JDK/SDK heter javac. Denna kompilerar java källkod till bytekod. Den virtuella maskinen heter java och används för att exekvera den kompilerade bytekoden. Robert Jonsson Sida 17

19 Ett Javaprogram finns i två olika former: applikationer och Applets. En Java-applikation är ett program som exekveras fristående ifrån andra program (men som naturligtvis kräver en virtuell Javamaskin på den aktuella plattformen). En Java-applikation beter sig som vilket annat program som helst, fast det råkar vara skrivet i Java och använder sig av Javas API:er för att komma åt tjänster från operativsystemet. En Applet är ett program som alltid exekverar inifrån ett annat program, normalt en webbläsare som t.ex. Internet Explorer. Java Applets är formen för att distribuera Javaprogram över Internet eller ett intranät. Robert Jonsson Sida 18

20 Som nämnts tidigare definieras ett javaprogram i en eller flera källkodsfiler. Dessa kompileras sedan till s.k. bytekod som den virtuella Javamaskinen kan exekvera. Enligt Javadefinitionen är det teckensnitt som används Unicode, vilket innebär att tecken som å, ä, ö (t.o.m. specialtecken) är tillåtna i namn på identifierare för variabler och klasser. Men då det är osäkert att alla utvecklingsmiljöer hantera Unicodetecken brukar inte å, ä, ö m.m. användas vid utskrifter i kommandopromten. Robert Jonsson Sida 19

21 Alla Javaprogram bygger på klasser. Även det minimala programmet ovan innehåller en klass. Klassen heter FirstApp och den fil i vilket källkoden ligger heter då FirstApp.java (Java skiljer på små och STORA bokstäver vilket är viktigt att komma ihåg!). Programmet börjar med en klassdeklaration i form av nyckelorden public class följt av namnet på klassen. Klassdeklarationen är innesluten i matchande klammertecken { och } inom vilka klassens medlemmar (instansvariabler och metoder) finns. I detta exempel har klassen inga instansvariabler utan endast en metod, den s.k. Mainmetoden som är den metod i vilket exekveringen av en Java-applikation startar. Main-metoden (eller metod deklarationen överlag) är precis som klassen innesluten i matchande klammertecken. I det här fallet innehåller metoden main endast en sats, och här används en klass System från java.lang paketet. Objektet out är av klassen PrintStream vilket är en klass för att skriva meddelanden. På out anropas metoden println som skriver ut en variabel (i detta fall en sträng). Detta kan låta krångligt vilket är förståeligt. Det räcker för tillfället att veta att en programsats av typen System.out.println skriver till konsolfönstret. När main-metoden är slut är också programmet slut, och programmets exekvering avslutas. I Övning 1 kommer du att få prova på att skriva ditt egna första program i Java. Vill du prova detta programexempel finner du källkod och bytekod i exemplen som tillhör lektionen. Robert Jonsson Sida 20

22 Main-metodens definition kan till en början se väldigt komplex ut. De olika delarna kommer vi att gå igenom allt eftersom. Nu från början så är det här ytterligare en sak du bara får acceptera att så här skriver man. public innebär att metoden är tillgänglig utanför klassen, vilket main-metoden naturligtvis måste vara om programmet ska kunna köras igång. static innebär att det är en statisk s.k. klassmetod, en metod som kan anropas direkt på klassen utan att något objekt av klassen har skapats. Att main-metoden är statisk är naturligt eftersom något objekt inte kan skapas före main-metoden körs. void innebär att main-metoden inte returnerar något returvärde. Normalt så returnerar en metod ett värde när den har exekverat alla satser som tillhör metoden. När main metoden är klar så avslutas programmet och det finns därför ingen anledning till att returnera något. main är namnet på metoden. String[] args är en array av strängar döpt till args. Denna array kommer att innehålla de eventuella argument som angetts på kommandoraden till programmet. Man kan alltså skicka in vissa värden som programmet kan tänkas behöva när vi startar det. För att skriva ut det första argumentet som skickats in till programmet kan koden längst ner användas. Startar vi programmet enligt följande: java MittProgram hejsan så är det hejsan som skrivs ut på skärmen. Har vi fler argument så kommer vi åt dessa genom args[1], args[2] osv. Vill du prova detta exempel kan du kompilera och köra Argument.java (se exemplen). Robert Jonsson Sida 21

23 Oavsett vilket programmeringsspråk som används måste ett program kommenteras för att vara läsbart för andra. Kommentarer kan också vara bra för att man som programmerare själv ska komma ihåg vad man har gjort för något. Det kommer visa sig att du glömmer otroligt fort vad det är du har gjort och varför. I Java finns det tre olika typer av kommentarer: Enradskommentarer som börjar med // och löper till radens slut. Blockkommentarer som kan löpa över flera rader. Börjas med /* och avslutas med */. Är väldigt användbart när man vill kommentera bort vissa rader i koden vid felsökning m.m. Dokumentationskommentarer används för att automatgenerera dokumentation i Java. Verktyget javadoc används för detta ändamål och genererar dokumentationen i HTML-format. Mer om javadoc kommer senare i kursen. Robert Jonsson Sida 22

24 En identifierare kan ses som ett eget namn på saker där saker är variabler, metoder eller klasser. I Java (och många andra språk) så kan en identifierare bestå av en blandning av bokstäver, siffror, understräck (_) och tecknet &. I Java finns det ingen begränsning vad gäller antalet tecken, dock får en identifierare inte börja med en siffra. Viktigt att tänka på är Java skiljer på STORA och små bokstäver. T.ex. är identifieraren antal inte samma som identifieraren Antal. Exempel på identifierare vi hittills har stött på är FirstApp som identifierar vår första klass. Dessutom har vi stött på main som identifierar metoden med samma namn i klass i FirstApp. Robert Jonsson Sida 23

25 Java har stöd för ett antal fördefinierade typer, som brukar kallas språkets primitiva typer. De är fördefinierade genom att deras namn är reserverade och hanteras speciellt av kompilatorn. Av dessa primitiva typer kan vi deklarera variabler som vi sen använder i vårt program. String är inte en primitiv typ men har så stora likheter att den kan hanteras precis som en primitivtyp. En variabel av typen String kan lagra ett valfritt antal tecken av valfri sort. På svenska är det vanligt att säga sträng i stället för String. Robert Jonsson Sida 24

26 En variabel i Java är en plats i datorns minne där vi kan lagra ett värde av en viss typ. Denna plats är namngiven med en identifierare som vi använder för att komma åt värdet som lagrats. Innan vi kan använda en variabel i ett program måste vi deklarera den. Med en variabeldeklaration talar man om vilken typ av data vi vill lagra och vilket namn vi vill använda för att manipulera eller komma åt det lagrade värdet. I samband med deklarationen kan vi även tilldela variabeln ett värde. Man säger att man initierar variabeln. I bilden ovan ges olika exempel på deklarationer och tilldelningar. Robert Jonsson Sida 25

27 I Java finns det ett antal specialtecken som kan användas inuti en text för att skriva ut vissa tecken som annars inte vore möjligt. Ett exempel är tecknet. Den text som ska skrivas ut måste omslutas med detta tecken och vill vi i texten skriva ut just det tecknet blir det problem. Vi kan t.ex. inte göra så här: System.out.println("Peter "Foppa" Forsberg"); Och tro att utskriften ska bli Peter "Foppa" Forsberg. Här får vi använda specialtecknet \". De övriga som finns att tillgå är listade i första rutan. System.out.println("Peter \"Foppa\" Forsberg"); Det uppstår även problem när ni vill skriva ut text på skärmen som innehåller å, ä eller ö. För att råda bot på detta kan vi i våran källkod byta ut å, ä och ö mot ett andra tecken. Dessa erhålls genom att man håller in den vänstra alt-knappen och samtidigt trycker in en sifferkombination på det numeriska tangentbordet (det fungerar inte med de vanliga siffrorna). T.ex. får vi bokstaven å genom att hålla in alt samtidigt som vi trycker in Observera att detta är endast testat med Windows. Det kan t.ex. se ut så här i vår källkod: System.out.println(" ror till f rs ljning"); Ta en titt på Javaprogrammet Smeknamn.java (finns bland exemplen) för att se olika deklarationer och tilldelningar. Robert Jonsson Sida 26

28 Till typer hör också operatorer som kan användas i uttryck där operander av de fördefinierade primitiva datatyperna ingår. Operatorerna kan delas in i följande grupper: Aritmetiska: +, -, /, * (samt ++ och vilket innebär addition och subtraktion med ett) Jämförelseoperatorer: >, <, <=, >=, ==,!= (jämförelse mellan element av andra typer) Booleska operatorer: &&,,! (för att kombinera uttryck med varandra) Bitoperatorer: &,, ~ (operatorer för att läsa eller skriva individuella bitar i ett heltal) Skiftoperatorer: << >> >>> (operatorer för bitvis skiftning av bitar i ett heltal) Tilldelningsoperatorer: = (för tilldelning, som också kan kombineras med de aritmetiska operatorerna) Ta en titt på Javaprogrammet TestAvOperatorer.java (finns bland exemplen) för att se test av olika operatorer. Robert Jonsson Sida 27

29 Konstruktioner för kontrollflöde styr hur programmet exekveras, d.v.s. vilka programsatser som skall exekveras vid ett visst tillfälle. Precis som i andra programmeringsspråk så är kontrollflödeskonstruktionerna i java: Villkorskonstruktioner: if-else och switch som testar ett uttrycks värde och avgör exekveringen utifrån detta. Iteration: while, do-while och for upprepar exekvering av en programsats(er) så länge ett visst villkor är uppfyllt. Avbrott: break, continue och return avbryter exekvering av en viss iteration eller metod. Ta en titt på Javaprogrammet TestAvKontrollFloden.java (finns bland exemplen) för att se exempel på kontrollflödeskonstruktioner. Robert Jonsson Sida 28

30 Java är ett objektorienterat språk, vilket innebär att alla Javaprogram beskrivs i termer av klasser. En klass programmeras i en källkodsfil i Java, och filens namn måste vara detsamma som klassens namn. En klass är en egendefinierad typ, d.v.s. en typdefinition av någonting som vårt program skall hantera. En klass definieras i termer av instansvariabler och metoder. Dessa variabler och metoder kan göras mer eller mindre synliga (åtkomliga) för andra klasser, vilket görs genom speciella åtkomstmodifierare (mer om detta i kommande lektioner). Instansvariabler är data som ska associeras till klassen och dess objekt. Kallas även för medlemsvariabler eller fält och kan vara namn, ålder, kön m.m. i en Person-klass, eller bredd och höjd i en Rektangel-klass, eller filnamn, filtyp och storlek i en Filklass. Metoder är operationer som ska kunna utföras på objekt av klassen. T.ex. öppna, stänga och spara i Fil-klassen, sätta höjd och beräkna area i Rektangel-klassen. Det är i metoderna det egentliga arbetet utförs, det är här vi skriver vår kod. Denna kan bestå av satser av olika slag, t.ex. variabeldeklarationer, villkorssatser och iterationer. Robert Jonsson Sida 29

31 En klass är som sagt en typdefinition av någonting som programmet ska hantera. Av denna klass skapas förekomster, objekt, som är de faktiska begrepp som manipuleras i programmet. Ett objekt är en förekomst av en viss klass (t.ex. kan klassen Person ha objekten Kalle, Pelle och Stina som då alla är unika förekomster av klassen Person). Ett objekt är av en viss klass är på samma sätt som en variabel är av en viss typ i ett traditionellt programmeringsspråk. Variabeln minint kan vara av typen int på samma sätt som objektet minperson är av typen Person. T.ex. kan vi skapa klassen Person för att i vårt program hantera olika Personer. Det vi vill lagra om personerna är namn och personnummer. Detta blir klassens instansvariabler. De operationer vi vill kunna utföra är att sätta namn och personnummer samt att hämta (visa) namn och personnummer. Detta blir klassens metoder. De olika personer vårt program sen hanterar är alla förekomster av vår Person-klass. Alla objekt är helt unika och har inget med varandra att göra (även om personerna har samma namn), d.v.s. de olika objekten delar inte på variablerna eller innehållet i dessa. Robert Jonsson Sida 30

32 Det kan vara intressant att se hur en enkel klass egentligen är uppbyggd som. Jag ger inte någon förklaring av koden utan det kommer att förklaras allt eftersom längre fram i lektionerna. Det som kan sägas är att först kommer klassdeklarationen (public class), därefter deklarerar vi våra instansvariabler (private int pnr och private String namn) och till sist metoderna (public void setnamn() och public String getnamn()). Robert Jonsson Sida 31

33 Det finns ytterligare ett par operatorer i Java. Man kan se dessa som special operatorer. new används för att skapa objekt av en klass. Mer om detta i lektioner längre fram. Det finns operator för att ändra typ på ett uttryck, en s.k. Cast-operator. T.ex. kan vi konvertera ett decimaltal till ett heltal. Viktigt att tänka på här är att vi tappar decimaldelen när vi konverterar ett decimaltal till ett heltal. Det utförs heller ingen avrundning utan decimaldelen kapas helt enkelt bort. instanceof används för att avgöra typen på ett objekt, d.v.s. av vilken klass objektet är skapat ifrån. Robert Jonsson Sida 32

34 Utifrån en existerande klass kan nya klasser skapas genom arvs-mekanismen. En klass som ärver en annan klass utgår ifrån samma egenskaper (instansvariabler och metoder) som den ärvda klassen, men lägger till ytterligare egenskaper eller omdefinierar implementationen (som det så fint heter) av en viss egenskap (d.v.s. en viss metod utförs på ett annat sätt i den nya klassen). Vid arv skapas olika klass-hierarkier som man kan illustrerar enligt bilden. Pilen pekar mot den klass som ärvs. I det här fallet ärver klassen Sportbil alla egenskaper från klassen Personbil, som i sin tur ärver sina egenskaper från klassen Fordon. De klassbibliotek som medföljer Java är alla uppbyggda med liknande klasshierarkier. Arv är en ytterst central egenskap vid objektorienterad programmering. Det var allt för lektion 1. Du kan nu övergå till övning 1 där du bl.a. får ladda hem och installera den utvecklingsmiljö vi ska använda i kursen. Robert Jonsson Sida 33

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

(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

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

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

Läs mer

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

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

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 programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

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

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

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

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program Datateknik A, Syfte: Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program Att läsa: Lektion 1 Antal uppgifter: 3 Inlämning: Sker via inlämningsuppgifter

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

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

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program Föreläsning 1 Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program Deitel: 1.1-1.9, 2.1-2.3 DA101A Programmering Programmering, DA101A Kursansvarig:

Läs mer

OOP Objekt-orienterad programmering

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äs mer

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Introduktion till Java -- för Pythonprogrammerare Historia: C, C++ 3 Historia: Oak 1 4 1990: Sun Microsystems påbörjade projekt StarSeven Avancerad

Läs mer

Objektorienterad programmering i Java I

Objektorienterad programmering i Java I Laboration 0 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: ca 2 3 timmar Att läsa: sidan 45 52 Syfte: Att ladda hem och installera utvecklingsmiljön Att skriva ditt första Javaprogram

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

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

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

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

Läs mer

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

Inledande programmering med C# (1DV402) Introduktion till C#

Inledande programmering med C# (1DV402) Introduktion till C# Introduktion till C# 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å här: Allt innehåll i

Läs mer

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Lärare: pl@cdt.luth.se A 3113 Tomas Klockar klockar@sm.luth.se A 3019 Mats Folke folke@sm.luth.se A 3019 Labhandledare: Natasja Saburova Fredrik Jonsson Lars Persson

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

Editering, Kompilering och Exekvering av Javaprogram

Editering, Kompilering och Exekvering av Javaprogram UMEÅ UNIVERSITET Institutionen för informatik B.1, Programmeringens grunder, 5 poäng Editering, Kompilering och Exekvering av Javaprogram Introduktion Syftet med kursmomentet Programmeringens grunder (B.1)

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

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

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

Programmering för språkteknologer I, VT2012. Rum

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

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

Innehållsförteckning

Innehållsförteckning Innehållsförteckning Ämne Sida Program Hur ska man lära sig programmering med Java? 11 Kapitel 1 Introduktion till programmering 13 1.1 Vad är programmering? 14 1.2 Vad är en algoritm? 16 1.3 Olika sätt

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

Kompilera och exekvera Javakod

Kompilera och exekvera Javakod Kompilera och exekvera Javakod Förberedelser För att kunna göra dessa övningar måste du ha installerat Java Development Kit, JDK, som bland annat innehåller Java kompilatorn, javac. Hur du installerar

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

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

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

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

Läs mer

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Introduktion till Java -- för Pythonprogrammerare Historia: C, C++ 3 Historia: Oak 1 4 1990: Sun Microsystems påbörjade projekt StarSeven Avancerad

Läs mer

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

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel Programmeringsteknik för Bio1 och I1 Övning 2 Kort repetition Övningsgrupp 3 (Sal E33) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1310/

Läs mer

Programmering i C++ Kompilering från kommandoraden

Programmering i C++ Kompilering från kommandoraden Programmering i C++ Kompilering från kommandoraden Sven Gestegård Robertz Datavetenskap, LTH 9 november 2015 Sammanfattning Ibland vill man, av olika anledningar, inte använda en stor integrerad utvecklingsmiljö

Läs mer

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

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

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 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

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

Läs mer

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

Att använda Java SE JDK 6

Att använda Java SE JDK 6 Att använda Java SE JDK 6 Programmeringsspråket Java är utvecklat av det amerikanska företaget Sun Microsystems. Sun erbjuder gratis en utvecklingsmiljö för java-programmering, Java 2 SE (Standard Edition).

Läs mer

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

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

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till programmering och Python Grundkurs i programmering med Python Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?

Läs mer

Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass.

Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass. Datateknik A, Syfte: Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass. Att läsa: Lektion 2 Uppgifter:

Läs mer

Att använda Java SE JDK 6

Att använda Java SE JDK 6 Att använda Java SE JDK 6 Programmeringsspråket Java är utvecklat av det amerikanska företaget Sun Microsystems. Sun erbjuder gratis en utvecklingsmiljö för java-programmering, Java 2 SE (Standard Edition).

Läs mer

NetBeans 7. Avsikt. Projektfönster

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

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

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

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

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas. Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod

Läs mer

TUTORIAL: KLASSER & OBJEKT

TUTORIAL: KLASSER & OBJEKT TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan

Läs mer

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

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

Läs mer

Java Introduktion. Historik. Beståndsdelar

Java Introduktion. Historik. Beståndsdelar Java Introduktion Historik Java utvecklades ursprungligen av Sun Microsystems för att skriva kompakta program inbäddade i konsumentelektronik, t ex microvågsugnar och tvättmaskiner. Java skapades utifrån

Läs mer

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1 Grundläggande programmering DVG A08 & ISG A04 Allmän information Grupp C och D slås ihop Schemat är ändrat Kurs i programmering utan förkunskaper Hjälp oss med detta Lita inte på era klasskamrater De ställer

Läs mer

OOP Tenta

OOP Tenta Stockholms universitet sid 1 OOP OOP Tenta 2012-01-14 10.00 15.00 Avser kurserna DSK1:OOP och GES:OOP Anvisningar Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt

Läs mer

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

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:

Läs mer

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis

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

JAVAUTVECKLING LEKTION 1

JAVAUTVECKLING LEKTION 1 JAVAUTVECKLING LEKTION 1 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Introduktion till kursen Java historik och särdrag Javautvecklarens yrkesroll Installation och konfiguration

Läs mer

Övning 3. Datateknik A, Java I, 5 poäng

Övning 3. Datateknik A, Java I, 5 poäng Datateknik A, Syfte: Att prova på att skriva egna klasser och skapa objekt av dessa klasser. Att skriva klasser med överlagrade metoder och konstruktor, samt att i en klass använda statiska medlemmar.

Läs mer

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

Lektion 3. Datateknik A, Java I, 5 poäng

Lektion 3. Datateknik A, Java I, 5 poäng Datateknik A, Syfte: Att få en djupare förståelse hur metoder i Java konstrueras och används. Veta vad en konstruktor är och hur vi använder dem för att skapa objekt. Kunna generera dokumentation med hjälp

Läs mer

Anteckningar 1: Grundläggande saker

Anteckningar 1: Grundläggande saker UPPSALA UNIVERSITET Institutionen för lingvistik och filologi Mats Dahllöf http://stp.ling.uu.se/ matsd/uv/uv11/pst1/ Programmering för språkteknologer I Anteckningar 1: Grundläggande saker 1 Programmering

Läs mer

Introduktion till användning av linux-servern sledge och några övningsuppgifter

Introduktion till användning av linux-servern sledge och några övningsuppgifter Uppsala universitet Institutionen för utbildning, kultur och medier Monica Langerth Zetterman och Richard Walls IT-stöd i undervisningen, HT10 Introduktion till användning av linux-servern sledge och några

Läs mer

2I1049 Föreläsning 9. Iterativ programutveckling. Iterativ programutveckling. Modularisering, återanvändning och JavaBeans

2I1049 Föreläsning 9. Iterativ programutveckling. Iterativ programutveckling. Modularisering, återanvändning och JavaBeans 2I1049 Föreläsning 9 Modularisering, återanvändning och JavaBeans KTH-MI Peter Mozelius Iterativ programutveckling Iterativ utveckling evolutionär utveckling inkrementell utveckling Att bygga programmen

Läs mer

Program & programmering

Program & programmering Program & programmering Vad är program? Satser och instruktioner, toggla igenom exempel Program på olika nivåer, för olika maskiner, för olika saker Tolka program; kompilator, intepretator, binärbytekod,

Läs mer

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll 2010-04-22

Ö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

Läs mer

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

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

Läs mer

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

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

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe In- och utmatning i Unix Program i Unix skriver och läser till och från filer. En fil betyder här en vanlig fil med text eller binära data, ett tangentbord, en skärm, ett annat program etc. Innan ett program

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

JAVA Mer om klasser och objektorientering

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

Läs mer

ID1004 Laboration 3, 5-6 November 2012

ID1004 Laboration 3, 5-6 November 2012 18-okt-2012/FK ID1004 Laboration 3, 5-6 November 2012 Labben bör göras individuellt. Beräknad tid ca 2 timmar. Instruktionen antar att labben utförs i datasal, med hjälp av den integrerade utvecklingsmiljön

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

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

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

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

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

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

Kursplanering för EE3D i kursen Programmering 1, 100p.

Kursplanering för EE3D i kursen Programmering 1, 100p. Kursplanering för EE3D i kursen Programmering 1, 100p. Tidplan Kursstart 2013-08-22 - Kursslut 2014-06-03 Datum/Period Kursinnehåll/Moment Sidhänvisning Vecka 34 Kursintroduktion Vecka 35 Allmänt om Java,

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ ETT Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. Ett av dem är Python, som du ska få

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

Frekvenstabell över tärningskast med C#

Frekvenstabell över tärningskast med C# Instruktion Frekvenstabell över tärningskast med C# Introduktionsuppgift Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Innehåll Du ska följa steg för steg -instruktionen 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

TUTORIAL: SAMLING & KONSOLL

TUTORIAL: SAMLING & KONSOLL TUTORIAL: SAMLING & KONSOLL Denna tutorial är en fortsättning på den tutorial där vi skapade klassen Car och sedan objekt av denna klass. Vi skall nu lära oss att lagra dessa objekt i en samling och även

Läs mer

Tentamen i Programmeringsteknik MN

Tentamen i Programmeringsteknik MN Tentamen i Programmeringsteknik MN1 001204 Skrivtid : 14.00-19.00 Hjälpmedel : Skansholm, Java direkt eller motsvarande Pärt-Enander mfl, Anv. handledning för Matlab. Matlab-material utdelat på lektion.

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

Objekt och referenser

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

Läs mer

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

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

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

Läs mer

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen

Läs mer

Imperativ programmering. Föreläsning 4

Imperativ programmering. Föreläsning 4 Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering

Läs mer

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

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å

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

Imperativ programmering. Föreläsning 2

Imperativ programmering. Föreläsning 2 Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.

Läs mer

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02) UMEÅ UNIVERSITET Institutionen för datavetenskap Thomas Johansson Oktober 1998 Programutveckling med Java Development Kit (JDK 1.1.x) och Programmers File Editor (PFE 7.02) Umeå universitet 901 87 Umeå.

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