Title: F
1Föreläsning 2 - Intro till Java
- Sammanfattning av Lektion 1 (kap 2)
- Vad behövs för att kunna programmera?
- DrJava
- Java
- Reserverade ord
- Primitiva variabler
- Typomvandling
- Utskrifter och inläsning
- Hur lagras information i datorn
- Ev. Intro till Objektorienterad programmering
(kap 3)
2Vad behövs för att kunna programmera?
- Java program som översätter (för människan
begripliga) instruktioner till datorspråk
(javabyte kod/maskinkod) Kompilator ... - Andra exempel C, Python, etc
- DrJava en editor ...(ordbehandlare) anpassad
för programmering. Andra exempel
BlueJ, Eclipse, etc (IDE)
3(No Transcript)
4DrJava
- Med kursboken följer en CD med många program (sk.
javaklasser) för hantering av grafik, bilder,
ljud, etc. - DrJava använder i sin tur andra program som finns
på datorn för att lösa sin uppgift - Javakompilatorn
- Javainterpretatorn
-
5Java
- är ett programmeringsspråk
- högnivåspråk
- objektorienterat språk
- innehåller många hjälpprogram (klasser)
- Internet/Webben
- Grafik
- Användargränssnitt
- Standardprogram, t ex Math mm.
- är fritt
- kan användas på alla typer datorer
6Java
- När java installeras på datorn får ni bl.a
följande - Javakompilatorn
- Javainterpretatorn
- En massa färdiga javaprogram, sk. klasser som
hör till språket Java, t.ex. Math, JoptionPane - I kursen kommer ni att använda
- De standardprogram som följer med Java t ex Math
- De specialprogram som följer med boken, t ex
Turtle och World - De program ni skriver själva
7Java
- Språket har strikta regler för hur det skall
skrivas, dvs språkets grammatik, det kallas
språkets syntax. - Språket byggs upp av identifierare och
reserverade ord som sätts ihop till satser.
- Identifierare är det som programmeraren själv
hittar på namn för, t.ex. variabelnamn, - Reserverade ord är de ord som finns inbyggda i
språket. - En sats är en instruktion. En sådan avslutas
normalt med ett semikolon Ex double
xKoordinat 18.4
8(No Transcript)
9Variabler
- Deklareras att vara av en specifik datatyp, tex
int, double, char - En primitiv variabel kan innehålla ett värde,
t.ex. ett heltal - Vid deklarationen reserveras ett minnes-utrymme
för variabelns värde. Variabelns namn är ett
alias för adressen till minnesutrymmet.
10- Exempel Vi deklarerar och initierar variabler
som är primitiva datatyper int tal (deklarera
en variable) int x67(deklarera och
initiera)double x2.5char cA'boolean
vintertrue
Vi går igenom på tavlan hur dessa variabler
lagras i datorns minne.Detaljer finns under
sidorna 22-34 i denna presentation som börjar med
rubriken Hur lagras data i datorn?
11Åtta primitiva datatyper
- Fyra heltalstyper (numeriska)
- byte, short, int, long
- Två flyttalstyper (numeriska)
- float, double
- En teckentyp
- char
- En boolskt typ (sant eller falskt)
- boolean
Finns signed och unsigned heltalstyper, dvs tal
med /- eller bara .
12(No Transcript)
13De numeriska datatyper
Typ Minnesutrymme Min/Maxvärde
byte 8 bit -128 127
short 16 -32768 32767
int 32 -2147483648 2147483647
long 64 /- 9 x 1018
float 32 /- 3.4 x 1038, 7 siffrors nogr.
double 64 /- 1.7 x 10308, 15 siffrors nogr.
14Numeriska datatyper, några viktiga kom-i-håg
- Heltalsdivision
- int a 2, b 3, c a/b
- System.out.println(c) //Vad skrivs ut?
System.out.println(7/4) //Vad
skrivs ut? - Modulusoperatorn
- int x 7, y 3, z xy
- System.out.println(z) //Vad skrivs ut?
System.out.println(105) //Vad skrivs
ut?
15Numeriska datatyper, några viktiga kom-i-håg
- och - - operatorerna
- x
- System.out.println(x) //Vad skrivs ut?
- Ändra en variabels värde OBS! Tilldelning
- int tal 3
- tal tal 2 //Det nya värdet det gamla
2 - tal 2 //samma som ovan
- tal tal 5
- tal 5 //samma som ovan
16Typomvandling
- Heltal ? Flyttal per auto, eller med (double)
() - Flyttal ? Heltal
- (int) () ger trunkering
- (int) ( 0.5) ger avrundning av talgt0
- Math.round(...) ger avrundning
- Char ? Heltal (int) ()
- Heltal ? Char (char) ()
- Flyttal ? String Double.toString()
- String ? Flyttal Double.parseDouble()
- String ?? Heltal finns motsvarande
17Tecken
- En char-variabel lagrar ett enstaka tecken i två
byte (speciellt för Java). - Tecknet kodas först till ett heltal innan det
lagras i minnet. - Koden är unicode, se http//www.unicode.org.
Koden för de vanligaste tecknen finns på ASCII
Code - The extended ASCII table - Två byte innebär ett minnesutrymme som kan ha
värden 0-65536, men... (encodings) - Version 6.0 mer än 100.000 tecken från världens
alfabet, symboler,...
System.out.println(\u0041) //A
Ethiopic Extended-A
18String
- Är inte inte en primitiv variabel
- String s "Programmering"
- String t
- Jämför char tkn 'a'
- En strängvariabel är en sk. objektvariabel.
- En sådan variabel refererar till många värden
19Varför (1) deklarera och (2) ha många datatyper?
- Säkerhet Bara använda variabler som är
deklarerade - Ex. stavfel x14 x1xl8
- 2. Värden man vill räkna med är av olika sorter
- Bra då att ha variabler som matchar dessa.
- Minnesutrymmet anpassas till värdena.
- Beräkningarna anpassas till datatypen.
- Snabbare beräkningar.
- Ordning och reda
20Utskrifter i Java
- I terminalfönstret (I DrJavas Interaction
Pane)double O bas2 höjd2System.out.print
ln(Omkresten O m.) - I ett Popup-fönster
import javax.swing.
String namn Anna - JOptionPane.showMessageDialog(null,"Jag heter
"namn)
21Inläsning i Java
- I terminalfönstret (I DrJavas Interaction
Pane)import java.util.ScannerScanner scan
new Scanner(System.in)int x
scan.nextInt()double y scan.nextDouble()Stri
ng s1 scan.nextLine() // hel radString s2
scan.next() // ett ord - I ett Popup-fönster import javax.swing.String
ss JOptionPane.showInputDialog("x?") x
Integer.parseInt(s)
Kommande bilder 22-34 tar vi inte upp på
föreläsningen. Till för egna studier. Vi hoppar
till bild 34!
22Hur lagras data i datorn?
- I datorn används koder för att representera
all information - Koderna består av 1or och 0or
- Någonting är på (1) eller av (0)
- Binära tal används (binära talsystemet)
23- Vad är ett talsystem?
- Ett talsystem har en bas och siffror (symboler)
- Ex.decimala systemet har basen 10 och symbolerna
0-9 - 10310 110201013100 1100 010 31
24Binära talsystemet
- Basen 2 och symbolerna 0, 1.
- 11012 12³122021120 8401 1310
- Översätt från decimalt till binärt
- 2710 16 8 2 1 24 23 21 20 110112
25Binära talsystemet
- En byte 8 bit, 0-255, dvs 256 st värden
- 00000000 0
- 00000001 1
- 00000010 2
- 11111111 255
- Ex. en byte
- 00001111 027 026 025 024 123
122 121 120 1510
26- Binära talsystemet
- Bit 0 eller 1
- Byte 8 bitar
- Kilobyte (KB) 103 byte
- Megabyte (MB) 106 byte
- Gigabyte (GB) 109 byte
- Terabyte (TB) 1012 byte
27Hexadecimala talsystemet
- Basen 16 och symbolerna 0-9,A,B,C,D,E,F
- A10, B11, C12, D13, E14, F15
- Ex
- 2F16 2161 F160 2161 15160
- 32 15 4710
- Omvandling hexadecimalt ? binärt och tvärtom är
relativt enkelt (4 binära sifforen hexadecimal
siffra)111101012 1111 0101 15161 5160
F516
28Att lagra tal
- Tal kan lagras som
- heltal
- flyttal
29Heltal
- Lagras ofta i 4 byte, dvs 32 bit.
- En bit används för /- Vänstra biten0 ?
positivt tal 31 bitar Vänstra biten1 ?
negativt tal 31 bitar - Värdemängden i 4 byte -232-1, 232-1-1, d.v.s.
- -2147483648, 2147483647
- Exempel6710 10000112 och lagras i 4 byte som
- 00000000 00000000 00000000 01000011
Teckenbiten 0?positivt tal
30Tecken
- Lagras ofta i en byte (i java dock som 2
byte)Tecken kodas till heltal (ASCII-koden) som
sedan lagras binärt. - Vi studerar www.asciitabell.se
- (koderna visas som decimala, octala,
hexadecimala, binära). T.ex. tecknet T har den
(decimala) koden 84, vilket binärt är 01010100 - Övning
- Öppna Notepad och knappa in några tecken. Spara
filen. Markera med högermusknapp på filens ikon
och välj Properties så får du veta hur stor filen
är uttryckt i antal bytes (size resp. size on
disk) - Testa samma sak i Word. Den filen blir mycket
större eftersom Word även lagrar info om hur
dokumentet är formaterat (fonter, fontstil,
fontstorlek, färg, etc)
31Text (String)
- Text är en sekvens av tecken
- Exempel, texten
- Torsten
- Består av 7 tecken som kodas enligt ascii-koden
(decimalt som) - T o r s t e n
- 84 111 114 115 116 101 110
- Vilket kan lagras binärt i 7 byte, eller som i
java 7x2 byte
32Flyttal
- Decimaltal
- 10-potenser
- Ett flyttal 0.mantissa 2exponent
- Lagras som två delar Mantissa (siffrorna) och
exponent - Om 4 byte flyttal
- 3 byte mantissa och 1 byte exponent
- Om 8 byte flyttal
- 6 byte mantissa och 2 byte exponent
33Flyttal
- Ex 2,510 2(10)0 5(10)-1 0.25(10)1
- Men tal lagras binärt, gör om till binärt
- 2,510 1(2)1 0(2)0 1(2)-1
- 10.12 (obs binärpkt).
- 10.12 0.10122
- Mantissan är 101
- Exponenten är 2 10 binärt.
- Om talet lagras i 4 byte
- Mantissa (3 byte) 101
- Exponent (1 byte) 10
34Flyttal
- Problem med flyttal
- Begränsad mängd siffror
- 4 byte 7 siffrors nogrannhet
- 8 byte 15 siffrors nogrannhet
- Kan vanligen ej lagras exakt
- Ex.flyttalet 2,6
- 2,610 1(2)1 0(2)0 1(2)-1
- 120110.500.2500.12510.0625
35Intro till ObjektOrienterad Programmering (OOP)
- Ett exempel (SwedeFlower)
- Demo av greenfoot
- Klass vs objekt
- En klass beskriver egenskaper och metoder
- Ett objekt har egenskaper (inre tillstånd/eget
minne) - Kan kommunicera med (skicka meddelanden till)
objekten via metoder för ändra objekten eller få
veta deras egenskaper
36OOP
Att hitta klasser, egenskaper och metoder. Det
kommer bilar till en vägkorsning. Vid korsningen
finns trafikljus som kan visa olika färg.
Bilarna kan bromsa och gasa. Bilarna har
hastighet och position.
37Övning OOP
- Hur många objekt finns i bild 1?
- Hur många olika typer av objekt, dvs hur många
klasser, finns representerade i bild 1? - Ange lämpligt namn på resp. klass och vilka
egenskaper som klassen kan beskrivas med
(bild1). - Ange vilka metoder som kan vara lämpliga i
respektive klass för att kunna rita bilderna 2
och 3, utgående från bild 1. Föreslå namn på
metoderna.
Bild 1
Bild 2
Bild 3