Activity. Bij het starten van een app: Operating system maakt een Activity -object aan. en neemt dat onderhanden met de methode OnCreate( )

Vergelijkbare documenten
Activity. Bij het starten van een app: Operating system maakt een Activity -object aan. en neemt dat onderhanden met de methode OnCreate( )

Syntax van opdracht. opdracht. expressie. variabele. = expressie ; klasse naam. methode naam. property naam += object

Windows-applicatie. using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( )

Kompas. zijn klasse. protected override void OnDraw(Canvas canv) { base.ondraw(canv);

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 22 december 2017, uur

programmeren Mobiel Mobilofoon 1960 Apple iphone 2007 met ios Nokia Samsung S met Android Motorola Dyna-Tac 1973

wat is er nodig om een ISensorEventListener te zijn?

Syntax van opdrachten

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 21 december 2018, uur

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, uur

Intent. Intent: bedoeling om een nieuwe activiteit te starten. eigen activiteit. standard. Hallo Teller. web-browser text-sender

Methoden om te tekenen

vandaag èn vrijdag deadline maandag 12 dec.

Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 3 februari 2017, uur

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 3 februari 2017, uur

Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 29 januari 2016, uur

Figuur 7: De KlikkerApp in werking

Hoofdstuk 9.4. Letterfrequentie turven

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Opdrachten herhalen. public void tekenscherm (object o, PEA pea) { int x; x = 1; zolang de voorwaarde geldig is

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 29 januari 2016, uur

is eigenlijk overbodig!

Dit hoofdstuk is niet een herhaling, maar gaat over herhaling in C#, en is dus nieuw!

import java.io.*; één klasse public class Hallo { public static void main (String[] a) ...met één functie System.out.println("Hallo!

Versie 2: B C D D A C D A C C. Versie 3: C D A A B D A B D D. Versie 4: A D C C B D C B D D. Versie 5: B A D D C A D C A A

Uitwerking Aanvullende toets Mobiel programmeren - versie 1 Woensdag 23 maart 2016, uur

Aanvullende toets Mobiel programmeren - versie 1 Woensdag 23 maart 2016, uur

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

Touch & go. Hoofdstuk Touch

Voorbeeld: Simulatie van bewegende deeltjes

Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur

B.3 Serie 3. B.3 Serie 3 7

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

Programmeren in Java les 3

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall,

Goede bedoelingen. Hoofdstuk Een App met meerdere activiteiten. 8.2 Dialogen

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 11 november 2016, uur

class Solver { static Valuatie Vervul (IFormule formule, ISet<string> variabelen, Valuatie valuatie) { if (variabelen. Count==0)

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.


Uitwerking Tweede deeltentamen Imperatief programmeren Vrijdag 19 oktober 2012, uur

Vakgroep CW KAHO Sint-Lieven

Uitwerking Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, uur

Uitwerkingen Derde deeltentamen Imperatief programmeren Vrijdag 12 november 2010, uur

Uitwerkingen Derde deeltentamen Imperatief programmeren Vrijdag 12 november 2010, uur

Klassen. Hoofdstuk Klassen

Uitwerking Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur

Modelleren en Programmeren

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, uur

Eerste deeltentamen Gameprogrammeren Vrijdag 25 september 2015, uur

Java. Basissyllabus. Egon Pas

Deeltentamen Grammatica s en ontleden 22 december 2005

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, uur

Veel succes! 1. Deze opgave bestaat uit een aantal vragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn.

Veel succes! 1. Gegeven is de volgende klasse:

Mobiel programmeren. Jeroen Fokker

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Uitwerking Tweede deeltentamen Imperatief programmeren versie 1 Vrijdag 20 oktober 2017, uur

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica

Veel succes! 1. Deze opgave bestaat uit een aantal vragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn.

Som Van Twee Getallen

Hallo, App! Hoofdstuk Soorten programma s

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

Modelleren en Programmeren

Modelleren en Programmeren

Werkcollege-opgaven. Bijlage B

Tweede deeltentamen Imperatief programmeren versie 1 Vrijdag 20 oktober 2017, uur

Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing.

b.text = "Rol!"; b.location = new Point(100, 0); b.click += this.rol; this.paint += this.teken;

Overerving & Polymorfisme

Modelleren & Programmeren. Jeroen Fokker

Uitwerking Tweede deeltentamen Imperatief programmeren Vrijdag 18 oktober 2013, uur

Programmeren in C# Samenvatting van C#

Informatie over. 5VWO DT51: JavaLogo. Casper Bezemer. Toetsweek 1 13 oktober 2016

Veel succes! 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn.

Objectgeoriënteerd programmeren in Java 1

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

IMP Uitwerking week 13

APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES. Onderdeel van SmartProducts

Een typisch programma in C en C++ bestaat uit een aantal onderdelen:

Uitwerking Tweede deeltentamen Imperatief programmeren Vrijdag 21 oktober 2011, uur

VAN HET PROGRAMMEREN. Inleiding

Modelleren en Programmeren

Uitwerking Derde deeltentamen Imperatief programmeren Vrijdag 8 november 2013, uur

Modelleren en Programmeren

Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, uur

eerste voorbeelden in Java

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

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse

public Bier ( string N, double P, Brouwerij B) { Naam = N; AlcoholPerc = P; Brouwer = B;

Modelleren en Programmeren

Aanvullende toets Gameprogrammeren Woensdag 5 januari 2011, uur

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14

Variabelen en statements in ActionScript

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

Programmeren in Java 3

Transcriptie:

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

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); bestaat nog niet MondiaanView m; m = new MondriaanView(this); this.setcontentview(m);

Maak je eigen View public class MondriaanView : View { public MondriaanView(Context ct) : base(ct) { base.view(ct); this.setbackgroundcolor(color.white); protected override void OnDraw(Canvas cv) { base.ondraw(cv); cv. DrawLine( ); cv. DrawRect( ); cv. DrawCircle(.);

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

Tekenen compositie met blauw en rood (vrij naar Piet Mondriaan) Paint verf; verf = new Paint(); verf.color=color.black; cv.drawrect( 10, 0, 20, 100, verf ); cv.drawrect( 50, 0, 60, 100, verf ); cv.drawrect( 90, 0, 100, 100, verf ); 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 );

Variabelen x1 x2 x3 int balk, breed, hoog int x1, x2, x3, y1, y2; x1=10; x2=50; x3=90; y1=40; y2=70; balk = 10; breed = 200; hoog = 100; y1 y2 Paint verf; verf = new Paint(); verf.color=color.black; 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.Blue; cv.drawrect( 0, y1+balk, x1, y2, verf ); verf.color = Color.Red; cv.drawrect(x3+balk, 0, breed, y1, verf );

Makkelijk aanpasbaar?

Syntax van declaratie declaratie const type var naam = expressie, ; type klasse naam int string

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

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

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

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

Hoofdstuk 4.6-7 Maak je eigen methodedefinities

Voorbeeld: Huizen

Nieuwe methoden Methode: 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 ( );

Parameters private void tekenhuis ( ) (Canvas c, ) { c. DrawRect ( ); c. DrawLine ( ); c. DrawLine ( ); parameter declareren protected override void OnDraw(Canvas c) {. tekenhuis (c, ( ); );. tekenhuis (c, ( ); );. tekenhuis (c, ( ); ); en bij aanroep meegeven

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

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

Meer parameters private void tekenhuis (Canvas c, int ) x, int y, int br) { Paint verf = new Paint(); int tx = x+br/2; int ty = y br br/2; c.drawrect ( x, y-br, x+br, y, verf); c.drawline ( x, y-br, tx, ty, verf); c.drawline ( tx, ty, x+br, y-br, verf); (x,y) br (tx,ty) protected override void OnDraw(Canvas c) { this. tekenhuis (c, ); 20, 100, 40); this. tekenhuis (c, ); 70, 100, 40); this. tekenhuis (c, ); 120, 100, 60);

Flexibiliteit Hoe meer parameters, des te flexibeler de methode 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... (x,y) br dakh h

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

Communicatie met methoden Parameters : aanroeper geeft waarde door aan de methode Methode-resultaat : methode geeft waarde terug aan de aanroeper net zoals een wiskundige functie

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

Publieksvraag Schrijf 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;

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

Syntax van opdrachten opdracht klasse naam methode naam ( expressie ) ; object expressie. property naam +=, variabele = expressie ; return expressie ;

Hoofdstuk 5.1-2 Variabelen en objecten

Variabelen Variabele: geheugenplaats met een naam Declaratie: aangifte van het type van de variabele int x, y; Toekenningsopdracht: variabele krijgt waarde x = 20; x y 20

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

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

Type van variabelen int x; float y; int float geheel getal x y 103 3.141592 3.333333 10.0 getal met drijvende komma x = 10 ; y = 3.141592f ; y = 10 ; x = x / 3 ; y = y / 3 ;

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

Constanten geheel getal (kleinst passende) 0 137 25 met een decimale punt 0.5 273.15 6.02E23 1E3 hexadecimaal 0x1A 0xFF 26 255 3E 11 string 602000000000000000000000 1000 0.00000000003 "Hallo!" "A" "" "een \"citaat\"" "\n" "\\"

Objecten Object: groepje variabelen dat bij elkaar hoort r g b 255 255 0 w h 100 20 Left Top 10 30 Right 20 Bottom 40

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

Objecten Object: groepje variabelen dat bij elkaar hoort r 255 g 255 b 0 Color w 100 h 20 Size Left Top 10 30 Right 20 Bottom Rect 40 aantal prijs 3 199.95 Artikel

Syntax van declaratie declaratie const type var naam = expressie, ; type klasse naam int float string

Publieksvraag Schrijf methodes omtrek en diagonaal met een Rect als parameter, die dat uitrekenen public int omtrek (Rect r) { int br = r.right-r.left; int h = r.bottom-r.top; return 2*(br+h); Top h Left br Right Bottom public double diagonaal(rect r) { int a = r.right-r.left; int b = r.bottom-r.top; a 2 + b 2 = c 2 return Math.Sqrt(a*a + b*b);

Hoofdstuk 6.1 Touch

Klikker class MijnAct : Activity { Button knop; protected override void OnCreate(Bundle b) { base.oncreate(b); knop = new Button(this); knop.click += klik; this.setcontentview(knop); public void klik(object o, EventArgs ea) { knop.text = "1x geklikt";

Klikker class MijnAct : Activity { MijnView scherm; Schilderij protected override void OnCreate(Bundle b) { base.oncreate(b); scherm = new MijnView(this); knop.click += klik; this.setcontentview(scherm); public void klik(object o, EventArgs ea) { knop.text = "1x geklikt";

class MijnAct : Activity { MijnView scherm; Schilderij protected override void OnCreate(Bundle b) { base.oncreate(b); scherm = new MijnView(this); scherm.click += klik; this.setcontentview(scherm); class MijnView : View { public MijnView(Context c) : base(c) { protected override void OnDraw(Canvas c) { base.ondraw(c); c.drawline(...);

A-Touch class MijnAct : Activity { MijnView scherm; protected override void OnCreate(Bundle b) { base.oncreate(b); scherm = new MijnView(this); scherm.touch += raakaan; this.setcontentview(scherm); public void raakaan(object o, EventArgs ea) { class MijnView : View { public MijnView(Context c) : base(c) { protected override void OnDraw(Canvas c) { base.ondraw(c); c.drawline(...);

A-Touch class MijnAct : Activity { MijnView scherm; V-Touch protected override void OnCreate(Bundle b) { base.oncreate(b); scherm = new MijnView(this); scherm.touch += raakaan; this.setcontentview(scherm); public void raakaan(object o, EventArgs ea) { class MijnView : View { public MijnView(Context c) : base(c) { this.touch += raakaan; protected override void OnDraw(Canvas c) { base.ondraw(c); c.drawline(...); public void raakaan(object o, EventArgs ea) {

class MijnAct : Activity { MijnView scherm; V-Touch protected override void OnCreate(Bundle b) { base.oncreate(b); scherm = new MijnView(this); this.setcontentview(scherm); class MijnView : View { public MijnView(Context c) : base(c) { this.touch += raakaan; protected override void OnDraw(Canvas c) { base.ondraw(c); c.drawline(...); public void raakaan(object o, EventArgs ea) {

class MijnAct : Activity { MijnView scherm; V-Touch protected override void OnCreate(Bundle b) { base.oncreate(b); scherm = new MijnView(this); this.setcontentview(new MijnView(this)); class MijnView : View { public MijnView(Context c) : base(c) { this.touch += raakaan; protected override void OnDraw(Canvas c) { base.ondraw(c); c.drawline(...); public void raakaan(object o, EventArgs ea) {

Cirkelklikker class MijnAct : Activity { protected override void OnCreate(Bundle b) { base.oncreate(b); this.setcontentview(new MijnView(this)); class MijnView : View { public MijnView(Context c) : base(c) { this.touch += raakaan; protected override void OnDraw(Canvas c) { base.ondraw(c); c.drawline(...); public void raakaan(object o, EventArgs ea) {

Cirkelklikker class MijnView : View { PointF p; float x, y; public MijnView(Context c) : base(c) { this.touch += raakaan; protected override void OnDraw(Canvas c) { base.ondraw(c); c.drawcircle(x, y, 50, new Paint()); public void raakaan(object o, TouchEventArgs tea) { x = tea.event.getx(); y = tea.event.gety(); this.invalidate();

Cirkelklikker class MijnView : View { PointF p; public MijnView(Context c) : base(c) { this.touch += raakaan; protected override void OnDraw(Canvas c) { base.ondraw(c); c.drawcircle(x, 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();

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

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

Opdrachten voorwaardelijk uitvoeren if (temperatuur<0) uitvoer.text = "Het vriest!"; opdracht wordt alleen uitgevoerd als voorwaarde geldt while (temperatuur<0) temperatuur += 5; opdracht wordt steeds opnieuw uitgevoerd zolang voorwaarde geldt

Twee alternatieven if (temperatuur<0) uitvoer.text = "Het vriest! ; else uitvoer.text = "Het dooit."; opdracht wordt alleen uitgevoerd als voorwaarde niet geldt

Meer opdrachten als body if (temperatuur<0) { uitvoer1.text = "Het vriest"; uitvoer2.text = "Koud he!"; accolades maken twee opdrachten tot één body

Vergelijk-operatoren < <= > >= ==!= kleiner dan kleiner dan of gelijk aan groter dan groter dan of gelijk aan gelijk aan ongelijk aan x=5 x wordt 5! x==5 is x gelijk aan 5?