1. Een klasse is… Een groepje opdrachten Een groepje variabelen

Slides:



Advertisements
Verwante presentaties
Het type int Tekenen met Java operatoren
Advertisements

Hoofdstuk 2 Hallo, C# !.
Hoofdstuk 8 Objecten en klassen.
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
Opgave 2a nMet een InputStream lees je bytes uit een binare file nMet een Reader lees je characters uit een tekstfile.
Hoorcollege 2 Basis gameprogrammeren. Soorten programma’s Console- applicatie.
Hoorcollege 4 Objecten en methoden. Eigen methode toevoegen class Painter : Game { public void HandleInput() { … } protected override void Update(GameTime.
Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje”
Hoofdstuk 11.3 Algoritmen: Zoeken in een netwerk.
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 14.1 Algoritmen: Zoeken in een netwerk.
Polymorphisme en Interfaces: inleiding
Hoofdstuk 3 Methoden om te tekenen.
Opgave 1a ncompiler: vertaalt broncode naar machine-uitvoerbare code ninterpreter: voert broncode direct uit.
Hoofdstuk 3 Tekenen en rekenen.
Hoofdstuk 4 Nieuwe methoden. Tekenen g.drawRect(20,60,40,40); g.drawLine(20,60,40,40); g.drawLine(40,40,60,60); g.drawRect(70,60,40,40); g.drawLine(70,60,90,40);
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
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.
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.
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
Eerste deeltentamen nNagekeken werk ligt voor in de zaal nNeem je eigen werk mee: in het college wordt het besproken nVragen over de beoordeling: in de.
1e Deeltentamen nNagekeken werk ligt voor in de zaal (alfabetisch op achternaam) nNeem het even mee, de uitwerking wordt in het college besproken nDiscussies.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 3 inleveropdrachten) college Tent. 1 Tent. 3 college prakt. 1 prakt. 3 prakt.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 2 inleveropdrachten) college Tent. 1 Tent. 2 college prakt. 1 prakt. 2 prakt.
Resources. Kompas } { protected override void OnDraw(Canvas canv) { base.OnDraw(canv); } public KompasView(Context c) : base(c) { } class KompasView :
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text.
Syntax van opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += returnexpressie; if)(expressieopdrachtblok.
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;
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Game Object Structuren
Activity Bij het starten van een app:
…is eigenlijk overbodig!
Aanroep van een methode voert opdrachten uit in de body daarvan
ISensorEventListener
1e Deeltentamen Nagekeken werk ligt voor in de zaal (alfabetisch op achternaam) Neem het even mee, de uitwerking wordt in het college besproken Discussies.
Gameprogrammeren: Objecten en geheugen
Reader en Writer leest en schrijft bytes leest string en char
Schilderij class MijnAct : Activity { MijnView scherm;
Gameprogrammeren: Overerving
Hoofdstuk 9.2 Strings.
Letterfrequentie turven
Gameprogrammeren: Variabelen, declaraties en toekenningen
Wat gaan we doen? Theorie (14 colleges + 3 deeltentamens)
Syntax van opdrachten opdracht naam naam ( expressie ) ; . , expressie
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Methoden
Arjan Egges & Paul Bergervoet
vandaag èn vrijdag deadline maandag 12 dec.
Gameprogrammeren: Overerving in Painter
Gameprogrammeren: Player input in Painter
Basis Gameprogrammeren
Gameprogrammeren: Herhalingen
Declaratie Declaratie reserveert geheugenruimte
Gameprogrammeren: Game Basics
Syntax van opdracht opdracht naam naam ( expressie ) ; . , expressie
Voorbeeld: Simulatie van bewegende deeltjes
Wat gaan we doen? Theorie (14 colleges + 3 deeltentamens)
Voortborduren op eerder gedaan werk
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Klassen en objecten
Interface In de library In je eigen programma wat is er nodig om een
Arjan Egges & Paul Bergervoet
Object Communication (Jewel Jam)
Exceptions Exception:
Eerste deeltentamen Nagekeken werk ligt voor in de zaal
Transcript van de presentatie:

1. Een klasse is… Een groepje opdrachten Een groepje variabelen Een groepje methoden Een groepje parameters methode 3% 0.5% 96% object

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. Void wordt gebruikt in de header van een… Constructormethode Methode zonder parameters Methode zonder body Methode zonder resultaat 8% 5% 3% 84%

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

Standaardtypes gehele getallen met een decimale punt 1 byte sbyte ± 127 byte 0..255 28-1 2 bytes short ± 32767 ushort 0..65535 216-1 4 bytes int ± 2 miljard uint 0..4 miljard 232-1 8 bytes long ± 1018 ulong 0..1019 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

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);

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%

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%

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)

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%

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(); }

10. Wat is 45 % 10 4 5 0.5 40.5 14% 81% 2% 6%

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

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?

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) { ...... } }

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( ); }

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

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

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

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);

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

Opgave 14: Kopieer & Druiven o-o-o-o-o .o-o-o-o. ..o-o-o.. ...o-o...

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; }

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); } }