De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de.

Verwante presentaties


Presentatie over: "Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de."— Transcript van de presentatie:

1 Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de methode OnCreate( ) Methode uit klasse Activity

2 Maak je eigen View protected override void OnCreate(Bundle b) { base.OnCreate(b); TextView t; t = new TextView(this); this.SetContentView(t); AnalogClock a; a = new AnalogClock(this); this.SetContentView(a); MondiaanView m; m = new MondriaanView(this); this.SetContentView(m); } bestaat nog niet…

3 Maak je eigen View public class MondriaanView : View { protected override void OnDraw(Canvas cv) { public MondriaanView(Context ct) { } } } cv. DrawLine(…); cv. DrawRect(…); cv. DrawCircle(….); this.SetBackgroundColor(Color.White); base.View(ct); : base(ct) base.OnDraw(cv);

4 Hallo (x,y) DrawText (x1,y1) (x2,y2) DrawLine x y (0,0) DrawOval DrawRect links boven rechts onder DrawBitmap (x,y) DrawCircle (x,y) r

5 Tekenen cv.DrawRect( 10, 0, 20, 100, verf ); cv.DrawRect( 50, 0, 60, 100, verf ); cv.DrawRect( 90, 0, 100, 100, verf ); Paint verf; verf = new Paint(); verf.Color=Color.Black; cv.DrawRect( 0, 40, 200, 50, verf ); cv.DrawRect( 0, 70, 200, 80, verf ); verf.Color = Color.Blue; cv.DrawRect( 0, 50, 10, 70, verf ); verf.Color = Color.Red; cv.DrawRect(100, 0, 200, 40, verf ); compositie met blauw en rood (vrij naar Piet Mondriaan)

6 Variabelen Paint verf; verf = new Paint(); verf.Color=Color.Black; verf.Color = Color.Blue; cv.DrawRect( 0, y1+balk, x1, y2, verf ); cv.DrawRect( x1, 0, x1+balk, hoog, verf ); cv.DrawRect( x2, 0, x2+balk, hoog, verf ); cv.DrawRect( x3, 0, x3+balk, hoog, verf ); cv.DrawRect( 0, y1, breed, y1+balk, verf ); cv.DrawRect( 0, y2, breed, y2+balk, verf ); verf.Color = Color.Red; cv.DrawRect(x3+balk, 0, breed, y1, verf ); int balk, breed, hoog balk = 10; breed = 200; hoog = 100; int x1, x2, x3, y1, y2; x1=10; x2=50; x3=90; y1=40; y2=70; x1x2x3 y1 y2

7 Makkelijk aanpasbaar?

8 Syntax van declaratie type klasse naam int string declaratie naamtype, =expressieconst ; var

9 Syntax van expressies expressie getal expressie operator expressie() variabele ”” symbool

10 Gebruik van expressies in opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

11 Gebruik van expressies in opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

12 Gebruik van expressies in opdrachten en expressies opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += expressie constante expressie operator expressie() variabele

13 Hoofdstuk 4.6 Maak je eigen methode- definities

14 Voorbeeld: Huizen

15 Nieuwe methoden nMethode: groepje opdrachten met een naam Aanroep van een methode voert opdrachten uit in de body daarvan private void tekenHuis(…) { …. DrawRect (…); …. DrawLine (…); …. DrawLine (…); } protected override void OnDraw(Canvas c) { …. tekenHuis (…); …. tekenHuis (…); …. tekenHuis (…); }

16 Parameters …. DrawRect (…); …. DrawLine (…); …. DrawLine (…); } protected override void OnDraw(Canvas c) { …. tekenHuis (…); …. tekenHuis (…); …. tekenHuis (…); } private void tekenHuis (…) { cccccc (Canvas c, … ) parameter declareren (c, …); en bij aanroep meegeven

17 Het object this c. DrawRect (…);c. DrawLine (…); } …. tekenHuis (c, …); …. tekenHuis (c, …); …. tekenHuis (c, …); } private void tekenHuis (Canvas c, …) { this this this this: het object dat OnDraw ook al onder handen heeft class HuizenView : View { } protected override void OnDraw(Canvas c) {

18 Meer parameters this. tekenHuis (c, …); this. tekenHuis (c, …); this. tekenHuis (c, …); } protected override void OnDraw(Canvas c) { teken driemaal een net iets ander huis 20, 100, 40); 70, 100, 40); 120, 100, 60); nog meer parameters!

19 Meer parameters c.DrawRect ( …, verf); c.DrawLine ( …, verf); c.DrawLine ( …, verf); } x, y-br, x+br, y int tx = x+br/2; int ty = y–br–br/2; x, y-br, tx, ty tx, ty, x+br, y-br private void tekenHuis (Canvas c, … ) { Paint verf = new Paint(); int x, int y, int br) this. tekenHuis (c, …); this. tekenHuis (c, …); this. tekenHuis (c, …); } protected override void OnDraw(Canvas c) { (x,y)br (tx,ty) 20, 100, 40); 70, 100, 40); 120, 100, 60);

20 Flexibiliteit nHoe meer parameters, des te flexibeler de methode (x,y) br h dakh private void tekenHuis (Graphics gr, int x, int y, int br, int h, int dakh, Color kl, Color dakKl, … ) { en des te lastiger aan te roepen...

21 Flexibiliteit Veel parameters: nNu lastig om te programmeren nIn de toekomst gemakkelijk uit te breiden Weinig parameters: n Nu gemakkelijk om te programmeren n In de toekomst lastig te onderhouden

22 Communicatie met methoden nParameters : aanroeper geeft waarde door aan de methode nMethode-resultaat : methode geeft waarde terug aan de aanroeper net zoals een wiskundige functie

23 Methoden met een resultaat private double kwadraat (double x) { return x*x ; } type van het resultaat waarde van het resultaat in speciale return-opdracht

24 Publieksvraag nSchrijf een methode driewerf met een String-parameter, die 3 herhalingen ervan oplevert this.driewerf("Hoera!")"Hoera!Hoera!Hoera!" private string driewerf (string x) { } return x+x+x;

25 nAanroep van void-methode geldt als opdracht Aanroep van methoden c.DrawLine(10,10, 20,20, verf) ; a = this.kwadraat (5) ; c.DrawLine(this.kwadraat (5), 10, 25, 50, verf); zonder resultaat nAanroep van methode met resultaat geldt als expressie … this.kwadraat (5) + 1 …

26 Return is laatste opdracht Parameters krijgen hun waarde bij de aanroep private double gemiddelde (double a, double b, double c) { } double totaal; totaal = a + b + c ; return totaal / 3; Lokale variabele krijgen hun waarde in een toekenning

27 Methodes die elkaar aanroepen private double kwadraat (double x) { return x*x ; } private double oppervlak (double r) { return Math.PI * this.kwadraat(r); } public void bereken (...) { scherm.Text = this.oppervlak(25).ToString(); } class CirkelCalc : Activity { }

28 Hoofdstuk 5 Objecten en methoden

29 Variabelen nVariabele: geheugenplaats met een naam int x, y; nDeclaratie: aangifte van het type van de variabele nToekenningsopdracht: variabele krijgt waarde x = 20; x y 20

30 Toekenningsopdrachten y = x + 5 ; nExpressie aan de rechterkant mag andere variabelen gebruiken nVorige waarde gaat verloren x = y * 2 ; x y 20 int x, y; x = 20 ; y = y + 1 ; 25 50 26

31 Declaratie en toekenningen nEén keer declarareren nMogelijk meerdere toekenningen int x; x = 100; x = 250; x = x + 1; x = 2 * x; int x = 100; x = 100; Declaratie en eerste toekenning

32 x Type van variabelen x = 10 ; d = 3.141592653 ; nint geheel getal ndouble benadering van reëel getal d = 10 ; d int x; double d; 3.141592653 x = x / 3 ; d = d / 3 ; 10.03.3333333333 103

33 Const declaratie double pi= 3.1415926535897938; void PrintOppervlak ( double r ) { scherm.Text = Pi * r * r ; } const double Pi= 3.1415926535897938; Pi = 4.0; Latere toekenningen verboden

34 Standaardtypes sbyte short int long float double decimal byte ushort uint ulong ± 2 miljard ± 10 18 ± 32767 ± 127 0..10 19 0..65535 0..255 0..4 miljard 7 cijfers, afgerond, ≤10 38 15 cijfers, afgerond, ≤10 300 28 cijfers, exact, ≤10 28 ngehele getallen nmet een decimale punt 1 byte 2 bytes 4 bytes 8 bytes 4 bytes 8 bytes 16 bytes 2 8 -1 2 16 -1 2 32 -1 2 64 -1

35 Constanten ngeheel getal (kleinst passende) nmet een decimale punt nstring 0137–25 0.5–273.156.02E231E3 "Hallo!""A""A""""een \"citaat\"""\n""\\" 0x1A0xFF 3E–11 60200000000000000000000010000.00000000003 26255 hexadecimaal

36 Syntax van getal cijferhex-cijfer 0x cijfer. E + – F D L getal M

37 Syntax van constant constante getal symbool’’ ”” false true null $””symbool expressie{}, :symbool

38 Syntax van symbol symbool n t ” \ u r b ’ hex-cijfer \ cijfer letter leesteken

39 Typering van operatoren nBeide argumenten geheel  resultaatwaarde geheel 2 + 5 3 * 4 5 / 2 0.5 * 7 10 / 3.0 1.5 * 2.5 nMinstens één floating  resultaatwaarde floating “in” + “fo” “€” + bedrag nbij + operator ook: Minstens één string  resultaatwaarde string

40 Objecten nObject: groepje variabelen dat bij elkaar hoort 255 r g 0 b 100 w 20 h 3 aantal 199.95 prijs h allo!

41 Objecten nOm een object te gebruiken, hoef je niet te weten uit welke variabelen het object bestaat nJe hoeft alleen te weten uwelke methoden er zijn uwelke properties er zijn "vraag niet hoe het kan... " "maar profiteer ervan! "

42 Methoden bewerken een object canvas. DrawLine ( 10, 10, 30, 30, verf) ; stapel. Add ( new Button(this) ); methode gebruikt het object methode verandert het object blijvend scherm. SetBackgroundColor ( Color.White ); methode verandert het object blijvend object

43 Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken

44 Color-object Color k1, k2, k3; k1 = new Color(255,0,0); verf.Color = k1; c.DrawCircle(100,200,50,verf); k2 = k1; k3 = k1; k2.G = 255; verf.Color = k2; c.DrawCircle(300,200,50,verf); k3.B = 255; verf.Color = k3; c.DrawCircle(500,200,50,verf); k1 k2k3 0 0 R G 0 B 0 0 R G 0 B 0 0 R G 0 B 255

45 Rect-object Rect r1, r2, r3; r1 = new Rect(50,300,150,350); c.DrawRect(r1, verf); r2 = r1; r3 = r1; r2.Left=280; r2.Right=320; r2.Top = 50; c.DrawRect(r2, verf); r3.Left = 490; r3.Right = 510; c.DrawRect(r3,verf); r1 r2r3 0 0 Left Right 0 Top 50 verf.Color = Color.Green; 0 Bottom 0 0 Left 0 0 Bottom 0 0 Left 0 0 Bottom Right Top Right Top 300 150 350 50 300 150 350 50 300 150 350 280 50 320 490 510

46 Rect-object Rect r1, r2, r3; r1 = new Rect(50,300,150,350); c.DrawRect(r1, verf); r2 = r1; r3 = r1; r2.Left=280; r2.Right=320; r2.Top = 50; c.DrawRect(r2, verf); r3.Left = 490; r3.Right = 510; c.DrawRect(r3,verf); r1 r2r3 50 300 Left Right 150 Top verf.Color = Color.Green; 350 Bottom null 280 50 320 490 510

47 Grote objecten kopiëren? Bitmap b; b = new Bitmap("t.jpg"); Bitmap c; c = b; 104 h wb 4 h wc zonde van de ruimte!

48 Object-verwijzingen Bitmap b; Bitmap c; c = b; 104 h w b new Bitmap("t.jpg");b = c

49 Values versus Pointers Color c; Rect r; class Rect struct Color c 0 0 R G 0 B 255 10 30 Left Right 20 Top 40 Bottom c = new Color(255,0,0); new Rect(10,20,30,40); null r r =


Download ppt "Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de."

Verwante presentaties


Ads door Google