1 App A Java programmering
2 Enkelt Java-program
3 Variabler / Konstanter
4 Primitive datatyper DatatypeByteMinMaxWrapper byte1-2 7 = = 127Byte short = = 32767Short int Integer long Long float41.4… x … x Float double84.9… x … x Double char20x00xffffCharacter boolean(false/true)Boolean
5 Aritmetiske operatorer OperatorKommentarEksempel +Addisjon4+ 7 -Subtraksjon5 - 3 *Multiplikasjon3* 4 /Divisjon8 / 2 %Modulus7%4
6 Tilordnings-operatorer UttrykkBetydning x += yx = x+ y x -= yx = x - y x *= yx = x * y x /= yx = x / y
7 Innlesing fra tastatur
8 Selection if - else
9 Selection switch
10 Sammenlignings-operatorer OperatorKommentarEksempel ==Likx == 3 !=Ikke likx != 3 <Mindre ennx < 3 >Større ennx >3 <=Mindre enn eller likx <=3 >=Større enn eller likx >= 3
11 Logiske operatorer OperatorBetydning &&LogiskAND ||LogiskOR ^LogiskXOR !LogiskNOT
12 Bitvise operatorer OperatorBetydning &BitvisAND |Bitvis OR ^Bitvis XOR <<Left shift >>Right shift >>>Zero fill right shift -Bitviscomplement <<=Left shift assignment (x = x << y) >>=Rightshift assignment (x = x >> y) >>>=Zero fill right shift assignment ( x = x >>>y) x&=yAND assignment (x = x & y) x|=yORassignment (x = x | y) x^=yXORassignment (x = x ^ y)
13 Operator prioritet OperatorBetydning. [ ] ( )Dot, array, parentes ! - instanceofIncrement, decrement, not, complement, forekomst av * / %Multiplikasjon, divisjon, modulus + - Addisjon, subtraksjon > >>>Bitvis left shift and right shift =Sammenligningsoperatorer == !=Lik, ulik &AND ^XOR |OR &&LogiskAND ||LogiskOR ? :Forkortet if … then … else = += -= *= /= %= ^=Tilordning &= |= >= >>>=
14 Loop for
15 Loop while
16 Loop do - while
17 Array
18 Function
19 Rekursjon - Eks: Beregning av n-fakultet
20 Lesing fra fil
21 Objektorientering (OO)1/5 Objektorientering er en grunnleggende måte å organisere komplekse fenomener på
22 Objektorientering (OO)2/5 Norske pionerer Grunnleggere av det første objektorienterte dataspråk, Simula: Kristen Nygaard og Ole-Johan Dahl. Nobel Prize of Computing: A. M. Turing Award
23 Objektorientering (OO)3/5 Window eksempel Klassen clsDataField er tillagt egenskapen magenta bakgrunnsfarge.
24 Objektorientering (OO)4/5 KlasseDeklarasjon av data + operasjoner på ‘gjenstander’ av en gitt type ObjektEn forekomst (variabel) av en klasse Klasse Objekt Abstrakt nivå Fysisk nivå
25 Objektorientering (OO)5/5 Data Ansatt Nr Navn Adresse Tlf... Metoder Add_AnsNr Add_Navn Add_Adress Add_Tlf Get_AnsNr BeregnLonn... 3 Nilsen Storgt Hansen Havnegt Olsen Reinv Data gir duplikater for hvert objekt Metodene deles av objektene Klassen Ansatt Objekt 2Objekt 3Objekt 1
26 Objektorientert programmering (OOP) La objektene ta hånd om seg selv (intern struktur,...). Kommuniser med objektene via et grensesnitt som er uavhengig av intern struktur i objektene. Objekt Grensesnitt Melding
27 class / object - main
28 class / object - class A
29 Primitive typer 3 5 x y y = x 3 3 x y if (y == x) falsetrue
30 Referensetyper.. x y y = x.. x y if (y == x) falsetrue if (y.equals(x))
31 Parameteroverføring Overføring av primitive typer. Pass by value. Overføring av referense typer. Pass by reference. int x = 3 f(x) f(int y) 3 3 x y A x f(x) f(A y). x y
32 Klassemedlemmer public class A{// klasse A privateint x;// attributt x public A( ) {// kontruktør this(0) } public A(int v1) {// konstruktør x=v1; } public setX(int v) {// accessor x = v; } public int getX( ) {// mutator return x; }
33 Aksesskontroll1/4 privateTilgang kun av klassen selv protectedTilgang kun av klassen selv samt arvede klasser publicTilgang av alle Tilgang innenfor gjeldende pakke
34 Aksesskontroll2/4 private:Strengeste aksess-kontroll. Kun funksjoner i klassen selv kan aksessere et private klasse-medlem. Avledede klasser eller forekomster har ingen aksess til private medlemmer i en parent-klasse. protected:Kun klassen selv eller avledede klassers funksjoner har aksess til protected medlemmer. Forekomster har ingen aksess til protected medlemmer. public:Medlemmer deklarert vha public har man ubegrenset aksess til, dvs public medlemmer kan aksesseres av en hvilken som helst funksjon.
35 Aksesskontroll3/4 ä Attributter skal skjules for brukeren av klassen. ä Brukeren av klassen skal ikke ha tilgang til informasjon om klassens interne struktur. ä Brukeren skal benytte en protokoll til klassen. - Brukeren sender meldinger til objektet. - Brukeren kaller metodene. Informasjons-skjuling Nr Navn Init GetNr GetNavn
36 Aksesskontroll4/4 Base Class Derived Class Other Class or Object private protected public
37 Arv-Base class / Derived class A B Base class Derived class
38 Arv-Eksempel Person Ansatt Selger Navn Fødselsdato Navn Fødselsdato Avdeling Timelønn Beregning av lønn Navn Fødselsdato Avdeling Timelønn Beregning av lønn Salgsdistrikt Bonus Arvet fra Person Arvet fra Ansatt
39 Arv-Klassehierarki Transportmiddel Sykkel Bil Tog Fly Trehjul- sykkel Trehjul- sykkel Tandem Person- bil Person- bil Laste- bil Laste- bil
40 Arv - Akesess-kontroll 1 Private 2 Protected 3 Public Base class A 2 Protected 3 Public Derived class B Derived class C Forekomst av B
41 Arv - Klassehierarki-diagram Concrete classAbstract class Interface extends Interface extends Interface implements Concrete class extends Concrete class
42 Arv - main
43 Arv - class A (1/2)
44 Arv - class A (2/2)
45 Arv - class B extends A (1/2)
46 Arv - class B extends A (2/2)
47 Arv og polymorfi public class A{ public f (…) { … } public class B extends A { public f (…) { … } A B A a = new A(…) a.f(…) // eksekverer A sin f B b1 = new B(…) A b2 = new B(…) b1.f(…) // eksekverer B sin f b2.f(…)// eksekverer B sin f
48 PolymorfiFigur (getAreal) Figur getAreal..... Trekant getAreal..... Sirkel getAreal..... Figur s = new Sirkel(…) s.getAreal( )
49 PolymorfiFigur (flytt) Figur flytt TrekantSirkel Figur s = new Sirkel(…) s.flytt( ) skjul nyeKoord vis skjul vis skjul vis
50 Interface - Abstrakte klasser main
51 Interface - Abstrakte klasser interface I_A
52 Interface - Abstrakte klasser abstract class A_A (1/2)
53 Interface - Abstrakte klasser abstract class A_A (2/2)
54 Interface - Abstrakte klasser class A
55 Indre klasser (non-static) public class A{ int y; public class B {// B eksisterer kun innenfor A int x; void f( ) { …// this refererer til B …// A.this refererer til A } B kan instantieres kun av en ikke-statisk metode innenfor A. B kan aksessere alle medlemmer av A og B direkte.
56 Indre klasser (static) public class A{ int y; public static class B {// B kan eksistere alene int x; void f( ) { …// this refererer til B …// A.this refererer til A } B kan eksistere alene (uten A-forekomst)og kan instantieres ved A.B b = A.B( ). Deretter kan f eksekveres ved b.f( ). B kan kun aksessere static medlemmer av A.
57 Indre klasser - main
58 Indre klasser - class A (1/3)
59 Indre klasser - class A (2/3)
60 Indre klasser - class A (3/3)
61 ENDEND