Upload
ida-beckers
View
277
Download
0
Embed Size (px)
Citation preview
Hoofdstuk 2
Objectgeoriënteerde basisbegrippen
Nog meer over klassen en het begrip overerving
nieuwe map -> Mensen op eerste bladzijde:
“ Alle mensen hebben in het begin twee armen, twee benen, twee ogen, een neus en een mond. Ze zijn ofwel mannelijk of vrouwelijk, ze hebben een naam, een paard met een naam en verschillende voorkeuren van whiskey. Mensen kunnen antwoorden met hun naam, als iemand er om vraagt.”
Nog meer over klassen en het begrip overerving
lichaamsonderdelen -> variabelen -> wijziging van waarden tijdens verhaal geslacht, naam, naam van het paard en whiskey :onbepaald -> niet alle mensen zijn gelijk -> worden gespecificeerd tijdens het plot een mens heeft een een zekere manier van handelen heeft, van interactiviteit -> utility methode in UML:
Nog meer over klassen en het begrip overerving
Nog meer over klassen en het begrip overerving
Nog meer over klassen en het begrip overerving
Nog meer over klassen en het begrip overerving
Alternatief = accessor getNaam( ) : String
Nog meer over klassen en het begrip overerving
Nog meer over klassen en het begrip overerving
Nieuwe klasse :SlechterikVerder bladeren in de map Mensen -> Slechterik is een onderdeel van Mensen
Slechteriken zijn gebaseerd op het begrip van mensen. Ze zijn identiek maar hebben een paar bijkomende kwaliteiten, namelijk: ze hebben een snor, een hoed, een zekere uitzicht, een bepaalde graad van dronkenschap en een zeker aantal jonkvrouwen in hun macht. Een standaard slechterik heeft een gemeen uitzicht, is in het begin van de dag nuchter en heeft nog geen jonkvrouwen kunnen versieren.
Nog meer over klassen en het begrip overerving
Slechterik breidt het begrip Mensen uitSlechterik is een subklasse van Mensenovererving -> Slechterik erft alle eigenschappen en
methoden over van Mensen
-> een Slechterik is een Mensin UML-voorstelling:
Nog meer over klassen en het begrip overerving
Nog meer over klassen en het begrip overerving
methoden en attributen die niet in Slechterik gewijzigd worden -> niet herhaald in UML van Slechterik
Nog meer over klassen en het begrip overerving
jonkvrouw :Mensen -> omdat uitgever moet weten wat een jonkvrouw is als een slechterik een jonkvrouw aan de haak slaagt.Uitzicht van slechterik is bepaald+ 3 methoden om snode plannen te kunnen uitvoerenmethode 1:
Telkens wanneer het hoofd (main) plot zegt dat de slechterik een whiskey drinkt, dan stijgt zijn niveau van dronkenschap met een eenheid.
Nog meer over klassen en het begrip overerving
Manier van handelen van een slechterik+ wijziging van het attribuut dronkenschap=> veel ontwikkelen over personage in de klasse zonder
iets aan het hoofdplot te moeten doen
Nog meer over klassen en het begrip overerving
1e : naam van methode geschreven2e : wat gebeurt er als de methode wordt aangeroepen in het hoofdprogrammanaam = drinkWhiskey -> dronkenschap + 1Slechteriken -> stevige drinkers => hoe dronken nu al ?=> methode 2:
Als iemand een slechterik vraagt hoe dronken hij is, dan zal de slechterik altijd antwoorden met zijn niveau van dronkenschap.
Nog meer over klassen en het begrip overerving
methode met return-waarde :type wordt erbij vermeld omdat uitgever niet van verassingen houdt.
Nog meer over klassen en het begrip overerving
voor goed sluitend plot -> slechterik kan jonkvrouw aan de haak slaan.=> methode 3: info over iemand anders (nl :jonkvrouw) nodigwelke jonkvrouw -> open laten -> flexibiliteit
Als de slechterik verondersteld wordt een jonkvrouw aan de haak te slaan, sla dan de gespecificeerde jonkvrouw aan de haak, en verhoog vervolgens het aantal aan de haak geslagen jonkvrouwen met een eenheid. Druk dan af: “De slechterik heeft (de gespecificeerde jonkvrouw) aan de haak geslagen!”
Nog meer over klassen en het begrip overerving
specificatie van jonkvrouw -> in plotEunice specificeert dat jonkvrouw een naam zal hebben -> welke: laterVOERUIT-> info uit methode -> wordt afgedrukt als gebeurtenis in boek inputparameter = argument : jonkvrouw : Mensen -> waarom?
Als in plot zou staan: slechterik.SlaagAanDeHaak( )
=> wie wordt aan de haak geslagen?
: Mensen -> wat aan de haak geslagen wordt is een mens
=> voor uitgever
Nog meer over klassen en het begrip overerving
Nog meer over klassen en het begrip overerving
setJonkvrouw ( jonkvrouw )-> om uitgever content te stellen
-> enkel jonkvrouw gebruiken als de argument jonkvrouw
= het attribuut jonkvrouw isaantalJonkvrouwen + 1VOERUIT -> “ “ -> letterlijk op scherm
-> jonkvrouw.watIsUwNaam( ) ->
methode van een object -> niet letterlijk!
Overzicht:
Nog meer over klassen en het begrip overerving
Dit is het hoofd (main) plot van Geweerschoten in de Old West Saloon: er is een Western Stad, genaamd Sweaty Post. Sweaty Post heeft één sheriff, twee saloons en vijf ruziemakers. Er is een mannelijke slechterik met de naam Maurice. Maurice heeft een zwarte hoed, een rode snor en heeft een paard dat “Beer Gut” genoemd wordt. Maurice drinkt graag Jack Daniels whiskey. Mary is een vrouwelijk mens. Haar paard noemt “Midnight” en ze verkiest haar whiskey niet aangelengd. In ons verhaal, drinkt Maurice vanaf het begin whiskey. Hij laat dan iedereen weten hoe dronken hij is en slaat dan de vrouw Mary aan de haak.
Nog meer over klassen en het begrip overerving
.
Nog meer over klassen en het begrip overerving
Tijdens instantiatie -> sommige inhouden van attributen worden vastgelegd -> zie constructors=> veel vertellen en weinig zeggen in hoofdplothoofdplot = verzameling van referenties naar objecten -> referenties zijn naar de klassenbehandeling op zo laag mogelijk niveauVoordelen:
1. Wijzigingen -> op 1 plaats:
vb vriendelijkere slechterik -> in constructor of
klasse Slechterik vriendelijker maken of nieuwe
klasse VriendelijkeSlechterik
Nog meer over klassen en het begrip overerving
Voordelen:
2. Interactiviteit is mogelijk:
personages leven in klassen -> virtueel Sweaty
Post mogelijk -> lezers van haar website kunnen
eigen acties verwoorden -> personages
reageren hierop in verscheidene manieren,
overeenkomstig wat is vastgelegd in hun
klassen.
=>het Wilde Westen komt terug tot levenuitgever = compiler