Hoofdstuk 2 Hallo, C# !.

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

Het type int Tekenen met Java operatoren
Klassen en objecten.
Array nDeclaratie nCreatie nOpvragen nWijzigen nLengte String [ ] a; a = new String[10]; ……a[5]…… a[5] = ……; …a.Length… …is eigenlijk overbodig! List a;
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 8 Objecten en klassen.
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Oefeningen Hoofdstuk 3.
Consoletoepassing Variabelen Klassen
6.1 Inleiding HOOFDSTUK 6 METHODEN
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.
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
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.
Hoorcollege 3 Game assets, Invoer verwerken. Tutorlunch GroepTutorStutorZaal UPaul BergervoetBob BestBBG 001 VMarries van de HoefSander VerkuilBBG 731.
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
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
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Imperatief programmeren nJeroen Fokker. Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id.
Hoofdstuk 2 Hallo, C# !. Opbouw broncode nOpdrachten om het geheugen te veranderen nOpdrachten zijn gegroepeerd in methoden nMethoden zijn gegroepeerd.
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.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 3 inleveropdrachten) college Tent. 1 Tent. 3 college prakt. 1 prakt. 3 prakt.
Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text.
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Imperatief programmeren
Aanroep van een methode voert opdrachten uit in de body daarvan
ISensorEventListener
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Game Assets
Gameprogrammeren: Lists en interfaces
Gameprogrammeren: Overerving
Hoofdstuk 9.2 Strings.
Gameprogrammeren: Char en String
Gameprogrammeren: Expressies
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: Programmastructuur
Basis Gameprogrammeren
Declaratie Declaratie reserveert geheugenruimte
1. Een klasse is… Een groepje opdrachten Een groepje variabelen
Gameprogrammeren: Properties
Gameprogrammeren: Game Basics
Syntax van opdracht opdracht naam naam ( expressie ) ; . , expressie
Voorbeeld: Simulatie van bewegende deeltjes
Voortborduren op eerder gedaan werk
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Gameprogrammeren: Abstracte klassen
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Klassen en objecten
Arjan Egges & Paul Bergervoet
Exceptions Exception:
Transcript van de presentatie:

Hoofdstuk 2 Hallo, C# !

Soorten programma’s Console- applicatie

Soorten programma’s Console- applicatie Windows- applicatie

Soorten programma’s Console- applicatie Windows- applicatie Web- applicatie

Soorten programma’s Console- applicatie Windows- applicatie Web- applicatie Game

Soorten programma’s Console- applicatie Windows- applicatie Web- applicatie Game Applet

Soorten programma’s Console- applicatie Windows- applicatie Web- applicatie Game Applet App

Opbouw broncode Opdrachten om het geheugen te veranderen Opdrachten zijn gegroepeerd in methoden Methoden zijn gegroepeerd in klassen

Soorten opdrachten Toekennings -opdracht: verander het geheugen Aanroep van een andere methode: voer eerst de opdrachten in die methode uit, en ga daarna verder waar je gebleven was en dat kunnen zelf ook weer aanroepen zijn van weer andere methodes... dus de “waar was ik gebleven” administratie is best ingewikkeld!

Voorbeeld C#-programma using System; class Hallo { static void Main ( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); } één klasse ...met één methode ...met twee opdrachten accolades begrenzen klasse, resp. methode

Klasse- en methode-header using System; class Hallo { static void Main ( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); } naam: bedacht door de programmeur naam: bedacht door de programmeur één van de methodes moet Main heten Main

Opdracht: methode-aanroep using System; class Hallo { static void Main( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); } opdrachten: aanroep van andere methoden klasse waaruit de methode komt altijd een punt naam van de methode overige details

Klasse-bibliotheken library-klassen mag je gebruiken... using System; class Hallo { static void Main( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); } als je ze maar aangeeft in welke library ze staan

Methode-header en -aanroep using System; class Hallo { static void Main( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); } methode- header methode- aanroep

Syntax en semantiek Syntax: de vorm van het programma Semantiek: wat het programma betekent compilatie eenheid using ; klasse declaratie library naam

Syntax van klasse-declaratie public private : naam class naam { member }

Syntax van member member type void naam ( type naam ) blok , public private static type void naam ( type naam ) blok ,

Syntax van blok blok declaratie { } opdracht

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

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

Console-applicatie using System; class Hallo2 { static void Main ( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); }

Toekennings-opdracht geeft een waarde aan een variabele Console-applicatie using System; class Hallo2 { static void Main ( ) { Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); } Toekennings-opdracht geeft een waarde aan een variabele

Declaratie introduceert een variabele van een bepaald type Console-applicatie using System; class Hallo2 { static void Main ( ) { string naam; Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); } Declaratie introduceert een variabele van een bepaald type

gebruik van de variabele Console-applicatie using System; class Hallo2 { static void Main ( ) { string naam; Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); Console.WriteLine("Hallo, " + naam + "!"); } gebruik van de variabele

Property van een object Console-applicatie using System; class Hallo2 { static void Main ( ) { string naam; Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); Console.WriteLine("Hallo, " + naam + "!"); Console.WriteLine("met " + naam.Length + " letters."); } Property van een object

Console-applicatie using System; class Hallo2 { static void Main ( ) { string naam; Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); Console.WriteLine("Hallo, " + naam + "!"); Console.WriteLine("met " + naam.Length + " letters."); Console.ReadLine( ); }

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

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

Syntax van declaratie declaratie type naam ; , type naam int string klasse naam int string

Windows-applicatie using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( ) { } using System.Windows.Forms; using System.Drawing; declaratie en toekenning van een variabele met type Form Form scherm; scherm = new Form( ); scherm.Text = "Hallo"; scherm.BackColor = Color.Yellow; scherm.Size = new Size(200,100); aanpassen van attributen Application.Run(scherm); gebruik van de variabele bij aanroep van Run

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

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

Windows-applicatie class HalloWin2 { static void Main ( ) { } HalloForm scherm; scherm = new HalloForm( ); Application.Run(scherm); Form scherm; scherm = new Form( ); Application.Run(scherm); aanroep van de constructor methode subklasse is een gespecialiseerde versie class HalloForm { } : Form definitie van de constructor methode public HalloForm( ) { } this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100);

Windows-applicatie class HalloForm { : Form public HalloForm( ) { } : Form public HalloForm( ) { } this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100); Label groet; groet = new Label( ); groet.Text = "Hallo allemaal"; groet.Location = new Point(30,20); this.Controls.Add(groet);

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

Syntax van opdracht scherm . Size groet . Text naam . Length klasse naam methode naam ( . object expressie property naam = property naam methode naam scherm . Size groet . Text naam . Length object expressie this.Controls . Add Console . WriteLine Application . Run static klasse naam Color . Yellow

Static gewone methoden static methoden static Bewerken een object Bewerken geen object Aanroep: object . methode (…) Aanroep: klasse . methode (…) In de body van de definitie: this is dat object In de body van de definitie: this bestaat niet Voorbeeld: Voorbeeld: Controls.Add(groet); Application.Run(scherm); Constructormethoden zijn nooit static Main is altijd static

Windows-applicatie class HalloForm { : Form public HalloForm( ) { } : Form public HalloForm( ) { } this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100); Label groet; groet = new Label( ); groet.Text = "Hallo allemaal"; groet.Location = new Point(30,20); this.Controls.Add(groet);

Methode-naam, maar geen aanroep! Windows-applicatie class HalloForm { } : Form public HalloForm( ) { } this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100); this.Paint += this.teken; “Event”-property Methode-naam, maar geen aanroep!

Windows-applicatie class HalloForm { } : Form public HalloForm( ) { } this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100); this.Paint += this.teken; } void teken( { Object o, PaintEventArgs pea ) pea. Graphics. DrawString( ); "Hallo!" , new Font("Tahoma", 30) , Brushes.Blue , 10, 10

Windows-applicatie using System.Windows.Forms; class HalloWin3 { static void Main() { HalloForm scherm; scherm = new HalloForm(); Application.Run(scherm); } class HalloForm : Form { public HalloForm() { this.Text = "Hallo"; this.Paint += this.teken; } void teken(object o, PaintEventArgs p) { p.Graphics.DrawString( … );

Game-applicatie using System.Windows.Forms; using Microsoft.XNA.Framework; class HalloWin3 { static void Main() { HalloForm scherm; scherm = new HalloForm(); Application.Run(scherm); } class HalloGame4 { static void Main() { HalloGame spel; spel = new HalloGame(); } spel.Run(); class HalloForm : Form { public HalloForm() { this.Text = "Hallo"; this.Paint += this.teken; } void teken(object o, PaintEventArgs p) { p.Graphics.DrawString( … ); class HalloGame : Game { public HalloGame() { } this.Window.Title = "Hallo"; override void Draw(GameTime t) { }

Form vs. Game void teken(object o, PaintEventArgs pea) { gr.DrawString( ); } Graphics gr; gr = pea.Graphics; "Hallo!" , new Font("Tahoma", 30) , Brushes.Blue , 10, 20 new Point( ) override void Draw(GameTime gt) { } SpriteBatch sb; sb = new SpriteBatch(this.GraphicsDevice); sb.Begin(); sb.DrawString( ); this.Content.Load<SpriteFont>("Spelfont") , "Hallo!" , new Vector2(10, 20) gt.TotalRealTime.Milliseconds, 20) , Color.Blue sb.End();

Content bij een Game Fonts, Achtergrondplaatjes, Geluiden… this.Content.RootDirectory = "Hulpbestanden"; Fonts, Achtergrondplaatjes, Geluiden… this.Content.Load<SpriteFont>("Spelfont") Hulpbestanden / Spelfont.spritefont <?xml version="1.0" encoding="utf-8"?> <XnaContent xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics"> <Asset Type="Graphics:FontDescription"> <Spacing>0</Spacing> <UseKerning>true</UseKerning> <Style>Regular</Style> <CharacterRegions><CharacterRegion><Start> </Start> <End>~</End></CharacterRegion></CharacterRegions> </Asset> </XnaContent> <FontName> </FontName> <Size> </Size> Tahoma 30