Kursinformation och introduktion till Java och

Föreläsning 1-2:
Kursinformation och introduktion till
Java och programmering
Eva Blomqvist
[email protected]
Department of Computer and Information Science (IDA)
Linköpings universitet
Sweden
October 14, 2013
1
Innehåll
n 
n 
n 
n 
n 
n 
n 
Kursinfo
Varför programmering?
Vad är ett program? – grundläggande begrepp
Hur fungerar Java – miljö och struktur
Ett första programexempel i Java
Eclipse – en programmeringsmiljö (IDE)
Vi börjar programmera
q 
q 
q 
Standardutmatning
Variabler
Enkla datatyper och operationer på dem
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
2
Kursinfo
http://www.ida.liu.se/~725G61/index.sv.shtml
Eva Blomqvist
[email protected]
Examinator, föreläsare och labbhandledare
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
3
Övergripande regler
n 
NI är ansvariga för att hålla er uppdaterade om vad som
händer i kursen
q 
q 
n 
n 
n 
All information finns på kurshemsidan
Nyheter och ändringar dyker upp som nyheter på hemsidan
och i akuta fall som mail på kurslistan
Kontrollera kurshemsidan minst en gång per vecka för
uppdateringar!
Kontrollera mail från kurslistan dagligen!
Vi svarar på mail och frågor så snabbt vi kan - har ni inte
fått svar på 1 vecka - skicka en påminnelse och/eller
kontakta en annan lärare i kursen!
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
4
Kursinfo - kursöversikt
n 
Kursen har tre delar
q 
Del 1 – grundläggande programmering med Java
n 
n 
n 
Fram till slutet av november
6 Fö + lektioner och 4 labbar – deadline 6/12 (men följ gärna
"veckoplan")
Individuell dugga ("på papper")
q 
q 
Del 2 – objektorienterad programmering + mer avancerad Javaprogrammering
n 
n 
n 
n 
Fram till mitten av januari
4 Fö + lektioner och 4 labbar – deadline 31/1 (men följ gärna
"veckoplan")
Rekommenderat att gå på föreläsning med projektinformation
(december)
Individuell dugga ("på papper")
q 
q 
3 chanser under del 1 + uppsamlingstillfälle i slutet av kursen
3 chanser under del 2 + uppsamlingstillfälle i slutet av kursen
Del 3 – projektarbete
n 
n 
December till slutet av kursen (ca v.7)
Större programmeringsuppgift – egen problemlösning
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
5
Kursinfo - Mål
n 
När kursen är slut ska ni kunna...
q 
q 
q 
q 
n 
Analysera ett problem och skapa en lösning i Java
– praktisk programmering
Hitta de klasser i standardbiblioteket som behövs och förstå
dem genom att läsa deras Javadoc
Förstå och felsöka andras kod
Använda Eclipse (eller motsvarande) och förstå hur Javamiljön är uppbyggd
Beroende på förkunskaper kan kursen vara...
q 
q 
Ett stort steg – ni lär er programmera från grunden,
...eller ett litet steg där ni friskar upp er kunskaper och utökar
era praktiska färdigheter i Java-programmering.
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
6
Kursinfo - vad betyder de olika momenten?
n 
Föreläsning
q 
q 
q 
n 
Lektioner
q 
q 
q 
n 
Introducerar begrepp och koncept inom programmering
Visar exempel - bra att gå tillbaka till bilderna senare
Endast några få riktiga "körexempel" i Eclipse nu i början
Ungefär: 1 föreläsning - 1 lektion
Ni förutsätts vara bekanta med begreppen som introducerats på
föreläsningen
Visar "körexempel" i Eclipse som tillämpar begreppen från förläsningen
Labbar
q 
Ungefär: 4-8 timmar bokad salstid per Fö+Le
n 
q 
q 
n 
...men ni förutsätts lägga ner minst 10 timmar i veckan på kursen, för en del mer än
så, dvs ni förutsätts jobba mycket på egen hand utöver labbar
Ni löser praktiska programmeringsuppgifter i grupper om 2 studenter
- OBS! "parprogrammering"
Ni förutsätts vara bekanta med begreppen och exemplen från föreläsning och
lektion
Duggor
q 
q 
q 
Individuell kunskapskontroll: har ni förstått de mest grundläggande begreppen
och kan läsa och förstå kod (utan att Eclipes "gör det åt er")
Inte en "pluggtenta" - har ni förstått labbarna klarar ni duggan
30 minuter - skrivs på papper
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
7
Kursinfo - Examination
n 
n 
4HP = laborationer (del 1+2, duggor) + 2HP = projekt
Examination genom 3 moment
q 
Labbar – lämna in lösningar på labbuppgifterna
n 
n 
n 
n 
Skilj på "övning" och "uppgift" - Uppgift ska lämnas in
Lösningar måste vara kommenterade (i koden)
Lösningar måste vara testkörda
För VG måste ni lämna in lösningarna före första deadline
(del 1 - 6/12, del 2 - 31/1)
q 
q 
Duggor
n 
Två duggor – måste få G på båda
n 
För VG på kursen måste ni få G under ordinarie tillfällen, dvs senast 5/12 resp. 30/1
q 
q 
Komplettering möjlig (även för VG) vid två ytterligare tillfällen
3 ordinarie tillfällen per del + 1 uppsamlingstillfälle i slutet av kursen
Projekt
n 
n 
Godkänd projektuppgift – designdiskussion, demo av inläsning från fil, projektrapport/
kod/dokumentation och demonstration/muntlig diskussion med handledaren
Två nivåer av krav:
q 
q 
n 
Alla grundläggande krav uppfyllda – G
Ytterligare krav uppfyllda – VG
För VG måste ni uppfylla VG-kraven samt klara av alla momenten före ordinarie
projektdeadline 21/2
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
8
Kursinfo - Labbar
n 
n 
Vi använder Java 1.6 och Eclipse Helios
Jobba två och två
q 
q 
q 
q 
n 
4 labbar med ett antal uppgifter vardera i del 1
q 
q 
q 
q 
n 
Registrera er labbgrupp i WebReg OCH ange gruppnummer + båda namnen
vid varje inlämning i LISAM
Samma grupper hela kursen (labbar och projekt)
Välj en person som är på samma nivå!
Parprogrammering = en skriver in koden i Eclipse, en sitter bredvid och
hjälper till att tala om vad som ska skrivas, byt efter max 20 minuter!
Bara de som heter "uppgift" måste lämnas in
Övningar är valfria, men är ni nybörjare rekommenderar vi att ni göra alla
övningar
Välj er egen nivå och jobba i ert eget tempo – kolla "veckoplan" på hemsidan
för att se om ni ligger i fas
Jobba gärna hemma och på egen laptop – det är inte tänkt att ni ska hinna
med alla uppgifter på labbtid om ni är nybörjare!
Inlämning sker genom LISAM
q 
q 
q 
Kolla gärna med hanledaren på labben om lösningen ser rimlig ut, men
handledarna har inte tid att rätta på labbtid
Ladda upp en labb i taget, dvs lämna in först när ni är klara med alla uppgifter
i labb 1 osv. - ladda då upp alla filer med er kod (.java) som en zip-fil
Koden måste vara välkommenterad och direkt körbar – annars ingen rättning
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
9
Kursinfo – Regler och deadlines
n 
n 
Deadlines är strikta
Rättning sker (kontinuerligt) inom ca 1 vecka, före ordinarie deadline
(dvs före 6/12 för del 1)
q 
q 
n 
n 
Handledare svarar på frågor på labbtid – frågor utöver labbtid ställs per
e-post till ER handledare och besvaras i mån av tid. Det går även bra
att boka tid med handledaren via e-post – men INTE att bara dyka upp
på hans/hennes kontor!
Deadlines
q 
q 
q 
n 
Rättning av alla uppgifter som lämnats in före ordinarie deadline sker inom 2
veckor från deadline (dvs all ni lämnat in före 6/12 rättas senast 20/12)
Rättning av kompletteringar sker endast direkt efter kompletteringsdedline
(inom 2 veckor) - det går bra att lämna in komplettering när som, men de
rättas inte förrän efter nästa kompletteringsdeadline
Labbar del 1 – 6/12 17:00 (Kompletteringar: 14/2 och 28/3)
Labbar del 2 – 31/1 17:00 (Kompletteringar: 28/2 och 28/3)
Projekt – designdiskussion med handledaren senast 17/1, demonstrerat
inläsning från fil senast 31/1, redovisat för handledare muntligt + rapport/kod/
dokumentation inskickad senast 21/2 17:00 (Kompletteringar innan 28/3 –
överenskommes med handledare)
Duggor
q 
q 
q 
Dugga del 1 – 7/11 eller 21/11 eller 5/12
Dugga del 2 – 19/12 eller 16/1 eller 30/1
Uppsamlingstillfällen: 1st i februari för både dugga 1 och 2
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
10
Kursinfo – vanliga frågor?
n 
Måste jag gå på föreläsningarna?
q 
q 
n 
Det är jättemånga övningar – måste jag göra alla?
q 
n 
Nej, bara de som heter "uppgift" är obligatoriska. Sen väljer du själv hur
mycket av övningarna du vill göra. Uppgifterna är oftast de mest
avancerade, så om du är ny på programmering rekommenderar jag att
göra alla övningar och även testa att köra exemplen från föreläsningar
och lektioner!
Min labbhandledare är inte där – vem ska jag fråga?
q 
n 
Nej, men jag rekommenderar att gå om du är ny på Java-programmering
eller om det var länge sen du programmerade
Gå på föreläsningen med projektinformation i december
På labbtillfällena går det bra att fråga vem som helst av handledarna
(normalt 1 handledare per sal) – alla kanske inte är där varje tillfälle. När
ni lämnar in uppgifter får ni kommentarer från ER handledare, och om ni
har frågor utanför labbtid är det honom/henne ni ska maila.
Jag har missat ... hur kan jag ta igen det?
q 
För varje moment (labbinlämning, duggor osv) finns flera chanser – kolla
kurshemsidan. Tänk på att för VG måste du lämna in labbar innan
ORDINARIE deadline OCH klara duggorna innan samma deadline.
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
11
Kursinfo - vad har hänt sen förra året?
n 
För mycket tid
q 
q 
q 
n 
För stort hopp mellan del 1 och 2, samt teori/praktik
q 
q 
n 
q 
q 
Infört 3 chanser per dugga under periodens gång
Svårt att få hjälp och feedback på labbarna
q 
q 
n 
Mer text i labbinstruktionen, förklarar vad ni övar på
Uppgifterna organiserade i "labbar" med ett tema
... men finns fortfarande många möjliga lösningar
Orättvist att bara ha en chans på duggorna
q 
n 
Lektion till varje föreläsning
Allt om klasser har flyttats till del 2 - "mjukstart" i del 2?
Svårt att veta vad vi övar på i labbarna och vad som är "rätt svar"
q 
n 
Något färre uppgifter i år, och några uppgifter har minskats i omfång
Fokus på färre klasser i standardbiblioteket
... men det är fortfarande en krävande kurs!
En assistent per sal
Fler assistenter totalt = snabbare rättning
Andra nyheter:
q 
Mer strikt parprogrammering - båda ska lära sig skriva kod
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
12
"Veckoplan" - del 1 (se kurshemsidan)
n 
v. 42-43:
q 
q 
n 
v. 44:
q 
q 
n 
q 
Fö 5 + Le 4: Metoder
Labb 3 (4 timmar salstid + ev. del av nästa veckas labbtid)
- bör vara inlämnad 15/11
v. 46-47:
q 
q 
n 
Fö 4 + Le 3: Arrayer och loopar
Labb 2 (4 timmar salstid) - bör vara inlämnad 1/11
v. 45:
q 
n 
Fö 1-3 + Le1-2: Kursinfo samt grundläggande "kom-igång", sedan:
variabler, operationer, villkorssatser
Labb 1 (8 timmar salstid) - bör vara inlämnad 25/10
Fö 6 + Le 5: In- och utmatning, undantag
Labb 4 (8 timmar salstid - den extra tid du tog för labb 3)
- bör vara inlämnad 22/11
v. 48:
q 
6 timmar salstid - reservtid för att bli klar med labbarna i del 1
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
13
Varför programmering?
October 14, 2013
14
Förstå systemet
n 
För att förstå ett system måste man förstå dess
beståndsdelar!
q 
De flesta system idag innehåller mjukvara...
n 
n 
n 
n 
n 
n 
q 
Bilar...
Smarta kort...
Kassan på ICA...
TVn...
Vitvarorna hemma i ditt kök...
Och förstås de system vi oftast tänker på: mobiltelefoner,
datorer, surfplattor mm.
Genom att förstå principerna för programmering förstår vi
dels...
n 
n 
Hur systemet har byggts – programmerarnas arbete, varför det
kan finnas fel, hur omfattande arbete som krävdes etc.
Och dels, varför systemet “agerar” som det gör (inte alltid som
förväntat) och inte alltid är så "smart" som vi tror
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
15
Förstå systemutveckling och
programmerare som yrkesgrupp
n 
För att kunna leda ett förändrings- eller utvecklingsprojekt
i en organisationer måste man förstå människorna och
processerna som är inblandade
q 
q 
Systemutvecklingsprocessen är en sådan process
Programmerarna är en sådan grupp av människor
n 
q 
Hur kommunicerar vi med en programmerare? Förstå begrepp,
metoder och problem.
Leda bättre
n 
n 
n 
Bättre tidsuppskattningar
Bättre kvalitetsuppskattningar
Bättre möjlighet att följa upp och kontrollera processen
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
16
Jobba med programmering
n 
Vissa av er kommer säkert tycka (eller tycker redan) att
detta är jättekul!
q 
q 
q 
q 
n 
Analys och design
Systemutveckling
Testning
Underhåll
Programmering är ett hantverk
q 
q 
Man lär sig genom att öva, öva och öva
Mer än bara lösa problemet
n 
q 
Vad är en bra lösning? Varför? Vad finns det för alternativ?
Även om ni programmerat innan finns det mycket att lära sig
i den här kursen!
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
17
Vad är ett program?
Hur fungerar Java?
October 14, 2013
18
Program som en samling instruktioner
n 
n 
Varje program har en uppgift – något som ska utföras
En dator kan inte “förstå” hur man gör något – vi måste
tala om för den i detalj hur målet ska uppnås
q 
q 
n 
n 
n 
n 
Varje steg i processen är en instruktion till datorn
Instruktionerna utförs i en väldefinierad ordning
Program = beskrivning av hur en uppgift ska utföras i ett
språk som datorn kan tolka/utföra
Programmering = att skriva sådana beskrivningar
Programmeringsspråk = språket man använder för att
uttrycka beskrivningen
Köra/exekvera ett program = låta datorn utföra uppgiften
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
19
Algoritmer – sekvens med instruktioner
n 
Hur ska vi lösa ett visst problem?
q 
q 
n 
Bryta ner problemet i smådelar = detaljerade instruktioner
Ordna instruktionerna så att vi i slutänden får lösningen på
hela problemet
En viss sekvens av instruktioner = en algoritm
q 
Finns typiska algoritmer som kan återanvändas
n 
n 
T ex sorteringsalgoritmer
Exempel: Insättning på bankkonto
q 
q 
q 
q 
Mata in insättningsbelopp och kontonummer
Hämta saldo för det givna kontonumret
Öka saldo med insättningsbelopp
Spara det nya saldot
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
20
Hur ska vi få datorn att utföra vår algoritm?
n 
n 
n 
Vi måste skriva den så att datorn kan tolka vad den ska
göra! – vi kan använda Java
Varje steg i algoritmen måste översättas till Java
Java har bara generella instruktioner – inget om
bankkonton och saldon!
q 
q 
q 
Vi måste bryta ner problemet i mindre bitar
Vi måste känna till vilka instruktioner som finns i Java
Vi måste öva på att uttrycka lösningar på olika typer av
problem i Java
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
21
Men... datorn “pratar” egentigen inte Java
n 
n 
Programmet måste översättas till 1:or och 0:or
= maskininstruktioner till datorns processor
Två typer av programmeringsspråk
q 
De som kompileras direkt till maskinkod
n 
n 
q 
Fördelar? Programmet kan köras direkt på datorn, utan
ytterligare programvara installerad. Det går snabbt när
programmet väl körs.
Nackdelar? Programmet kompileras för en speciell plattform,
eller till och med en speciell dator.
De som kompileras till “bytekod” och sedan körs genom en
interpretator
n 
n 
n 
Java är ett exempel
Fördelar? Plattformsoberoende
Nackdelar? Långsammare. Kräver rätt interpretator.
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
22
Java-kompilering
I minnet – när vi
exekverar programmet
På hårddisken – i förväg
MittProgram.java
class Tecken
{
public static void main (String[] args)
{
char tecken = 'B';
char tecken2 = 66;
...
}
}
MittProgram.class
χλασσ Τεχκεν
πυβλιχ στατιχ ϖοιδ µαιν (Στρινγ αργσ
χηαρ τεχκεν = ∍Β∍; χηαρ τεχκεν2 = 66
...
Kompilator
Interpretator
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
23
00001100
01001001
011...
Javamiljön vi jobbar i
n 
Följande måste finnas
q 
q 
n 
De Java-programbibliotek som programmet använder
En Javainterpretator – Java Runtime Environment (JRE)
För att enklare skriva program finns olika
utvecklignsmiljöer
(IDE = Integrated Development Environment)
q 
Jämför med MS Word:
n 
q 
Du kan skriva din text i Notepad, men... du har ingen
stavningskontroll, ingen formatering för att göra texten
begripligare. Betydelsen kommer vara densamma, men det är
enklare att skriva och hålla reda på texten med lite extra
funktioner.
En IDE har “stavningskoll” för olika programmeringspråk, du
kan testköra programmet direkt i din IDE osv.
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
24
Vanligt problem: låt inte Eclipse styra er!
n 
n 
...ni ska styra Eclipse!
Eclipse ger er indikationer på när någonting är fel i er
kod, men förslagen på åtgärder är inte alltid rätt i just ert
fall utan bara en "gissning"!
q 
q 
n 
Ni måste ha kunskaperna för att kunna bestämma vad som
är lämpligt (eller ens möjligt) att göra i ert specifika fall
Lite inte blint på förslagen från Eclipse, tänk efter: är det här
rätt och vad får det för konsekvenser?
Duggorna testar er förståelse - där har ni inte hjälp av
Eclipse!
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
25
Om Java
n 
n 
n 
n 
n 
n 
Plattformsoberoende
Webbprogrammering
Imperativt språk – man talar om vad som ska göras
ungefär som man ger order till en person: instruktionerna
utförs i ordning som de läses.
Objektorienterat språk – klasser och objekt (instanser av
objekt)
“Få” instruktioner i grundspråket – många bibliotek
(Java API - "standardbiblioteket")
Java är bara ett språk bland många!!
q 
...men kan man ett är det mycket lättare att lära sig ett annat
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
26
Att programmera
n 
n 
Analysera problemet
Utforma algoritmen
n 
Skriva programmet
Kompilera
Exekvera – Testa
n 
Viktigt om testning:
n 
n 
q 
q 
Tänk på att alltid köra programmet både med förväntade och
oväntade data
Spårutskrifter är ett bra sätt att se vad som händer “inuti” när
programmet körs
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
27
Ett första Javaprogram
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
28
Ett Javaprogram – namn och syntax
n 
Program måste skrivas och sparas på ett speciellt sätt
n 
Ett program måste skrivas enligt Javas syntax
q 
q 
n 
Ett programspråks syntax talar om exakt vad som är korrekt att
skriva – vad datorn kommer att förstå
Jfr. grammatik och stavning i svenska... Men vi är inte maskiner,
vi förstår oftast även om syntaxen är fel, det gör inte datorn!
Namnet på ett program (en Java-klass)
q 
q 
q 
q 
Ett enda ord (dvs inga mellanslag – använd “Camel Case” för
flera ord – FleraOrd – eller “_” – Flera_Ord)
Måste börja med en bokstav (engelska alfabetet + kan sedan
innehålla siffror samt “_”)
Ge programmet ett beskrivande namn!
Undvik å/ä/ö och andra specialtecken
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
29
Tips: använd bara engelska alfabetet!
n 
Det går att använda svenska tecken när ni programmerar
men...
q 
q 
Svenska tecken representeras olika på olika datorer och i
olika Eclipse-versioner
Använder ni svenska tecken kan ni får problem om ni flyttar
över er kod till en annan dator
n 
n 
T ex mellan din laptop och din labbkompis dator, eller från
datorn i labbsalen och din egen laptop
Bäst att helt undvika svenska tecken i er kod!
q 
q 
använd engelska namn...
eller använd svenska namn men "ta bort prickarna", t ex
"anvand" istället för "använd"
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
30
Ett Javaprogram – Klasser och metoder
n 
Ett program består av en eller flera Java-klasser
q 
q 
En klass innehåller en samling instruktioner som löser ett
visst problem – används för att bryta ner problemet
En klass sparas normalt i en fil (finns undantag)
n 
q 
-> Flera klasser = flera filer
Filen måste ha samma namn som klassen + ändelsen .java
n 
Exempel: MittProgram.java innehåller klassen MittProgram
n 
Vi kommer att börja med enkla program som bara består
av en klass = sparas i en enda fil
n 
Varje klass har normalt en eller flera metoder
q 
Metoderna innehåller instruktionerna som ska utföras
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
31
Ett Javaprogram – Metoden “main”
n 
“main” är huvudmetoden – själva huvudspåret i
programmet, där programmet börjar
q 
n 
Senare i kursen kommer vi att se andra metoder, men vi
börjar med att använda bara “main”
När ett Javaprogram exekveras söker interpretatorn efter
metoden “main”
q 
q 
Finns den inte får man ett felmeddelande
Annars börjar exekveringen här
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
32
Ett Javaprogram – Struktur och syntax
class Meddelande
{
public static void main (String[] args)
{
// här skriver vi vad programmet ska göra
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
33
Kommentarer – rader med text som
hoppas över när programmet körs
n 
n 
n 
Används för att kunna beskriva vad programmet betyder
och gör för andra programmerare (eller för dig själv)
Ni måste använda kommentarer för att beskriva vad ni
gjort i lösningarna till labbuppgifterna
Två typer av kommentarer:
q 
q 
// indikerar att resten av raden är en kommentar
/* ... */ indikerar att allt mellan /* och */ är en kommentar, kan
vara flera rader text – kallas för “block-kommentar”
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
34
Ett Javaprogram – Exempel
class Meddelande
{
public static void main (String[] args)
{
System.out.println(“Lycka till!”);
}
}
n 
Varje instruktion du ger till datorn avslutas med ";"
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
35
Ett Javaprogram – Exempel 2
class Meddelande2
{
public static void main (String[] args)
{
System.out.println(“Lycka till!”);
System.out.println(“Lycka till igen!”);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
36
Ett Javaprogram – Exempel 3
class Meddelande3
{
public static void main (String[] args)
{
System.out.println(“Lycka till!”); //utskrift
System.out.println(“Lycka till igen!”);
/* Det här är en kommentar...
...på flera rader */
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
37
Eclipse
October 14, 2013
38
Vad är Eclipse?
n 
n 
En avancerad "texteditor" för programmeringsspråk
Smarta funktioner för att underlätta programmering
q 
q 
q 
n 
Färgkodning av reserverade ord med speciell betydelse i
språket – lättare att se strukturen
Indentering – lättare att se strukturen
Syntaxkontroll (tänk “stanvingskoll”) – markerar fel i
programkoden medan ni skriver – "kollar med" kompilatorn
Funktioner för att testköra och felsöka
q 
q 
q 
Automatisk kompilering
Finns även mer avancerade funktioner för att stega sig
igenom program (vi använder dessa först senare i kursen)
Köra program inifrån programmeringsmiljön
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
39
Eclipse och Java 1.6 – ladda ner (finns
redan på labbdatorerna)
n 
Ladda ner och installera Eclipse (Helios finns på labbdator)
q 
q 
http://www.eclipse.org/downloads/
Finns olika “paket”, välj antingen “Eclipse classic” eller Ett paket för
“Java developers” och följ installationsinstruktionerna
n 
q 
När du använder Eclipse – tänk på att du alltid ska jobba i “Java
Perspective”
n 
q 
Är du osäker, eller ser gränssnittet konstigt ut: gå till menyn “Window”,
välj “Open Perspective” och klicka på det som heter bara “Java” eller
“Java (default)”
Kontrollera att du använder rätt Java-version
n 
n 
Vissa paket innehåller Java
Preferences -> Java -> Installed JREs (Här ska Java SE 6 vara markerad
i listan - finns den inte att välja på måste du installera Java 6)
Ladda ner Java Development Kit (om ej inkluderat i Eclipse)
q 
q 
q 
http://www.oracle.com/technetwork/java/javasebusiness/downloads/javaarchive-downloads-javase6-419409.html
Med JDK följer även JRE (Java Runtime Environment – interpretatorn
för att kunna köra program)
Vilken version? – Språket utvecklas ständigt! Vi jobbar med Java 6 (dvs
1.6), finns även 7 men innehåller sådant vi inte tar upp i kursen och vi
kommer rätta era uppgifter med Java 1.6
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
40
Skapa och köra ett första program inifrån
Eclipse
n 
Skapa ett projekt i din “workspace”-mapp
q 
q 
n 
Skapa en ny Java-klass i ditt projekt
q 
q 
n 
Högerklicka i “Package explorer” och välj “New” -> “Java
Project”
Ge projektet ett namn (t ex “Labbar”) och klicka “Finish”
Högerklicka på projektmappen och välj “New” -> “Class”
Ge klassen ett namn och klicka i rutan för att skapa en tom
main-metod automatiskt
Skriv koden för ditt program innanför klamrarna till metoden
“main”
q 
Tänk på att göra koden begriplig genom...
n 
n 
n 
Kommentarer
Indentering
Testkör ditt program inifrån Eclipse
q 
q 
Högerklicka på klass-filen och välj “Run as Java Application”
Se resultatet och eventuella felmeddelanden i Eclipse:s
console/terminalfönster
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
41
Exekvering och felrapporter
n 
När ett program körs syns en röd markering (liknar “rec”
på en videokamera) i överkant på Eclipse:s console
q 
q 
n 
n 
Fel = Exception (“undantag”)
Felrapporter skrivs ut i Eclipse:s console
q 
q 
n 
När programmet är klart blir markeringen grå
Verkar programmet ha “hängt sig” eller fortsätter upprepa
sig utan att ta slut? – Ctrl-C avslutar ett program
Öva på att läsa felrapporter och analysera var felet finns
Ofta talar rapporten om i vilken klass och på vilken rad i
metoden/filen felet uppstod
Ofta gör ett fel att exekveringen avbryts
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
42
Exempel 1 och 2 i Eclipse
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
43
Köra ett kompilerat program utanför
Eclipse
n 
Leta rätt på den kompilerade filen
q 
n 
Klassnamnet + ändelsen .class
Kör programmet med kommandot “java” + klassnamnet
q 
q 
Kör klassen i java-interpretatorn
Letar efter en “main” metod inne i den kompilerade koden
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
44
Köra exempel 1 och 2 utanför
Eclipse
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
45
Eclipse tutorials
n 
Att komma igång med Java i Eclipse – video tutorial
q 
q 
q 
q 
n 
http://eclipsetutorial.sourceforge.net/totalbeginner.html
Lesson 1-2
Ni behöver inte använda paket (package) i början, och vi
kommer inte att skapa egna nya metoder förrän senare
Notera att de inte använder senaste versionen av Eclipse –
vissa knappar och menyer kan se lite annorlunda ut!
Grundläggande funktioner i Eclipse – video tutorial
q 
q 
q 
http://eclipsetutorial.sourceforge.net/workbench.html
Mycket detaljerat – ni behöver inte kunna allt detta, men får
ni problem med gränssnittet finns svaret säkert här
Notera att de inte använder senaste versionen av Eclipse –
vissa knappar och menyer kan se lite annorlunda ut!
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
46
Dags att börja
programmera...
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
47
Standardutmatning
class Meddelande
{
public static void main (String[] args)
{
System.out.println("Lycka till!");
}
}
n 
Punktnotation: <klassnamn>.<metodnamn>
q 
n 
n 
Vi återkommer till detta senare!! – det gör inget att ni inte förstår
alla detaljer just nu
System.out.println() – skriver ut en rad med text till standard
output, dvs det terminalfönster där programmet körs
Textsträngar anges mellan " "
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
48
Standardutmatning forts.
n 
System.out.println() – skriv ut och avsluta raden
System.out.print() – skriv ut men stanna kvar på samma rad
n 
Delsträngar kan sättas samman med +
n 
Exempel:
class Meddelande
{
public static void main (String[] args)
{
System.out.println("Lycka " + "till!");
System.out.print("Lycka ");
System.out.print("till!");
}
}
n 
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
49
Exempel i Eclipse
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
50
Finn fem fel...
class Mitt Meddelande
{
public static void main (String[] arg)
{
/ kommentar
System.out.println(Lycka till!")
/* en till kommentar
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
51
Vad säger Eclipse?
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
52
Är detta fel?
class Meddelande
{ public static void main (String[] args)
{ System.out.println("Lycka till!"); }}
n 
n 
n 
Inget fel...
...men svårt att läsa och tolka
Följ konventionerna som finns på
http://www.oracle.com/technetwork/java/javase/
documentation/codeconvtoc-136057.html
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
53
Standardutmatning - formatering
class Meddelande
{
public static void main (String[] args)
{
System.out.print("Lycka till! \n");
System.out.print("Lycka \t till! \n");
System.out.print("Vi säger: \"Lycka till! \"");
}
}
n 
n 
n 
\n betyder radslut
\t betyder tabb
\ anger att ett reserverat tecken som kommer efter ska
skrivas ut som det är
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
54
Vi testar i Eclipse...
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
55
Variabler
n 
Vad är en variabel?
q 
q 
Ett namn på en lagringsplats för ett värde – vi "bokar upp"
en plats i datorns minne för att lagra värden på
Jfr. "x" i matematiken – kan stå för vilket tal som helst
X
n 
namn
En variabel har alltid en typ – vilken sorts sak kan vi
stoppa i lådan?
q 
q 
Typer är t ex heltal, flyttal och tecken
Vi måste bestämma oss vad vi vill lagra när vi skapar
variabeln
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
56
Variabler – Tilldelning och uppdatering
n 
n 
n 
n 
Deklarera = skapa en variabel av en viss typ
Initiera = ge variabeln ett första (initialt) värde
Tilldelning = lagra ett värde
Uppdatera = en tilldelning där vi byter ut det lagrade värdet
class Variabel
{
public static void main (String[] args)
{
int tal; //här deklareras variabeln
tal = 3; //här initieras variabeln, dvs tilldelas ett värde
tal = 5; //här uppdateras värdet genom tilldelning
tal = tal + 4; //här uppdateras värdet igen
System.out.print("Talet är: " + tal);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
57
Vi skapar några variabler i
Eclipse...
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
58
Variabler – Konstanter
n 
n 
Konstant = värde som inte ändras
Konstanter skrivs oftast med stora bokstäver
class Konstant
{
public static void main (String[] args)
{
final int TIMMAR = 24;
System.out.print("Timmar på ett dygn: "
+ TIMMAR);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
59
Datatyper
Översikt över grundläggande datatyper i Java:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/
datatypes.html
n 
byte
short
int
long
heltal - byte är "kortast" (minst),
long är "längst" (störst)
- vanligast: använd int
q 
float
double
flyttal/decimaltal - float är "kortast" (minst),
double är "längst" (störst)
- vanligast: använd double
q 
boolean
booleska värden, sanningsvärden
- sant/falskt
q 
char
tecken - a, b c, 0, 4, %, #...
q 
q 
q 
q 
q 
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
60
Datatyper - Heltal
n 
byte – positivt eller negativt heltal som bara tar upp en
byte = 8 bitar
q 
n 
short – positivt eller negativt heltal som tar upp två byte =
16 bitar
q 
n 
Ligger mellan -32 768 och 32767
int - positivt eller negativt heltal som tar upp fyra byte
= 32 bitar
q 
n 
Ligger mellan -128 och 127
Ligger mellan – 2 147 483 648 och 2 147 483 647
long - positivt eller negativt heltal som tar upp åtta byte =
64 bitar
q 
Ligger mellan – 9 223 372 036 854 775 808 och
9 223 372 036 854 775 807
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
61
Datatyper – Heltal (forts.)
n 
n 
Försöker du lagra något som är större än vad datatypen
tillåter får du ett kompileringsfel
Tal som ska lagras som long måste avslutas med
bokstaven L
class LongVariabel
{
public static void main (String[] args)
{
long storttal = 8123456789L;
System.out.print("Talet är: " + tal);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
62
Vi testar i Eclipse...
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
63
Datatyper - Flyttal
n 
float – decimaltal som tar upp 4 byte minne
q 
q 
q 
Sparar minne och ger snabbar bearbetning
...men mindre noggrannhet och mindre talområde
Ett tal som ska lagras som en float måste avslutas med F
n 
Exempel: float f1 = 1.23F;
n 
double – decimaltal som tar upp 8 byte minne
n 
Talen lagras i tre delar (med basen 2):
tecken – mantissa – exponent
q 
q 
Exempel: 0.0000001230000001 kan avrundas till +1.23E-7
Observera att talen avrundas till ett visst antal siffror i
matissan, därför kan det uppstå avrundningsfel
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
64
Exempel med flyttal
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
65
Datatyper – booleska värden/
sanningsvärden
n 
För att representera sanningsvärden
q 
q 
sant/falskt, ja/nej...
värdena representeras av orden true och false
class Sanning
{
public static void main (String[] args)
{
boolean kvinna = true;
System.out.print("Eva är en kvinna: " + kvinna);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
66
Datatyper – Tecken
n 
char – datatyp för att lagra enskilda tecken som tar upp 2
byte minne
q 
q 
q 
q 
tecken representeras internt som en siffra – översätts till ett
tecken via en teckentabell
Java använder Unicode-systemet (www.unicode.org - en
lättläst tabell för att slå upp koderna för vanliga alfabet finns
här: http://www.ssec.wisc.edu/~tomw/java/unicode.html)
Exempel: siffran 65 står för bokstaven A, och 97 för a
Finns mängder med specialtecken, t ex ny rad, tabb, retur
osv.
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
67
Unicode
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
68
Datatyper – Tecken (forts.)
class Tecken
{
public static void main (String[] args)
{
char tecken = 'B';
char tecken2 = 66;
System.out.print(tecken + " " + tecken2);
}
}
n 
Tecken skrivs inom ' ' medan textsträngar inom " "
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
69
Vi testar i Eclipse...
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
70
Skilj på tecken och siffra
class TeckenSiffra
{
public static void main (String[] args)
{
char tecken = '9';
int tal = 9;
System.out.print(tecken + " " + tal);
}
}
n 
Tecknet 0 (Unicode 48), heltalet 0, nolltecknet ("null" –
används för att markera en tom variabel – Unicode 0)
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
71
Tecken och siffror, exempel i
Eclipse...
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
72
Operationer - Heltal
n 
De fyra räknesätten: + - * /
Resten vid heltalsdivision: %
Tecken: + -
n 
Prioritet:
n 
n 
q 
q 
q 
n 
n 
unära + */ %
+-
Inom en grupp utförs operationerna i den ordning de står
Använd parenteser för att få en viss bestämd ordning
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
73
Operationer – Heltal (forts.)
class Operationer
{
public static void main (String[] args)
{
int a = 2;
int b = 3;
int c = a + b * a; // c blir 8
int d = a * b / a; // d blir 3
System.out.print("Resultat: " + c + " och " + d);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
74
Vi testar i Eclipse...
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
75
Operationer på tal (forts.)
n 
Flyttal
q 
n 
Motsvarande som för heltal (utom % - nu kan vi lagra
decimaltalet istället, dvs använda / direkt)
Division med 0
q 
q 
Heltal: felmeddelande (undantag kastas)
Flyttal: du får ett speciellt värde tillbaka
n 
n 
+/- Infinity
0.0/0 ger svaret NaN (Not a Number)
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
76
Operationer på en variabel
n 
öka variabel med ett värde (+=):
a = a + 2 är samma som a += 2
q 
n 
n 
multiplicera med ett värde (*=):
a = a * 2 är samma som a *= 2
minska med ett värde (-=):
a = a - 2 är samma som a -= 2
q 
n 
n 
öka med 1: a++
minska med 1: a--
dela med ett värde (/=):
a = a / 2 är samma som a /= 2
resten av division (%=):
a = a % 2 är samma som a %= 2
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
77
Operationer - Exempel 1
class ExempelOperationer
{
public static void main (String[] args)
{
int i = 2;
double d= 2.2;
char c = 'a';
int resultat = i + c;
double resultat2 = d + c;
System.out.print("Resultat: " + resultat
+ " och " + resultat2);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
78
Vi testar i Eclipse...
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
79
Operationer - Exempel 2
class ExempelOperationer2
{
public static void main (String[] args)
{
char b = 'c';
char c = 'a';
String resultat = "hej";
resultat = resultat + " " + c + " " + b;
System.out.print("Resultat: " + resultat);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
80
Ett exempel till i Eclipse...
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
81
Vad händer egentligen vid en tilldelning?
n 
Först beräknas resultatet av det som står till höger om
likamedtecknet...
q 
n 
värdena som används för beräkningen är de som gäller just
då när programmet körs
...sen lagras värdet av det resultatet i variabeln
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
82
Exempel: vi tittar på en programkörning
i
class ExempelOperationer
{
public static void main (String[] args)
{
int i = 2;
double d= 2.2;
char c = 'a';
int resultat = i + c;
double resultat2 = d + c;
System.out.print("Resultat: " + resultat
+ " och " + resultat2);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
83
Exempel: "substitution"
i
class ExempelOperationer
d
{
public static void main (String[] args)
{
int i = 2;
double d= 2.2;
char c = 'a';
int resultat = i + c;
double resultat2 = d + c;
System.out.print("Resultat: " + resultat
+ " och " + resultat2);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
84
Exempel: "substitution"
c
char
i
class ExempelOperationer
d
int
{
double
public static void main (String[] args)
{
int i = 2;
double d= 2.2;
char c = 'a';
int resultat = i + c;
double resultat2 = d + c;
System.out.print("Resultat: " + resultat
+ " och " + resultat2);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
85
Exempel: "substitution"
c
char
i
class ExempelOperationer
d
int
{
double
public static void main (String[] args)
{
int i = 2;
double d= 2.2;
char c = 'a';
int resultat = i + c;
double resultat2 = d + c;
System.out.print("Resultat: " + resultat
+ " och " + resultat2);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
86
Exempel: "substitution"
c
char
i
class ExempelOperationer
d
int
{
double
public static void main (String[] args)
{
int i = 2;
double d= 2.2;
char c = 'a';
int resultat = 2 + 97;
double resultat2 = d + c;
System.out.print("Resultat: " + resultat
+ " och " + resultat2);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
87
Exempel: "substitution"
c
char
i
class ExempelOperationer
d
int
{
double
public static void main (String[] args)
{
resultat
int i = 2;
double d= 2.2;
int
char c = 'a';
int resultat = 99;
double resultat2 = d + c;
System.out.print("Resultat: " + resultat
+ " och " + resultat2);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
88
Exempel: "substitution"
c
char
i
class ExempelOperationer
d
int
{
double
public static void main (String[] args)
{
resultat
int i = 2;
double d= 2.2;
int
char c = 'a';
int resultat = i + c;
double resultat2 = d + c;
System.out.print("Resultat: " + resultat
+ " och " + resultat2);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
89
Exempel: "substitution"
c
char
i
class ExempelOperationer
d
int
{
double
public static void main (String[] args)
{
resultat
int i = 2;
double d= 2.2;
int
char c = 'a';
int resultat = i + c;
double resultat2 = 2.2 + 97;
System.out.print("Resultat: " + resultat
+ " och " + resultat2);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
90
Exempel: "substitution"
c
char
i
class ExempelOperationer
d
int
{
double
public static void main (String[] args)
{
resultat
int i = 2;
double d= 2.2;
int
char c = 'a';
int resultat = i + c;
double resultat2 = 99.2;
System.out.print("Resultat: " + resultat
+ " och " + resultat2);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
91
Exempel: "substitution"
c
char
i
class ExempelOperationer
d
int
{
double
public static void main (String[] args)
{
resultat
int i = 2;
resultat2
double d= 2.2;
int
double
char c = 'a';
int resultat = i + c;
double resultat2 = 99.2;
System.out.print("Resultat: " + resultat
+ " och " + resultat2);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
92
Exempel: "substitution"
c
char
i
class ExempelOperationer
d
int
{
double
public static void main (String[] args)
{
resultat
int i = 2;
resultat2
double d= 2.2;
int
double
char c = 'a';
int resultat = i + c;
double resultat2 = d + c;
System.out.print("Resultat: " + resultat
+ " och " + resultat2);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
93
Exempel: "substitution"
c
char
i
class ExempelOperationer
d
int
{
double
public static void main (String[] args)
{
resultat
int i = 2;
resultat2
double d= 2.2;
int
double
char c = 'a';
int resultat = i + c;
double resultat2 = d + c;
System.out.print("Resultat: " + 99
+ " och " + 99.2);
}
}
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
94
Exempel: "substitution"
c
char
i
class ExempelOperationer
d
int
{
double
public static void main (String[] args)
{
resultat
int i = 2;
resultat2
double d= 2.2;
int
double
char c = 'a';
int resultat = i + c;
double resultat2 = d + c;
System.out.print("Resultat: 99 och 99.2");
}
}
evabl45> Resultat: 99 och 99.2
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
95
Vi stegar oss igenom
programmet i Eclipse!
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
96
Sammanfattning
n 
Varför programmering?
q 
n 
Vad är programmering?
q 
n 
Ett sätt för oss att ge en dator instruktioner för att utföra en
uppgift – i ett språk som datorn kan tolka
Java – ett programmeringsspråk
q 
q 
n 
Viktigt både för den som vill bli programmerare och den som
"bara" vill jobba med miljön där systemen finns och utvecklas
Kompilator + interpretator behövs
Utvecklingsmiljön vi använder är Eclipse
Grunderna i Java
q 
q 
q 
q 
Strukturen för ett program
Klasser och klassbibliotek (Java API)
Utmatning av textsträngar
Grundläggande datatyper och variabler + operationer
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
97
Nästa gång?
n 
n 
n 
n 
n 
Typomvandling
Jämförelser
Villkor och val
Textsträngar – mer avancerade operationer
Mer om Javas klassbibliotek och att läsa Javadoc
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
98
Department of Computer and Information Science (IDA)
Linköpings universitet, Sweden
October 14, 2013
99