6108 Programmering i Java Leksjon 2 Setninger og uttrykk Del 1 Roy M. Istad 2015 Variabel Verdi Datatype Navnsatt lagringsplass. (Tenk: Oppbevaringsboks). Innholdet i en variabel. (Tenk: Klosse). Hvor mye plass skal avsettes til en verdi, og hvordan skal den lagres, avleses og brukes? (Tenk: Utforming, fasong) 6108 Programmering i Java Leksjon 2 side 2 1
Deklarasjon: int x; double y; Deklarasjon og tilordning i Java Tilordning: x = 10; y = 3.14; Oppretter variabel Setter verdi Initiering: "Deklarasjon + Tilordning" F.eks: int x = 10; double y = 3.14; 6108 Programmering i Java Leksjon 2 side 3 Datatyper Hvorfor bruke datatyper? robuste program redusert minnebruk raskere program Les mer på side 40 41 Primitiv datatype int double char boolean (heltall) (desimaltall) (enkelttegn) (logisk verdi) Objektdatatype String (tegnsekvens) 6108 Programmering i Java Leksjon 2 side 4 2
Tilordningssetninger Ny verdi til variabel som har verdi fra før, f.eks.: x = 5; Kopiering: int z = x; Variabelen har ikke noe mer hukommelse (ingen back up), tallet 10 er nå borte fra x! 2 1 3 6108 Programmering i Java Leksjon 2 side 5 Eksempel: Programmets tilstand Ombytting av innholdet i to variabler int x = 5; // x er lik 5 int y = 8; // x er lik 5, y er lik 8 Første forsøk: x = y; // x er lik 8, y er lik 8 y = x; // x er lik 8, y er lik 8!! Utsnitt av hurtigminnet (før ombytting) 5 8 x?? y 5 8 x y 6108 Programmering i Java Leksjon 2 side 6 3
Eksempel: Ombytting av innholdet i to variabler Programmets tilstand Utsnitt av hurtigminnet (før ombytting) int x = 5; // x er lik 5 int y = 8; // x er lik 5, y er lik 8 5 x 8 y Andre forsøk: int h = x; x = y; y = h; // x er lik 5, y er lik 8, h er lik 5 // x er lik 8, y er lik 8, h er lik 5 // x er lik 8, y er lik 5, h er lik 5 5 h 6108 Programmering i Java Leksjon 2 side 7 Tegnsekvenser String //Deklarasjon + tilordning String navn = "Agnete"; // Eksempel på utskrift out.print("hei "); out.println(navn); out.println("**********"); Utskrift til konsollet Hei Agnete ********** Konkatenering Sekvenssammensetning: out.println("hei " + navn); Obs! Én ny tegnssekvens 6108 Programmering i Java Leksjon 2 side 8 4
Utskrift via dialogvindu og String // Hente bibliotekressurs import static javax.swing.joptionpane.*; String navn = "Agnete"; showmessagedialog(null, "Hei " + navn); null: dette vinduet er nytt og uavhengig (null avhengig) av andre vinduer som måtte være åpne. Hei Agnete // Alternativ: import javax.swing.*; : : JOptionPane.showMessageDialog(null, "Hei " + navn); // Tungvint, langt uttrykk å skrive..., glem det nå i starten 6108 Programmering i Java Leksjon 2 side 9 Innlesing via dialogvindu og String String innnavn = showinputdialog("gi et navn:"); Variabelen "innnavn" viser til, eller peker på tegnsekvensen "Ole" O l e En variabel kan gjenbrukes, også en String variabel, i det samme programmet: innnavn = showinputdialog("gi et annet navn:"); NB! Dersom brukeren av programmet nå skriver Anna, så er "Ole" borte: Alternativet er å bruke to variabler, innnavn og innannetnavn, så har vi tilgang til både "Anna" og "Ole" 6108 Programmering i Java Leksjon 2 side 10 5
Syntaks for et lovlig Java navn: Lage egne navn (ord) i Java Hva menes med «bokstav»? a å, A Å Eksempel: Lovlige navn? Ulovlige navn? Lav bindestrek y 2tall ettotall tull fil.java Q&A enbil nr2c Ida-Marie Nei! MAX_VALUE år1 enbil 6108 Programmering i Java Leksjon 2 side 11 Lage egne navn i Java Hva skal navnsettes i et program? Program (class) Metoder (main) Variabler og konstanter (konstanter: "låst" variabler) Klasser (egne datatyper) og objekt (variabler av klasse type) Anbefalinger Bruk meningsfylte navn (både lettere å lese og forstå koden) Variabler og metoder starter med en liten bokstav Flere ord sammensatt til ett ved at påfølgende ord starter med stor bokstav Konstanter skrives med store bokstaver (med lav bindestrek som ordskiller) Klassenavn (program) starter med stor bokstav 6108 Programmering i Java Leksjon 2 side 12 6
Variabeldeklarasjoner: String fornavn; String etternavn; Lage egne navn i Java int antallbarn, antallepler; double mva = 0.25; double nkrbeløp, usdollar; // Alternativt: // String fornavn, etternavn; Klassedeklarasjon (programnavn): public class Kassalapp { // Skal ligge på filen: Kassalapp.java } 6108 Programmering i Java Leksjon 2 side 13 Konstantdeklarasjoner: Lage egne navn i Java Konstant: Låst variabel innsatt verdi kan ikke endres (final) final double MVA = 0.25; // momsen er nå 25% final int MIN_ALDER = 18; // aldersgrense for å kjøre bil final char SKILLETEGN = '#'; Java biblioteket har også konstanter, vi kan bruke verdier via navn, f.eks. Math.PI // Slipper: 3.14159265 Integer.MAX_VALUE // Største heltallsverdi Hvorfor bruke konstanter? gjør koden mer lesbar reduserer mulighetene for feil gjør program lettere å endre og lettere å vedlikeholde. 6108 Programmering i Java Leksjon 2 side 14 7
Uttrykk og verdier int y = x+3; // x er 4, y er 7 int x = 2+2; // x er 4 Anonym konstant: Konkret verdi i koden. Her heltallene 2 og 3 Fig. 2.14, side 53 6108 Programmering i Java Leksjon 2 side 15 Uttrykk og verdier int y = x+3; // x er 4, y er 7 y = y*2; // y er 14 Fig. 2.15, side 54 6108 Programmering i Java Leksjon 2 side 16 8
Utskrift via dialogvindu og String String uttxt = "Svar: " + dobbel; showmessagedialog(null, uttxt); // Krever import! Teksten får et tillegg (skøytet på). Ikke + for addisjon mellom tall! Verdien i variabelen dobbel blir automatisk omgjort (konvertert) til en tegnssekvens (ny String) før den skøytes på ledeteksten "Svar". 6108 Programmering i Java Leksjon 2 side 17 1) Første steg: Innlesing via dialogvindu og String String talltxt = showinputdialog("gi et tall:"); // Krever import! 2) Andre steg: int tall = parseint(talltxt); // Krever import static java.lang.integer.*; 6108 Programmering i Java Leksjon 2 side 18 9