Les 2: Classes, Instances, Constructors, Static

Python intro
Programming basics-II
Les 3 / Week 7a
Classes, Instances, Constructors, Static
CSD-IV
Les 2
1 / 43
volgende
Slide 1: Tekstslide
Applicatie- en mediaontwikkelaarMBOStudiejaar 3

In deze les zitten 43 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 30 min

Onderdelen in deze les

Python intro
Programming basics-II
Les 3 / Week 7a
Classes, Instances, Constructors, Static
CSD-IV
Les 2

Slide 1 - Tekstslide

Deze slide heeft geen instructies

Onderwerpen
  • Classes
  • Instances
  • Reference- & Value types
  • Constructors
  • Oefenen (praktisch)
  • Static

Slide 2 - Tekstslide

Deze slide heeft geen instructies

Eerst: Kennis ophalen

Slide 3 - Tekstslide

Deze slide heeft geen instructies

Wat weet je over:
Classes / Klassen

Slide 4 - Woordweb

Deze slide heeft geen instructies

Classes
  • Een soort "eigen datatype" met properties en methods
  • Beschrijft één structuur in onze applicatie
  • De naam van een klasse is een zelfstandig naamwoord, bijv.: Product, Category, Person, Printer, Device, AppDbContext

Slide 5 - Tekstslide

Deze slide heeft geen instructies

Classes kunnen werking 'overerven'
Erven (Engels: to inherit)


  • Neemt eigenschappen en methodes van andere klasse over
  • Laat ons verder bouwen op werk van anderen

Slide 6 - Tekstslide

Deze slide heeft geen instructies

Wat weet je over:
Instances / Instanties

Slide 7 - Woordweb

Deze slide heeft geen instructies

De instantie van een klasse = Object

Slide 8 - Tekstslide

Deze slide heeft geen instructies



De instantie van een klasse (Object)


  • Is een reference type
  • Alle variabelen "wijzen" naar hetzelfde object
  • Alle objecten zijn reference types

Slide 9 - Tekstslide

Deze slide heeft geen instructies


Naast object zijn alle standaard datatypes 'value types'


  • int, float, bool, etc...
  • Er wordt een kopie van gemaakt bij iedere verwijzing

Slide 10 - Tekstslide

Deze slide heeft geen instructies

Slide 11 - Tekstslide

Deze slide heeft geen instructies

   Voorbeeld uitwerking: PersonDiceApp
Demonstreert:
  • Classes
  • Inheritance
  • Static
  • Methodes
  • Psuedo-willekeurige getallen genereren
📸

Slide 12 - Tekstslide

Deze slide heeft geen instructies

Waarom steeds theorie herhalen?
  1. Deze termen herkennen en op basis niveau kunnen uitleggen
  2. Daarna hier in de praktijk zelf meer over leren

Slide 13 - Tekstslide

Deze slide heeft geen instructies

Wat zijn goede beschrijvingen voor de term "klasse" in programmeren.
(2 antwoorden mogelijk)
A
Een instantie van een object
B
Een blauwdruk voor een object
C
Een plek in het geheugen waar een object leeft
D
Een soort eigen datatype

Slide 14 - Quizvraag

Deze slide heeft geen instructies

Wat is geen onderdeel van een klasse?
A
Property
B
Method
C
Program
D
Constructor

Slide 15 - Quizvraag

Deze slide heeft geen instructies

Beschrijf 'instantie' in je eigen woorden

Slide 16 - Open vraag

Deze slide heeft geen instructies

Wat is de waarde in person2.Name na deze code?
A
Jane
B
Joe
C
Janette
D
20

Slide 17 - Quizvraag

Deze slide heeft geen instructies

Wat is myAge na deze code?
A
19
B
20

Slide 18 - Quizvraag

Deze slide heeft geen instructies

myAge is na deze code nog steeds 19. Wat is de best passende
verklaring?
A
Omdat '++' alleen werkt op dezelfde variabele
B
Omdat het int datatype een 'value type' is
C
Omdat je geen '+= 1' gebruikt
D
Omdat het int datatype een 'reference type' is

Slide 19 - Quizvraag

Deze slide heeft geen instructies

Value types
Reference types
object
int
kopieert geheugen waarde
verwijst naar geheugenadres
string
bool
instantie
float
double

Slide 20 - Sleepvraag

Deze slide heeft geen instructies

Wat is hierna de waarde van person2.HighestAge?
A
20
B
19
C
Niets
D
person2.HighestAge geeft een error

Slide 21 - Quizvraag

Deze slide heeft geen instructies

Herhaling: Een class maken
Van Sjabloon naar Echte Telefoon

Slide 22 - Tekstslide

Deze slide heeft geen instructies

Herhaling: Een class maken
Scenario: Je werkt bij een Telefoonwinkel 📱
De situatie:
  • Je manager vraagt je een app te maken voor de telefoonwinkel
  • De winkel heeft 200 telefoons op voorraad
  • Klanten willen kunnen zoeken en vergelijken
  • Medewerkers moeten voorraad kunnen bijhouden

Slide 23 - Tekstslide

Deze slide heeft geen instructies

Herhaling: Een class maken
De Chaos zonder class:







Stel je voor: je hebt 200 telefoons. Hoeveel variabelen heb je dan nodig?"

Slide 24 - Tekstslide

Deze slide heeft geen instructies

Herhaling: Een class maken
📱voor de telefoonwinkel
Daarvoor moeten we bedenken: Welke eigenschappen zijn interessant om aan de klasse toe te voegen?


Dat gaan we nu samen uitzoeken aan de hand van 2 vragen:
  • "Als klant in een telefoonwinkel, welke dingen wil je weten over een telefoon voordat je koopt?"
  • "Als medewerker, wat moet je kunnen doen met een telefoon in het systeem?"

Slide 25 - Tekstslide

Deze slide heeft geen instructies

Als klant in een telefoonwinkel, welke dingen wil je weten over een telefoon voordat je koopt?

Slide 26 - Woordweb

Deze slide heeft geen instructies

Als medewerker, wat moet je kunnen doen met een telefoon in het systeem?

Slide 27 - Woordweb

Deze slide heeft geen instructies

Herhaling: Een class maken
📱voor de telefoonwinkel
Conventies:
  • Klassenaam in UpperCamelCase (PascalCase) - Tip: Smartphone is één woord
  • Klassenaam het liefst in het Engels
  • Iedere klasse in een eigen C# bestand, dat dezelfde naam heeft als de klasse

Slide 28 - Tekstslide

Deze slide heeft geen instructies

Herhaling: Een class maken
📱voor de telefoonwinkel
  1. Maak een class als sjabloon voor een smartphone
  2. Instantiëer in de Main-methode in Program.cs 4 objecten:


  3. Laat de waardes van de 4 instanties zien met Console.WriteLine
  • Jouw smartphone
  • De smartphone van een van je klasgenoten
  • Zwarte Google Pixel 7
  • Witte iPhone 10
(Verzin zelf waardes voor de voorraad)

Slide 29 - Tekstslide

Deze slide heeft geen instructies

Herhaling: Een class maken
📱voor de telefoonwinkel

Laten we eens kijken naar de klassen die jullie gemaakt hebben. Wat kunnen we van elkaar leren?

Slide 30 - Tekstslide

Deze slide heeft geen instructies

Slide 31 - Tekstslide

Deze slide heeft geen instructies

Constructors

Slide 32 - Tekstslide

Deze slide heeft geen instructies

Wat weet je over
Constructors

Slide 33 - Woordweb

Deze slide heeft geen instructies

Waarom een constructor handig is
Situatie zonder constructor:
Oeps, vergeten de HealthPoints aan te geven

Slide 34 - Tekstslide

Deze slide heeft geen instructies

Waarom een constructor handig is
Situatie met constructor:
De constructor dwingt af dat we waardes meegeven
Op de juiste manier de constructor gebruiken om een Person te maken:

Slide 35 - Tekstslide

Deze slide heeft geen instructies

Meerdere constructors
Door meerdere constructors te maken, kun je objecten met verschillende standaard waarden laten instantiëren.
We noemen dit 'constructor overloading'.

Zo is ook 'method overloading' mogelijk
(meerdere methodes met dezelfde naam, maar verschillende parameters)

Slide 36 - Tekstslide

Deze slide heeft geen instructies

Wat is waar over de 'constructor'?
(2 antwoorden mogelijk)
A
Maakt methodes beschikbaar
B
Kan eigenschappen instellen
C
Bouwt een instantie van een klasse op
D
is altijd static

Slide 37 - Quizvraag

Deze slide heeft geen instructies

Waaraan herken je een constructor?
(2 antwoorden mogelijk)
A
Heeft geen return type
B
Heeft altijd parameters
C
Er staat 'constructor' voor
D
Heeft altijd dezelfde naam als de klasse

Slide 38 - Quizvraag

Deze slide heeft geen instructies

Slide 39 - Tekstslide

Deze slide heeft geen instructies

Beschrijf in je eigen woorden waarom je een constructor zou gebruiken.

Slide 40 - Open vraag

Hint: Waarom zou je jouw collega's niet zelf alle eigenschappen handmatig laten instellen.

Voorbeeld van een goed antwoord: wanneer we willen forceren dat het object op een bepaalde manier wordt aangemaakt
Er kunnen meerdere constructors zijn en zelfs meerdere methodes met dezelfde naam
A
Waar
B
Niet waar

Slide 41 - Quizvraag

Deze slide heeft geen instructies

Slide 42 - Tekstslide

Deze slide heeft geen instructies

Wat MOET er verschillen tussen methodes met dezelfde naam?
A
De naam
B
De access modifier
C
De constructor
D
De parameters

Slide 43 - Quizvraag

Deze slide heeft geen instructies