De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken."— Transcript van de presentatie:

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

2 Een eigen klasse om variabelen te groeperen nVoorbeeld: een Kleur bestaat uit Rood, Groen, Blauw { class Kleur } byte Rood; byte Groen; byte Blauw; public Kleur paars; paars = new Kleur(); paars.Rood = 128; paars.Blauw = 128; paars.Groen = 0; int x = paars.Grijswaarde();

3 Eigen klasse Kleur { class Kleur } public byte Rood, Groen, Blauw; public Kleur( ) { } Rood=255; Groen=255; Blauw=255; constructor-methode public Kleur( byte r, byte g, byte b ) { } Rood=r; Groen=g; Blauw=b; constructor-methode met parameters public Kleur( byte x) { } Rood=x; Groen=x; Blauw=x; nog een constructor-methode public byte Grijswaarde( ) { } return (3*Rood + 6*Groen + Blauw) / 10; methode die iets uitrekent

4 Gebruik van klasse Kleur Kleur wit, paars, oranje, lichtgrijs, donkergrijs; wit = new Kleur( ); paars = new Kleur( 128, 0, 128 ); oranje = new Kleur( 255, 128, 0 ); lichtgrijs = new Kleur( 180 ); donkergrijs = new Kleur( 60 ); byte x = oranje.Grijswaarde( ); Kleur oranjeInZwartwit; oranjeInZwartwit = new Kleur(x); oranje.MaakDonkerder( ); aanroep van een constructor-methode aanroep van een methode met een resultaat aanroep van een void-methode

5 Methodes in de eigen klasse Kleur { class Kleur } public byte Rood, Groen, Blauw; return (3*Rood + 6*Groen + Blauw) / 10; methode die iets uitrekent void-methode die het object verandert Rood = Rood * 0.9; Groen = Groen * 0.9; Blauw = Blauw * 0.9; Rood = (byte) (Rood * 0.9) ; Groen = (byte) (Groen * 0.9) ; Blauw = (byte) (Blauw * 0.9) ; de variabelen van public string ToString( ) { } return $"{Rood} {Groen} {Blauw}"; override : object methode die een leesbare versie van de Kleur maakt elke klasse is automatisch subklasse van object (byte) (0.3*Rood + 0.6*Groen + 0.1*Blauw); public byte Grijswaarde( ) { } public void MaakDonkerder( ) { }

6 Gebruik van klasse Kleur Kleur oranje = new Kleur( 255, 128, 0); oranje.MaakDonkerder( ); aanroep van een void-methode string s = oranje.ToString( ); class MijnApp : Application { TextField tf; void OnCreate(Bundle b) { base.OnCreate(b); tf = new TextField(this); tf.Text = s; aanroep van een methode met een resultaat

7 Gebruik van klasse Kleur Kleur oranje = new Kleur( 255, 128, 0); oranje.MaakDonkerder( ); aanroep van een void-methode string s = oranje.ToString( ); class MijnView : View { void OnDraw(Canvas c) { Paint verf = new Paint( ); c.DrawText( s, 10, 10, verf); aanroep van een methode met een resultaat

8 Meer constructormethodes in klasse Kleur { class Kleur } public byte Rood, Groen, Blauw; public Kleur( byte r, byte g, byte b ) { } Rood=r; Groen=g; Blauw=b; constructor-methode met parameters public Kleur( Kleur orig ) { } Rood=orig.Rood; Groen=orig.Groen; Blauw=orig.Blauw; constructor-methode die een kopie maakt public Kleur( string s ) { } constructor-methode die een string ontleedt string[ ] woorden = s.Split( ); Rood = woorden[0]; Groen = woorden[1]; Blauw = woorden[2]; Rood = byte.Parse( woorden[0] ); Groen = byte.Parse( woorden[1] ); Blauw = byte.Parse( woorden[2] ); array van strings handige methode van string

9 Methodes in de eigen klasse Kleur { class Kleur } public byte Rood, Groen, Blauw; void-methode die het object verandert Rood = Rood * 0.9; Groen = Groen * 0.9; Blauw = Blauw * 0.9; Rood = (byte) (Rood * 0.9) ; Groen = (byte) (Groen * 0.9) ; Blauw = (byte) (Blauw * 0.9) ; de variabelen van public void MaakDonkerder( ) { } public Kleur DonkerdereVersie( ) { } Kleur res; return res; res = new Kleur(this); res.MaakDonkerder ( ); methode die een nieuw object oplevert

10 Static variabelen { class Kleur } public byte Rood, Groen, Blauw; static variabelen zitten niet in het object public static byte Max = 255; maar hebben er iets mee te maken public Kleur( ) { } Rood=Max; Groen=Max; Blauw=Max; constructor-methode

11 Static methoden { class Kleur } public byte Rood, Groen, Blauw; static variabelen zitten niet in het object public static byte Max = 255; maar hebben er iets mee te maken public Kleur( ) { } Rood=Max; Groen=Max; Blauw=Max; constructor-methode public static Kleur Parse( string s ) { } static methoden hebben geen object onderhanden return new Kleur(s); public static Kleur Geel = new Kleur(Max,Max,0); static variabele met de eigen klasse als type

12 Intent nIntent: bedoeling om een nieuwe activiteit te starten ueigen activiteit §Hallo §Teller ustandard §web-browser §text-sender

13 Multi public class Multi : Activity { protected override void OnCreate(Bundle b) { base.OnCreate(b); } b1 = new Button(this); b2 = new Button(this); } Button b1, b2, b3, b4, b5, b6; b1.Text = "Hallo"; b2.Text = "Teller"; b1.Click += klik1; b2.Click += klik2; LinearLayout lay = new LinearLayout(this); lay.AddView(b1); lay.AddView(b2); SetContentView(lay); public void klik1(object o, EventArgs e) {...... }

14 Intent: Hallo opstarten public class Multi : Activity { } Button b1, b2, b3, b4, b5, b6; public void klik1 (object o, EventArgs e) { } Intent i; i = new Intent (this, StartActivity(i); typeof(Hallo) ); i.PutExtra("wat", "Hallo!!!"); public class Hallo : Activity { } override void OnCreate(Bundle b) { base.OnCreate(b); } TextView t = new TextView(this); SetContentView(t); string s = Intent.GetStringExtra("wat"); t.Text = s; hier zijn 24 verschillende varianten van......maar net niet die je nodig hebt, bijv. Kleur i.PutExtra("kleur", oranje.ToString()); string s = Intent.GetStringExtra("kleur"); Kleur k = new Kleur(s);

15 Hoofdstuk 9.2 Strings

16 Primitieve types nint gehele getallen-17, -5, 0, 3, 178 ndouble reëele getallen3.141, 2.0, -1.5E8 nbool waarheidswaarden false, true nchar losse symbolen'A', 'B', 'Z', 'a', '4', '#', ':'

17 string versus char nstringchar nklasseprimitief type nobject-verwijzingdirecte waarde nnul, een of meer…precies één symbool n"" "A" "hello" 'A' noperatoren, methoden properties, indexeroperatoren u==, +==, +, <= uSubstring, ToUpper, Split uLength us[t]

18 String-methodes nint Length nboolEquals(string s) nstringConcat(string s) nstringSubstring(int start) nstringSubstring(int start, int aantal) nstringToUpper( ) nstringToLower( ) nstring[] Split( )

19 Concat en Substring nString s, t, u, v, w; ns = "ham"; nt = "burger"; nu = s.Concat(t); nv = u.Substring(3); nw = u.Substring(3, 4); s t u v w hamburger hamburger burger burg hamburger 012345678 s + t ; vanaf aantal

20 Publieksvraag nSchrijf een methode Beginstuk met twee string-parameters x en y die bepaalt of x het beginstuk van y is nSchrijf een methode Onderdeel met twee string-parameters x en y die bepaalt of x ergens als substring van y voorkomt

21 Methode Beginstuk (string x, string y)boolpublic static kortlang {}{} y. Substring( 0, x.Length ) x == return ; Beginstuk

22 Methode Onderdeel (string x, string y)boolpublic static {}{} Onderdeel y. Substring(t) Beginstuk(x, ) if ( ) return true; for (t=0; t<y.Length; t++) return false; int t;

23 Meer string-methodes nboolStartsWith(string s) nboolEndsWith(string s) nintIndexOf(string s) public static bool Onderdeel(string x, string y) { return y.IndexOf(x)>=0 ; }

24 Publieksvraag n//schrijf een static methode die telt hoe // vaak een symbool voorkomt in een string n//voorbeeld-aanroep: int n; n = Demo. Freq('e', "some text" ); n// hint: gebruik een for opdracht

25 Tel symbool-frequentie public static int Freq(char x, string s) { s[t]==x for (int t=0; t<s.Length; t++) if ( ) aantal++; int aantal; aantal = 0; return aantal; }

26 Tel symbool-frequentie public static int Freq(char x, string s) { s[t]==x for (int t=0; t<s.Length; t++) if ( ) aantal++; int aantal; aantal = 0; return aantal; } foreach ( char c in s ) c == x

27 IBM/DOS Geschiedenis van char n1970s:6 bits = 64 symbols 26 letters, 10 digits, 28 leestekens n1980s: 7 bits = 128 symbols +26 lowercase, +5 leestekens, 33 control n1990s: 8 bits = 256 symbols +letters met accenten n2000s: 16 bits = 65536 symbols +Grieks, Cyrillisch, Japans, Devangari,... ASCII ANSI/ISO Unicode

28 Character coding code 0 code 127 code 48 code 32 code 65 code 97

29 char bijzonderheden nalfabetisch geordend char c; if ( ’A’<=c && c<=’Z’ ) … nconverteerbaar naar int int n; n = c + 32; nen terug c = (char) n;

30 twee tekens in de broncode, toch één character! Speciale char-waarden nLetterlijk symbool nSpeciaal symbool nHet quote-symbool nHet backslash-symbool 'A''A' '\n' '\'' '\\' '&''&' '\t' '\"' nElk Unicode-karakter '\x597D' '好''好'

31 Hoofdstuk 9.3-4 Arrays

32 nArray: rij genummerde variabelen tabel 0 1 2 3 4 length5 int [ ] tabel; new int [5];tabel = declaratie van een array creëren van het eigenlijke array-object

33 Gebruik van een array n’t zijn echte variabelen: tabel 0 1 2 3 4 Length 5 tabel [2] = 37; tabel[4] = tabel [2] + 5; 37 42 if (tabel.Length<10)... tabel.Length = 10; Length is een read-only property

34 Gebruik van een array nvariabele als index in de array tabel 0 1 2 3 4 Length5 tabel [0] = 42; tabel [1] = 42; tabel [2] = 42; tabel [3] = 42; tabel [4] = 42; 42 tabel [t] = 42; for (t=0; t<5; t++)

35 Array als parameter tabel 0 1 2 3 4 Length5 12 95 11 23 15 int Grootste ( int [ ] tabel ) { } int resultaat; return resultaat; if (tabel [t] > resultaat) resultaat = tabel [t]; for (t=0; t<tabel.Length; t++) int t; resultaat =tabel [0]; static

36 Syntax van array-type type int short sbyte long decimal double float char bool uint ushort byte ulong struct naam class naam object string waarde verwijzing [], array

37 Array van getallen tabel int [ ] tabel; new int [5];tabel = 0 1 2 3 4 Length 5

38 Array van struct-objecten tabel Color [ ] palet; new Color[5]; palet = 0 1 2 3 4 Length 5

39 Array van class-objecten tabel PointF [ ] plaatsen; new PointF[5]; tabel = 0 1 2 3 4 Length 5 for (int t=0; t<5; t++) plaatsen[t] = new PointF( );

40 string versus array nKlassen Type met speciale syntax nSpeciale index-notatie string s = new string();char[] a = new char[10]; c = a[2];a[3] = c; nSpeciale quote-notatie s = "hallo"; nProperty a.Length nProperty s.Length nMethoden s.Substring(3,2); s.IndexOf(t); nIndexer -notatie c = s[2];s[3] = c;

41 Declaratie declaratie naamtype, =initialisatieconst ; var met intitialisatie initialisatie expressie initialisatie}{, string [ ] woorden = { "aap", "noot", "mies" }; int [ ] maand = { 31,28,31,30,31,30,31,31,30,31,30,31 }; Color [ ] palet = { new Color(64,0,0), Color.Yellow };

42 Tekst Analyse EditText TekstAnalyse DiagramView class TekstAnalyse : Activity class DiagramView : View LinearLayout

43 Tekst Analyse public class TekstAnalyse : Activity { protected override void OnCreate(Bundle b) { base.OnCreate(b); } tekst = new EditText(this); diagram = new DiagramView(this); } EditText tekst; DiagramView diagram; LinearLayout s = new LinearLayout(this); s.AddView(tekst); s.AddView(diagram); SetContentView(s); public void veranderd(object o, EventArgs e) } { tekst.AfterTextChanged += veranderd; diagram.Invoer = tekst.Text; diagram.Invalidate( );

44 Tekst Analyse public class DiagramView: View { protected override void OnDraw(Canvas cv) { base.OnDraw(cv); } } public string Invoer; tellers 9 0 5 1 5 14 1 2 3 4 26 Length 0 5 6 8 0 5 6 7 8 9 int [ ] tellers; tellers = new int [26];

45 Tekst Analyse public class DiagramView: View { protected override void OnDraw(Canvas cv) { base.OnDraw(cv); } } public string Invoer; tellers 9 0 5 1 5 14 1 2 3 4 26 Length 0 5 6 8 0 5 6 7 8 9 int [ ] tellers; tellers = new int [26]; tellers[ ]++; foreach(char c in Invoer) c-'a' if (c>='a' && c<='z') foreach(int a in tellers) { } cv.DrawRect( x, y, x+a*w, y+h, verf ); cv.DrawText( a.ToString()... ); int h = Height/ 26; y = y+h;, y=0; int w = Width / max;


Download ppt "Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken."

Verwante presentaties


Ads door Google