Presentation laddar. Vänta.

Presentation laddar. Vänta.

Fö2 - Intro till Java och intro till OOP 1 Föreläsning 2 - Intro till Java  Sammanfattning av Lektion 1 (kap 2): Vad behövs för att kunna programmera?

Liknande presentationer


En presentation över ämnet: "Fö2 - Intro till Java och intro till OOP 1 Föreläsning 2 - Intro till Java  Sammanfattning av Lektion 1 (kap 2): Vad behövs för att kunna programmera?"— Presentationens avskrift:

1 Fö2 - Intro till Java och intro till OOP 1 Föreläsning 2 - Intro till Java  Sammanfattning av Lektion 1 (kap 2): Vad behövs för att kunna programmera? – DrJava (t ex) – Java (installera först!) Reserverade ord (t ex if, while...) Primitiva variabler ( t ex int, double, char, boolean ) Typomvandling Utskrifter och inläsning (Hur lagras information i datorn) Ev. Intro till Objektorienterad programmering (kap 3)

2 Fö2 - Intro till Java och intro till OOP 2 Vad 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 Fö2 - Intro till Java och intro till OOP 3 Vad är DrJava? DrJava är ett (gratis)program för att programmera i Java –Utvecklat vid Rice University, USA –DrJava är skrivet i Java Program för att programmera i kallas för IDE= Integrated Development Environment Med DrJava kan man –Skapa Javaprogram (definitions pane) –Testa javasatser (interactions pane) –Lista alla öppna filer (files pane)

4 Fö2 - Intro till Java och intro till OOP 4 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 DrJava…

5 Fö2 - Intro till Java och intro till OOP 5 ä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 Java

6 Fö2 - Intro till Java och intro till OOP 6 När java installeras på datorn får ni bl.a följande: Javakompilatorn Javainterpretatorn Många färdiga javaprogram, sk. klasser som hör till språket Java, t.ex. Math, JoptionPane… I kursen kommer ni att använda javaprogram: ● De standardprogram som följer med Java t ex Math, se http://download.oracle.com/javase/7/docs/api/ De specialprogram som följer med boken, t ex Turtle och World De program ni skriver själva Java…

7 Fö2 - Intro till Java och intro till OOP 7 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; Java…

8 Fö2 - Intro till Java och intro till OOP 8 abstract assert boolean break byte case catch char class const continue default do double else enum extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient true try void volatile while Reserverade ord i språket Java Ord i fet stil används i kursen

9 Fö2 - Intro till Java och intro till OOP 9 Variabler Deklareras att vara av en specifik datatyp, tex int, double, char Har ett namn: börjar på _ eller bokstav 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 Fö2 - Intro till Java och intro till OOP 10 Variabler Exempel: Vi deklarerar och initierar variabler som är primitiva datatyper: int tal; (deklarera en variable) int x=67;(deklarera och initiera) double x=2.5; char c= ’A' ; boolean sommar=true; 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 Fö2 - Intro till Java och intro till OOP 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 (default): boolean

12 Fö2 - Intro till Java och intro till OOP 12 Primitiva datatyperna byte, boolean 8 bits short int float long 8 bits double 8 bits char 8 bits

13 Fö2 - Intro till Java och intro till OOP 13 De numeriska datatyper TypMinnesutrymmeMin/Maxvärde byte8 bit-128 … 127 short16-32768 … 32767 int32 -2147483648 … 2147483647 long64+/- 9 x 10 18 float32 +/- 3.4 x 10 38, 7 siffrors nogr. double64+/- 1.7 x 10 308, 15 siffrors nogr.

14 Fö2 - Intro till Java och intro till OOP 14 Numeriska datatyper, några viktiga kom-i-håg Heltalsdivision (decimaler huggs av) int a = 2, b = 3, c = a/b; System.out.println(c); //Vad skrivs ut? System.out.println(7/4); //Vad skrivs ut? Modulusoperatorn % (resten vid division) int x = 7, y = 3, z = x%y; System.out.println(z); //Vad skrivs ut? System.out.println(10%5); //Vad skrivs ut?

15 Fö2 - Intro till Java och intro till OOP 15 Numeriska 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

16 Fö2 - Intro till Java och intro till OOP 16 Typomvandling Heltal  Flyttal per auto, eller med (double) (…) Flyttal  Heltal –(int) (…) ger trunkering –(int) (… + 0.5) ger avrundning av tal>0 –Math.round(...) ger avrundning Char  Heltal: (int) (…) Heltal  Char: (char) (…) Flyttal  String: Double.toString(…) String  Flyttal: Double.parseDouble(…) String  Heltal finns motsvarande…

17 Fö2 - Intro till Java och intro till OOP 17 Tecken En char -variabel lagrar ett enstaka tecken i två byte (speciellt för Java). Skrivs med apostrofer, t ex 'p'. Tecknet kodas först till ett heltal innan det lagras i minnet. T ex tecknet 'T' har den (decimala) koden 84, vilket binärt är 01010100 Koden är unicode, se http://www.unicode.org. Koden för de 256 första tecknen överensstämmer med ASCII- koden ASCII Code - The extended ASCII table http://www.unicode.org ASCII Code - The extended ASCII table Version 6.0: mer än 100.000 tecken från världens alfabet, symboler,... System.out.println(“\u0041”); //A Ethiopic Extended-A

18 Fö2 - Intro till Java och intro till OOP 18 Klasserna String och Math En String-variabel är inte inte en primitiv variabel String s = "Java"; String t = s + "programmering"; Jämför : char tkn = 'a'; En strängvariabel är en sk. Objektvariabel. En sådan variabel refererar till många värden Math-klassen, anropa med klassens namn: double a1=Math.sin(x), a2=Math.sqrt(x); double a3=Math.pow(bas,exp), a4=Math.random();

19 Fö2 - Intro till Java och intro till OOP 19 Varför (1) deklarera och (2) ha många datatyper? 1. ”Säkerhet”: Bara använda variabler som är deklarerade Ex. stavfel: x1=4; x1=xl+8; 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” –Men: flyttal kan inte alltid representeras exakt

20 Fö2 - Intro till Java och intro till OOP 20 Utskrifter i Java I terminalfönstret (I DrJava’s Interaction Pane): double O = bas*2 + höjd*2; System.out.println(“Omkrets: “ + O + ” m”); I ett Popup-fönster: import javax.swing.*; String namn = “Anna”; JOptionPane.showMessageDialog(null,"Jag heter "+namn);

21 Fö2 - Intro till Java och intro till OOP 21 Inläsning i Java I terminalfönstret (I DrJava’s Interaction Pane): import java.util.Scanner; Scanner scan = new Scanner(System.in); int x = scan.nextInt(); double y = scan.nextDouble(); String s1 = scan.nextLine(); // hel rad String s2 = scan.next(); // ett ord I ett Popup-fönster: import javax.swing.*; String s; s = JOptionPane.showInputDialog("x?"); x = Integer.parseInt(s); Kommande bilder 22-33 tar vi inte upp på föreläsningen. Till för egna studier. Vi hoppar till bild 34!

22 Fö2 - Intro till Java och intro till OOP 22 Hur lagras data i datorn? I datorn används koder för att representera all information Koderna består av 1:or och 0:or Någonting är på (1) eller av (0) Binära tal används (binära talsystemet)

23 Fö2 - Intro till Java och intro till OOP 23 Vad är ett talsystem? Ett talsystem har en bas och siffror (symboler) Ex.decimala systemet har basen 10 och symbolerna 0-9: 103 10 = 1*10 2 +0*10 1 +3*10 0 = 1*100 + 0*10 + 3*1

24 Fö2 - Intro till Java och intro till OOP 24 Binära talsystemet Basen 2 och symbolerna 0, 1. 1101 2 = 1*2³+1*2 2 +0*2 1 +1*2 0 = 8+4+0+1= 13 10 Översätt från decimalt till binärt: 27 10 = 16 + 8 + 2 + 1 = 2 4 + 2 3 + 2 1 + 2 0 = 11011 2

25 Fö2 - Intro till Java och intro till OOP 25 Binä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 = 0*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 1*2 2 + 1*2 1 + 1*2 0 = 15 10

26 Fö2 - Intro till Java och intro till OOP 26 Binära talsystemet… Bit : 0 eller 1 Byte: 8 bitar Kilobyte (KB): 10 3 byte Megabyte (MB): 10 6 byte Gigabyte (GB): 10 9 byte Terabyte (TB): 10 12 byte

27 Fö2 - Intro till Java och intro till OOP 27 Hexadecimala talsystemet Basen 16 och symbolerna 0-9,A,B,C,D,E,F A=10, B=11, C=12, D=13, E=14, F=15 Ex: 2F 16 = 2*16 1 + F*16 0 = 2*16 1 + 15*16 0 = 32 + 15 = 47 10 Omvandling hexadecimalt  binärt och tvärtom är relativt enkelt (4 binära siffor=en hexadecimal siffra): 11110101 2 = 1111 0101 = 15*16 1 + 5*16 0 = F5 16

28 Fö2 - Intro till Java och intro till OOP 28 Att lagra tal Tal kan lagras som heltal flyttal

29 Fö2 - Intro till Java och intro till OOP 29 Heltal Lagras ofta i 4 byte, dvs 32 bit. En bit används för +/- Vänstra biten=0  positivt tal 31 bitar Vänstra biten=1  negativt tal 31 bitar Värdemängden i 4 byte: [-2 32 -1, 2 32-1 -1], d.v.s. [-2147483648, 2147483647 ] Exempel: 67 10 = 1000011 2 och lagras i 4 byte som 00000000 00000000 00000000 01000011 Teckenbiten: 0  positivt tal

30 Fö2 - Intro till Java och intro till OOP 30 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 Text (String)

31 Fö2 - Intro till Java och intro till OOP 31 Flyttal Decimaltal 10-potenser Ett flyttal = 0.mantissa * 2 exponent 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

32 Fö2 - Intro till Java och intro till OOP 32 Flyttal… Ex: 2,5 10 = 2*(10) 0 + 5*(10 )-1 = 0.25*(10) 1 Men tal lagras binärt, gör om till binärt: 2,5 10 = 1*(2) 1 + 0*(2) 0 + 1*(2) -1 = 10.1 2 (obs binärpkt). 10.1 2 = 0.101*2 2 Mantissan är 101 Exponenten är 2 = 10 binärt. Om talet lagras i 4 byte: Mantissa (3 byte) = 101 Exponent (1 byte) = 10

33 Fö2 - Intro till Java och intro till OOP 33 Flyttal… 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,6 10 = 1*(2) 1 + 0*(2) 0 + 1*(2) -1 + … =1*2+0*1+1*0.5+0*0.25+0*0.125+1*0.0625+

34 Fö2 - Intro till Java och intro till OOP 34 Att hitta klasser, egenskaper (instans- variabler) och metoder. Ett exempel. Det kommer bilar till en vägkorsning. Vid korsningen finns trafikljus som kan visa olika färg och kan ha svängpil. Trafikljuset kan slå om, det kan gå sönder. Bilarna har hastighet, riktning och position. Bilarna kan bromsa, gasa eller få motorstopp.. OOP

35 Fö2 - Intro till Java och intro till OOP 35 Att hitta klasser, egenskaper (instans- variabler) och metoder. Ett exempel. Det kommer bilar till en vägkorsning. Vid korsningen finns trafikljus som kan visa olika färg och kan ha svängpil. Trafikljuset kan slå om, det kan gå sönder. Bilarna har hastighet, riktning och position. Bilarna kan bromsa, gasa eller få motorstopp. OOP

36 Fö2 - Intro till Java och intro till OOP 36 Övning OOP Hur många objekt finns i bild 1, och hur många olika typer av objekt, dvs hur många klasser, finns representerade i bild 1? Ange lämpligt namn på respektive klass. Vilka egenskaper kan klasserna 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 1Bild 2Bild 3

37 Fö2 - Intro till Java och intro till OOP 37 Intro till ObjektOrienterad Programmering (OOP) Klass vs objekt En klass beskriver objektens egenskaper och metoder, mha ett språk, t ex Java, och sparat i en textfil, t ex Circle.java Klassen är en mall. Många objekt kan skapas från mallen. Ett objekt har egenskaper (inre tillstånd/eget minne) Ex Cirkel c har position och färg Kan kommunicera med (skicka meddelanden till) objekten via metoder för ändra objekten eller få veta deras egenskaper. Ex move(int step), changeColor(Color co) När ett program körs är objekten aktiva genom sina metoder. Ex c.move(50); //cirkel c rör sig


Ladda ner ppt "Fö2 - Intro till Java och intro till OOP 1 Föreläsning 2 - Intro till Java  Sammanfattning av Lektion 1 (kap 2): Vad behövs för att kunna programmera?"

Liknande presentationer


Google-annonser