Föreläsning 2 sept 05 (Onsdag v 36).

DD Chapter 2.

Hur vi jobbar med ett program.


Semantiken för programmet
Welcome1

System.out.println("Welcome to Java programming!");

main-metoden anropar (calls, invokes ) System.out-objektets println-metod.

System.out-objektet kommer att finnas automatiskt om man nämner det i Java.programmet.

Semantiken för programmet Welcome4

Joptionpane.showMessageDialog(null,

"Welcome\n to\n Java\n programming!");

main-metoden anropar (calls, invokes ) den statiska metoden showMessageDialog i klassen Joptionpane med två argument ( pane betyder ruta, det som är inne i ett fönster).

Semantiken för programmet Addition

Efter nedanstående rad ( rad 17 och 18 i DD fig 2.8) :

firstNumber = JOptionPane.showInputDialog( "Enter first integer" );

Minnet efter nedanstående rad ( rad 20 och 21 i DD fig 2.8) :

secondNumber =

JOptionPane.showInputDialog( "Enter second integer" );

Minnet efter nedanstående rad ( rad 24i DD fig 2.8) :

number1 = Integer.parseInt( firstNumber );

Minnet efter nedanstående rad ( rad 25 i DD fig 2.8) :

number2 = Integer.parseInt( secondNumber );

Minnet efter nedanstående rad ( rad 28 i DD fig 2.8) :

sum = number1 + number2;

Några olika sorters primitiva typer.

Hittils har vi bara definierat variabler (lokala för metoden main ) med heltalsvärden, t ex

int k = 5; // k "plats" i minnet för heltal första innnehåll talet 5

Detta sätt att både deklarera en variabel och ge den ett första värde används inte i DD redan i kap 2, utan introduceras senare. Det finns flera primitiva datatyper än int i Java.

Man kan med dessa datatyper deklarera variabler som skall innehålla andra sorters värden,

t ex:

double x = 5.5; // x plats för flyttal första innnehåll talet 5.5

double y = 5.5E2; // x plats för flyttal första innnehåll talet 550.0

double z = x+y; // z plats för flyttal första innnehåll 5505.5

Uttryck kan bildas på likande sätt som i matematiken. T ex har olika operatorer har olika prioritet eller presedens, som kan upphävas med paranteser

z = 3.0*x+7.1; // z liten del av minnet fylls med fylls med 23.6

z = 3.0*(x+7.1); // z liten del av minnet fylls medfylls med 37.8

Att man kan "räkna med" sanningsvärden (boolean ) och tecken (char) käns ovant i början

men är inte konstigt när man vant sig, fast man gör lätt fel med && och || :

boolean b = k+k > 7 || k <3 // b plats fylls med true

&& och || är "lata", dvs den högra operanden beräknas ej om det inte

behövs. ( I uttryck som 3+5 eller b && c kallas + och && för operatorer, 3 och b för vänsteroperander och 5 och c för högeroperander). Man kan också förvandla värden mellan olika typer, kallas "cast".

int k = (int) 5.4; // k platsför heltal första innnehåll talet 5

Övning2: int i = 5; int j = 2;double x = 4.5;double y = 1.0E2;

char l = 'a'; char d ='2'; boolean b= true; boolean bb, cc;

Vad blir i+j i/j i% j i+x x/y i>5 (l < 'a') && b

(l < 'a') || b 3 < i < 7 ?

Betyder !(bb && cc) samma sak som (!bb || !cc) ?

Mer detaljer och övningar i böckerna.

Översikt av de viktigaste primitiva datatyperna och de viktigaste operatorerna med

vars hjälp vi kan bilda uttryck :

Det finns fler primitiva datatyper än int för heltal, det som skiljer är hur många bitar

som krävs för platsen i minnet och därmed vilka tal som "får plats".

Det finns förutom double ytterligare en primitiva datatyp float för flyttaltal ("decimaltal"), det som skiljer är att bara 32 bit tilldelas sådan variabler i minnet i stället för 64 bitar och att antalet signifikanta siffror och största och minsta exponent är därför är mindre.

Typen String är ej en primitiv typ Att två strängar a, b är lika skrivs så här: a.equals(b) .

Sammanfattning.

I mallarna nedan skall det som är skrivit med

- typsnittet Courier skrivas av. ( reseverade ord och teckn i Javas syntax)

- typsnittet Courier ersattas med det du själv hiitar på.

- typsnittet Palantino är förklaringar som förstås inte skall skrivas av.