Kapittel 2 Data og uttrykk 2 1 Strengar

  • Slides: 21
Download presentation
Kapittel 2 Data og uttrykk

Kapittel 2 Data og uttrykk

2. 1 Strengar n Ein tekststreng er eit objekt i Java, definert av String

2. 1 Strengar n Ein tekststreng er eit objekt i Java, definert av String klassen n n Meir om denne klassen i kapittel 3 Vi bruker “ ” når vi definerer ein streng Ein streng kan innehalde alle lovlege tegn, inkludert numeriske siffer og spesialtegn System. out. println(“Hello, world!”); n n Bruk av System. out – objektet sin println() – metode med ein tekststreng som parameter Skriv ut tekstlinje til skjermen, om vi ikkje vil ha linjeskift bruker vi print() – metoden, sjå døme i boka

Strengar n Samanbinding (concatenation) av strengar med + operatoren n n Fungerer dersom ein

Strengar n Samanbinding (concatenation) av strengar med + operatoren n n Fungerer dersom ein eller begge operandane er ein String Nyttig også dersom vi har lange strengar som vi vil dele over fleire kodelinjer Ver obs! ved samanbinding av tal Escape sekvensar med n n Skrive ut “, ‘ og Skrive ut backspace, tab, newline og carriage return

2. 2 Variable og tilordning n Variabel-begrepet er kjent frå VB n n n

2. 2 Variable og tilordning n Variabel-begrepet er kjent frå VB n n n Deklarasjon n Vi spesifiserer type og namn int total; // vi skal ha ein int som heiter total Initialisering n n n Namn på memory-lokasjon reservert for ein bestemt datatype Verdien kan endre seg over tid Vi gir startverdi, gjerne samtidig med deklarasjon int total = 0; // vi skal ha ein int som heiter total med startverdi 0 Tilordning n n Vi gir verdi til variabelen, gammal verdi blir borte total = 759;

Variable og tilordning n Java er eit typesterkt språk n n n Vi kan

Variable og tilordning n Java er eit typesterkt språk n n n Vi kan ikkje tilordne verdiar i strid med den typen vi har gitt variabelen int total; total = 3. 14; // dette går ikkje Om konvertering av data seinare Konstantar n n Bruk av det reserverte ordet final Verdien kan ikkje endrast final int MAX = 100; Bruk konstantar i staden for tal!

2. 3 Primitive datatypar n Heiltal: n n n Desimaltal n n byte, verdiar

2. 3 Primitive datatypar n Heiltal: n n n Desimaltal n n byte, verdiar mindre enn ± 128 short, verdiar mindre enn ± 32 768 int, verdiar mindre enn ± 2 147 483 648 long, verdiar mindre enn ± 9 223 372 036 854 775 808 float, verdiar inntil ± 3. 4 E 38, 7 signifikante siffer double, verdiar inntil ± 1. 7 E 308, 15 signifikante siffer char, 16 bits Unicode tegn boolean, true/false

2. 4 Uttrykk n n n Eit uttrykk (expression) er ein kombinasjon av operatorar

2. 4 Uttrykk n n n Eit uttrykk (expression) er ein kombinasjon av operatorar og operandar brukt til å utføre ei berekning I første omgang ser vi på tal og rekneoperasjonar Aritmetiske operatorar n n n +, -, *, / Ver obs! på heiltalsdivisjon (døme) % eller modulo, delingsrest (døme)

Uttrykk n For å lage meir samansette og kompliserte uttrykk som fungerer slik vi

Uttrykk n For å lage meir samansette og kompliserte uttrykk som fungerer slik vi vil, må vi ha oversikt over operatorpresedens, med andre ord: n n I kva rekkefølgje blir ting utført? Unære operatorar før binære *, / og % før + og – = til slutt

Uttrykk n n n Operatorar på same nivå blir utført frå venstre mot høgre

Uttrykk n n n Operatorar på same nivå blir utført frå venstre mot høgre Bruk parentesar for å tvinge fram presedens, uttrykk inne i ein parentes blir rekna ut først Parentesar er også bra for å gi oversikt

Uttrykk n ++ og -- operatorane n n n count++, postfix form ++count, prefix

Uttrykk n ++ og -- operatorane n n n count++, postfix form ++count, prefix form count = count + 1 Alle utfører det same -- virkar tilsvarande merk forskjellen på postfix og prefix: n n n count = 15; total = count++; total = ++count;

Uttrykk n Tilordningsoperatorar n n n +=, -=, *=, /=, %= Kjekt å ha,

Uttrykk n Tilordningsoperatorar n n n +=, -=, *=, /=, %= Kjekt å ha, men pass på at resultatet blir slik du vil! Om total = 5 og sum = 3, kva blir n n n total total += -= *= /= %= (sum+=5); 20; 2; sum;

2. 5 Konvertering av data n Sjølv om Java er typesterkt kan vi likevel

2. 5 Konvertering av data n Sjølv om Java er typesterkt kan vi likevel konvertere data frå ein type til ein annan når det er nødvendig n n n Widening/narrowing conversions, sjå lister i boka OK/ikkje OK! Konvertering til “større” type medfører vanlegvis ikkje tap av informasjon n n frå int til long er OK Konvertering til “mindre” type bør vi unngå, kan medføre tap av informasjon n frå long til int er som regel ikkje OK

Konvertering av data n Konvertering ved tilordning n n n float money; int dollar

Konvertering av data n Konvertering ved tilordning n n n float money; int dollar = 25; money = dollar; money har no verdien 25. 0 Dette er OK, sidan vi utfører “widening conversion” dollar = money er ikkje OK, “narrowing” n Fører til feilmelding

Konvertering av data n n Konvertering ved promotion Skjer automatisk når ein operator må

Konvertering av data n n Konvertering ved promotion Skjer automatisk når ein operator må endre typen på ein operator for å utføre ein operasjon n n float result, sum=7. 5; int count = 3; result = sum / count; verdien til count blir gjort om frå int til float ved promotion før divisjonen blir utført count er framleis av typen int etterpå

Konvertering av data n n Konvertering ved casting Den mest generelle forma for konvertering

Konvertering av data n n Konvertering ved casting Den mest generelle forma for konvertering i Java Går det ikkje an å caste, så kan vi ikkje konvertere i det heile Typenamn i parentes framfor variabelen som skal konverterast n n n int dollars; float money = 25. 70; dollars = (int) money; Verdien i money blir trunkert til 25, som blir tilordna dollars Konvertering er midlertidig og endrar kun verdien, etterpå er money framleis ein float med verdien 25. 70

2. 6 Interaktive program n n Scanner-klassen tilbyr metodar for lesing av input frå

2. 6 Interaktive program n n Scanner-klassen tilbyr metodar for lesing av input frå ulike kjelder Vi opprettar objekt av Scanner-klassen ved å bruke new-operatoren: n n Scanner scan = new Scanner(System. in); Vi lagar eit objekt av Scanner-klassen, dette objektet heiter scan, og skal lese input frå System. in-objektet, som er konsoll (standard input)

2. 7 Grafikk n Oppdeling av bilder i pixels n n Koordinatsystem for å

2. 7 Grafikk n Oppdeling av bilder i pixels n n Koordinatsystem for å referere til punkt på skjermen n n Det komplette bildet blir lagra ved å lagre fargen til kvar pixel I Java har vi eit koordinatsystem der (0, 0) er i øverste venstre hjørne av skjermen, slik at for alle synlege punkt er både x- og y-verdi positive Fargar blir representert ved hjelp av Colorklassen n RGB-verdi gir innhold av primærfargane

2. 8 Applets n Applets er Java-program som blir eksekvert i ein nettlesar n

2. 8 Applets n Applets er Java-program som blir eksekvert i ein nettlesar n n n Java bytekode (. class-fil) blir linka til eit HTML-dokument og sendt over nettet Programmet blir kjørt ved hjelp av ein Java interpreter i nettlesaren Appletviewer inkludert i Net. Beans kan også brukast til å kjøre Applets

Applets n n Sidan nettlesaren representerer eit program som er i gang, treng vi

Applets n n Sidan nettlesaren representerer eit program som er i gang, treng vi ingen main() metode i ein Applet paint() blir automatisk kjørt av appleten Vi må importere ting vi treng, meir om dette i neste kapittel Vi ser på Einstein-eksemplet n n Bruk av Graphics-klassen HTML-kode for å inkludere applets

2. 9 Tegning av figurar n Meir om Graphics-klassen n Definert i java. awt-pakken,

2. 9 Tegning av figurar n Meir om Graphics-klassen n Definert i java. awt-pakken, tilbyr metoder for å tegne figurar Graphics-objekt sendt med som parameter til paint() metoden i ein applet Gjennomgang av metoder: n draw. Line(), draw. Rect(), draw. Oval(), draw. String(), draw. Arc(), fill. Rect(), fill. Oval(), fill. Arc(), get. Color(), set. Color()

Tegning av figurar n Bakgrunnsfarge: n n n Farge på tekst, figur o l:

Tegning av figurar n Bakgrunnsfarge: n n n Farge på tekst, figur o l: n n n Dette er fargen på overflata til komponenten vi tegnar på, i dette tilfellet appleten set. Background() metoden blir brukt til å sette bakgrunnsfarge Dette er fargen vi tegnar med, i dette tilfellet Graphicsobjektet set. Color() metoden til Graphics-klassen blir brukt Merk spesielt bruken av konstantar i Snowmanappleten