FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder
FEN IntroJava AAU2 Sprogelementer De fleste programmeringssprog indeholder følgende elementer: –Definition af program start og (måske) slut –Variable og konstanter til at gemme værdier og tilstande –Kontrolstrukturer (hvis det er sandt gør dit ellers gør dat) –Løkke (for alle gør...; sålænge det er sandt...) –Metoder eller funktioner. (Udfør disse instruktioner)
FEN IntroJava AAU3 Variable Holder en værdi Har et navn Har en type, typen bestemmer, hvad man kan gøre med variablen En metafor: –Du kan betragte en variabel som en æske, du kan lægge en (eller flere) værdier i. Æsken har en bestemt størrelse og form. Du kan kun lægge værdier ned i æsken, som er mindre end eller lig med størrelsen af æsken. Og det er ikke alle former af æsker, der passer sammen. –Når vi erklærer en variable skal vi fortælle hvilket navn vi giver den. –Vi skal også fortælle hvilken størrelse og ”form” den har. Dette gøres med datatypen. –Endelig skal vi lægge noget i æsken, før vi kan tage det op igen. Dette gøres til værditilskrivning af variablen.
FEN IntroJava AAU4 Et eksempel public static void main() { String sStatement; sStatement = "Make a statement"; int iCount = 0; int x = 0, y = 0; //flere heltal System.out.println("The value for variables are: sStatement=” + sStatement + "; iCount =" + iCount); } Erklæring af variable som en string Tildeling af værdi
FEN IntroJava AAU5 Datatyper Datatyper fortæller hvad æsken indeholder. Nogle af de mest almindelige er: –int, byte, short, long Heltal –Double, floatReelle tal, kommatal –booleanLogisk (sand eller falsk) –charTegn (bogstaver, cifre, specialtegn) –StringStrenge (sekvens af tegn - char) String er egentlig en klasse
FEN IntroJava AAU6 Simple typer Data TypeDefault Value (for fields) byte0 short 0 int0 long0L float0.0f double0.0d char'\u0000’ String (or any object) null boolean false
FEN IntroJava AAU7 String String er en klasse Værdier er objekter String har masser af metoder: StringString –length() –equals() –compareTo() –charAt(int i)
FEN IntroJava AAU8 Aritmetik +, -, *, /, % (modulus) Indretter sig efter operandernes type: –33/2 er 16 –33.0/2 er 16.5 –5%2 er 1 public void main() { int a = 1; int b = 3; double x = 2.0; System.out.println("a+b er lig med " + (a+b)); System.out.println("og ikke " + a + b);//Hvad sker her? System.out.println("a+x er lig med " + (a+x)); }
FEN IntroJava AAU9 Logiske udtryk – betingelser public boolean passed() { if(grade<6) return false; else return true; } public boolean passed() { return grade>=6; }
FEN IntroJava AAU10 Løkker (loops) public void print1To10() { for(int i= 1; i<=10;i++) { System.out.println("Tal: " + i); } System.out.println("...og nu med while: "); int i= 1; while(i<=10) { System.out.println("Tal: " + i); i= i+1;//eller i++ } public void printOnlyEvens() { for(int i= 1; i<=10;i++){ if(i%2==0){ System.out.println("Tal: " + i); } Hvor skal start- tuborgen (’{’) være?
FEN IntroJava AAU11 Kontrolstrukturer Sekvens: –Statement1; Statement2 Selektion: –if (betingelse) Statement1 –if (betingelse) Statement1 else Statement2 Iteration: –for (---) Statement –while (betingelse) Statement –do Statement while (betingelse) Blokstruktur: –Sætninger i ”Tuborg”-paranteser (’{’ og ’}’) er også en sætning: {Statement1; Statement2;}
FEN IntroJava AAU12 Arrays (vector) Et array er en samling af elementer af samme type Elementerne er indekseret (fra 0) Et array er en variabel Hver element kan også betragtes som en variabel private int[] myArray= {11,2,5, 3}; public void main() { System.out.println(”1: " + myArray[1]); myArray[2]= 4; for(int i= 0; i<myArray.length; i++) { System.out.println(myArray[i]); } length-1 a: i
FEN IntroJava AAU13 Procedural abstraktion: Metoder En metode samler en klump kode og definerer en funktionalitet. Metoder kan bruges til kode, der skal kaldes flere gange. Metoden har et navn (abstraktion og indkapsling). Metoder kan betragtes som funktioner på et objekt eller en klasse. Metoder kendes på parenteser public void printArr() { for(int i= 0; i<myArray.length; i++) { System.out.println(myArray[i]); } public void print() { System.out.println("Name: "+name); System.out.println("Address: "+addr); System.out.println("Age: "+age); if(follows!=null) follows.print(); }
FEN IntroJava AAU14 Metoder - parametre public class Methods { private int[] myArray1= {11, 2, 5, 3}; private int[] myArray2= {1, 22, 5, 13, 12, 1}; public void main() { printArr(myArray1); printArr(myArray2); } public void printArr(int[] a) { for(int i= 0; i<a.length; i++) { System.out.println(a[i]); } Formel parameter. Erstattes af aktuel parameter Aktuel parameter. Overføres til formel parameter ved kald af metoden
FEN IntroJava AAU15 Metoder Returværdi: –Kaldet returnerer en værdi, som kan anvendes –Returtype –Return-sætning public void main() { int x= sumArr(myArray1); System.out.println("Summen er: "+x); } public int sumArr(int[] a) { int sum= 0; for(int i= 0; i<a.length; i++) { sum= sum + a[i]; } return sum; }
FEN IntroJava AAU16 Øvelser Alle følgende opgaver tager udgangspunkt i eksemplet med summen af tallene i et array: 1.Lav en metode, som beregner gennemsnittet af tallene i et array. 2.Lav en metode, som tæller antal forekomster af værdien 7 i et array. 3.Lav en metode, som returnerer sand, hvis værdien 3 findes i et array og falsk hvis ikke. 4.Generaliser opgave 2 og 3, så der kikkes efter en vilkårlig værdi (ind-parameter til metoderne) i stedet for 7 og 3 resp.