Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdNorbert Sanders Laatst gewijzigd meer dan 6 jaar geleden
1
1. Een klasse is… Een groepje opdrachten Een groepje variabelen
Een groepje methoden Een groepje parameters methode 3% 0.5% 96% object
2
2. Een klasse is ook… Het type van een object Het type van een methode
Het type van een opdracht Het type van een aanroep 81% 9% 3% 7% opdrachten methoden klasse variabelen objecten zijn gegroepeerd in hebben als type veranderen bewerken
3
3. Void wordt gebruikt in de header van een…
Constructormethode Methode zonder parameters Methode zonder body Methode zonder resultaat 8% 5% 3% 84%
4
4. Gebruik float i.p.v. double
Niet veel decimalen achter de punt Extra veel decimalen achter de punt Geen decimale punt Precieze financiële berekeningen 56% 32% 8% 3% double int decimal
5
Standaardtypes gehele getallen met een decimale punt 1 byte sbyte
± 127 byte 0..255 28-1 2 bytes short ± 32767 ushort 216-1 4 bytes int ± 2 miljard uint 0..4 miljard 232-1 8 bytes long ± 1018 ulong 264-1 met een decimale punt 4 bytes float 7 cijfers, afgerond, ≤1038 8 bytes double 15 cijfers, afgerond, ≤10300 16 bytes decimal 28 cijfers, exact, ≤1028
6
5. Matrix gebruik je voor…
Rangschikken views in een raster Beschrijven geometrische transformatie Bitmap decoderen Bitmap tekenen LinearLayout 11% 66% 7% 17% Bitmap b = BitmapFactory.DecodeResource(x); canvas.DrawBitmap(b, 10, 20, verf); Matrix mat = new Matrix(); mat.PostScale(schaalx, schaaly); mat.Rotate(hoek); canvas.DrawBitmap(b, mat, verf);
7
6. Null pointer exception
treedt op… In try-deel van try/catch(NullPtrExc) In catch-deel van try/catch(NullPtrExc) Bij gebruik van een variabele uit object zonder waarde Bij gebruik van niet-gedeclareerd object 17% 32% 42% 9%
8
7. Radio-buttons heten zo omdat…
Vorm lijkt op volume/afstem-knoppen Gedrag lijkt op bandselectie-knoppen Groepering lijkt op afstem-veld Vorm lijkt op kattenoog …van vroegere radio’s 22% 60% 13% 5%
9
8. new Color(255, 128, 0) Lichtblauw Roze Donkergroen Oranje rood
3% 19% 15% 63% (255,0,0) (0,255,0) (255,255,0) (0,0,255) (0,255,255) (255,0,255) (255,255,255) (0,0,0) new Color(255, 0, 0) new Color(255, 64, 0) new Color(255, 128, 0) new Color(255, 192, 0) new Color(255, 255, 0)
10
9. Aan het eind van … roep je Invalidate aan:
een eventhandler omdat variabelen buiten de methode zijn veranderd OnDraw omdat plaatje opnieuw getekend moet worden een overriden methode omdat oorspronkelijke methode is veranderd constructor van subklasse van View omdat oorspronkelijke object is veranderd 53% 28% 8% 11%
11
Cirkel- klikker } class MijnView : View { PointF p;
public MijnView(Context c) : base(c) { this.Touch += raakAan; } protected override void OnDraw(Canvas c) { base.OnDraw(c); } if (p != null) c.DrawCircle(p.X, p.Y, 50, new Paint()); public void raakAan(object o, TouchEventArgs tea) { } float x, y; x = tea.Event.GetX(); y = tea.Event.GetY(); p = new PointF(x, y); this.Invalidate(); }
12
10. Wat is 45 % 10 4 5 0.5 40.5 14% 81% 2% 6%
13
11. Waar staan declaraties?
buiten de klasse namespace N { class K : S void M( ) } in de header van een klasse in de body van een klasse int x; te gebruiken in alle methoden int x in de header van een methode om parameters te ontvangen int x; in de body van een methode voor tijdelijke tussenresultaten
14
12. Interface In libraries worden naast klassen ook interfaces gedefinieerd Wat is er anders dan in een klasse? Waar gebruik je de interface-naam? Welke verplichting brengt dat met zich mee?
15
Interface In de library In je eigen programma wat is er nodig om een
ISensorEventListener te zijn? In de library In je eigen programma deze methode! interface ISensorEventListener { } public void OnSensorChanged(SensorEvent s); public void OnAccuracyChanged(SensorEvent s); ik beloof een ISensorEventListener te zijn class KompasView : View { , ISensorEventListener public KompasView(Context c) : base(c) { } en implementeer dus de methode! public OnDraw(Canvas c) { } public void OnSensorChanged(SensorEvent s) { } }
16
ISensorEventListener
Kompas class KompasView : View , ISensorEventListener { Bitmap b; float Schaal; float Hoek; belooft methodes public KompasView(Context c) : base(c) { b = BitmapFactory.DecodeResource(...UU...); } SensorManager sm = c . GetSystemService(...); sm.RegisterListener(this, ...Orientation...); protected override void OnDraw(Canvas canv) { base.OnDraw(canv); } is een geldige ISensorEventListener Schaal = this.Width / b.Width; Matrix mat = new Matrix(); mat.PostScale(Schaal, Schaal); mat.PostTranslate(-b.Width/2, -b.Height/2); want zijn klasse heeft deze methode mat.PostRotate(- Hoek); mat.PostTranslate(Width/2, Height/2); canv.DrawBitmap(b, mat, verf); public void OnSensorChanged(SensorEvent s) { } Hoek = s.Values[0]; this.Invalidate( ); }
17
12. Interface In libraries worden naast klassen ook interfaces gedefinieerd Wat is er anders dan in een klasse? alleen methode-headers, zonder bodies Waar gebruik je de interface-naam? aan het eind van de header van je klasse Welke verplichting brengt dat met zich mee? om de gespecificeerde methodes inderdaad te definiëren
18
Type / Expr / Opdr / Decl / Head / X
Methode "/\" string return null; new Button (this) X T O E x++2 this.new bool b=true; override void a() X X D H override false&&true DateTime Now foreach (A b in c) ; X E E O DateTime DateTime nu; Hallo(Color c) wit.Color = Color.White; T D H O
19
X T O E X X D H X E E O T D H O goed 16 15 14 13 12 11 10 9 8 7 6 5 4
aantal 4 5 20 24 37 19 21 21 14 10 3 1 1 cijfer 11 10 9 8 7 6 5 4 3 2 1 -1 "/\" string return null; new Button (this) X T O E x++2 this.new bool b=true; override void a() X X D H override false&&true DateTime Now foreach (A b in c) ; X E E O DateTime DateTime nu; Hallo(Color c) wit.Color = Color.White; T D H O
20
Type / Expr / Opdr / Decl / Head / X
Methode true true while(false); while(false); Canvas Graphics string s = "\""; string s = "\""; t+1 = t t+1 = t t != t t != t t *= 1; t *= 1; static s(int i) static s(int i) float float return int; return int; (int)1.2 (int)1.2 float f( ) float f( ) Paint p; Pen p; Color.Red Pens.Red { } { } c.DrawLine (0,0,0,0,p); g.DrawLine (p,0,0,0,0);
21
Type / Expr / Opdr / Decl / Head / X
Methode true true E while(false); while(false); O Graphics Canvas T string s = "\""; string s = "\""; D t+1 = t t+1 = t X t != t t != t E t *= 1; t *= 1; O static s(int i) static s(int i) X float float T return int; return int; X (int)1.2 (int)1.2 E float f( ) float f( ) H Paint p; Pen p; D Pens.Red Color.Red E { } { } O g.DrawLine (p,0,0,0,0); c.DrawLine (p,0,0,0,0); O
22
Opgave 14: Kopieer & Druiven o-o-o-o-o .o-o-o-o. ..o-o-o.. ...o-o...
23
Opgave 14: Kopieer & Druiven o-o-o-o-o .o-o-o-o. ..o-o-o.. ...o-o...
public string Kopieer public string Druiven (int n) (int n, string x) { { string res = ""; string res = ""; int t; for (t=0; t<n; t++) for (int t=0; t<n; t++) { string pt, os, regel; res = res + x; pt = Kopieer(t, "."); return res; os = Kopieer(n-1-t, "o-"); } regel = pt + os + "o" + pt; o-o-o-o-o .o-o-o-o. ..o-o-o.. ...o-o... ....o.... o-o-o-o-o .o-o-o-o. ..o-o-o.. ...o-o... ....o.... res += regel + "\n"; } return res; }
24
14c: AndroidApp class DruivenApp { : Activity SeekBar b; TextView t;
override void OnCreate(Bundle b) { void schuif (obj o, EA ea) { t.Text = this.Druiven(b.Progress); base.OnCreate(b); int r = b.Progress; b = new SeekBar(this); t = new TextView(this); string s = this.Druiven(r); t.Text = s; } b.Max = 10; b.ProgressChanged += schuif; LinearLayout stapel = new LinearLayout(this); stapel.AddView(b); stapel.AddView(t); SetContentView(stapel); } }
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.