Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdMaurits Beckers Laatst gewijzigd meer dan 9 jaar geleden
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 =
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.