Klassen schrijven Hoofdstuk 10. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe schrijf je een klasse Constructormethodes Public methoden Variabelen.

Slides:



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

Gegevensstructuren: list boxen en lijsten
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
Het type int Tekenen met Java operatoren
Hoofdstuk 6: Controle structuren
Hoofdstuk 2 Hallo, C# !.
Les 2 Basisbouwstenen (deel 1)
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Exceptions Hoofdstuk 17 Hoofdstuk 17.
Herhaling: For, While en Do
Overerving Hoofdstuk 11 Hoofdstuk 11.
Methoden en argumenten
Consoleprogramma’s Hoofdstuk 19. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe consoletoepassingen maken In- en uitvoer bij consoleprogramma’s.
Bestanden Hoofdstuk 18 Hoofdstuk 18.
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.
Oefeningen Hoofdstuk 3.
Visual Basic.
Algoritmiek Object-georiënteerd Programmeren
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
6.1 Inleiding HOOFDSTUK 6 METHODEN
P. 1 Vakgroep Informatietechnologie Structuur Deel II C++ Classes Namespaces Type casting Reference types Constructors en Destructors Memory Management.
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Object georiënteerd programmeren in Alice
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
Visual Basic 2005/2008 OOP in praktijk André Obelink - MCSD, MVP Web: Web: -
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
Testen Hoofdstuk 22. Visual Basic.NET voor studenten2 Inleiding Testen hebben als doel het ontdekken van bugs Het is echter onmogelijk om met testen te.
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
Debuggen Hoofdstuk 9 Hoofdstuk 9.
Les 7 Multiple Document Interface Programmeren met Visual Basic Karl Moens.
Arrays Hoofdstuk 14 Hoofdstuk 14.
Objectgeoriënteerd Ontwerp
Interfaces Hoofdstuk 23 Hoofdstuk 23.
Variabelen en berekeningen
Constructoren Genesis 1:1 Aarde a1 = new Aarde(“Adam”, “Eva”);
Hoofdstuk 6 – Objectgeoriënteerd Programmeren: Overerving
Tweedimensionale arrays
Encapsulatie: Every man is an island upon himself.
Bewerkingen met Strings
Polymorfie Hoofdstuk 24. Visual Basic.NET voor studenten2 Inleiding Polymorfie zorgt ervoor dat een gegeven object verschillende “vormen” kan aannemen.
Polymorphisme en Interfaces: inleiding
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.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
Java & het Web Programma: Contexts Listeners Scope/Attributes Thread safety.
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
Eigen klassen maken A new way of thinking.. Wat? Zie voorbeeld. Zie voorbeeld.
OOP en.NET. Objecten Is geen ‘nieuw’ mysterieus woord Overal om ons heen zien we objecten: – TV – Computer – Auto – Wasmachine – ….
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Objectgeoriënteerd Programmeren (2)
Objectgeoriënteerd Programmeren
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Lists en interfaces
Gameprogrammeren: Overerving
Hoofdstuk 9.2 Strings.
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Overerving in Painter
Gameprogrammeren: Properties
Gameprogrammeren: Game Basics
Gameprogrammeren: Abstracte klassen
Unified Modeling Language
Arjan Egges & Paul Bergervoet
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Klassen schrijven Hoofdstuk 10

Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe schrijf je een klasse Constructormethodes Public methoden Variabelen Properties

Hoofdstuk 10 Visual Basic.NET voor studenten3 Inleiding Wat is een klasse? Wat is een object? Hoe maak je een object? Welke klassen ken je tot hiertoe in VB.NET?

Hoofdstuk 10 Visual Basic.NET voor studenten4 Een klasse Heeft Private member variabelen  Toestand Heeft (een) constructormethode(s)  New Heeft Public methoden  Aanspreekpunt voor de buitenwereld Heeft Properties  Gecontroleerde toegang tot de toestand Heeft Private methoden  Hulpmethoden enkel beschikbaar binnen het object

Hoofdstuk 10 Visual Basic.NET voor studenten5 Een eigen klasse ontwerpen Een programma dat Balloon objecten kan tekenen

Hoofdstuk 10 Visual Basic.NET voor studenten6 UML klassediagram Een klasse wordt weergegeven in een rechthoek met 3 compartimenten  Klassenaam  Member variabelen  Methodes Voor een variabele of methode staan er modifiers  - betekent Private  # betekent Protected  + betekent Public Je krijgt onmiddellijk een beeld van de structuur van de applicatie

Hoofdstuk 10 Visual Basic.NET voor studenten7 Balloon.vb Public Class Balloon Private x As Integer = 50 Private y As Integer = 50 Private diameter As Integer = 20 Private myPen As Pen = New Pen(Color.Black) Public Sub MoveRight(ByVal xStep As Integer) x = x + xStep End Sub Public Sub ChangeSize(ByVal change As Integer) diameter = diameter + change End Sub Public Sub Display(ByVal drawArea As Graphics) drawArea.DrawEllipse(myPen, x, y, diameter, diameter) End Sub End Class Klassenaam begint met hoofdletter Lege lijnen + inspringen (leesbaarheid) 1 klasse per.vb bestand (d.i. niet verplicht, wel goede gewoonte)

Hoofdstuk 10 Visual Basic.NET voor studenten8 Demo Voeg de klasse Balloon toe ‘Add Class’ in het ‘Project menu’

Hoofdstuk 10 Visual Basic.NET voor studenten9 Private variabelen Public Class Balloon Private x As Integer = 50 Private y As Integer = 50 Private diameter As Integer = 20 Private myPen As Pen = New Pen(Color.Black) Public Sub MoveRight(ByVal xStep As Integer) x = x + xStep End Sub Public Sub ChangeSize(ByVal change As Integer) diameter = diameter + change End Sub Public Sub Display(ByVal drawArea As Graphics) drawArea.DrawEllipse(myPen, x, y, diameter, diameter) End Sub End Class Beschrijven de toestand van elk Balloon object Zijn niet toegankelijk voor de buitenwereld Variabelen Public maken is een slechte programmeerstijl

Hoofdstuk 10 Visual Basic.NET voor studenten10 Public methoden Public Class Balloon Private x As Integer = 50 Private y As Integer = 50 Private diameter As Integer = 20 Private myPen As Pen = New Pen(Color.Black) Public Sub MoveRight(ByVal xStep As Integer) x = x + xStep End Sub Public Sub ChangeSize(ByVal change As Integer) diameter = diameter + change End Sub Public Sub Display(ByVal drawArea As Graphics) drawArea.DrawEllipse(myPen, x, y, diameter, diameter) End Sub End Class Beschrijven het gedrag van elk Balloon object Vormen de connectie, interface met de buitenwereld Zeer vaak manipuleren Public methodes de interne toestand van een object op een gecontroleerde manier

Hoofdstuk 10 Visual Basic.NET voor studenten11 Inkapseling Informatie verbergen Engels: encapsulation Zeer belangrijk OO principe! Elk object heeft een toestand die verborgen blijft voor de buitenwereld Elk object vertoont een bepaald gedrag die deze toestand beïnvloedt De buitenwereld kan enkel het object manipuleren via Public  Methodes  Properties

Hoofdstuk 10 Visual Basic.NET voor studenten12 Inkapseling Public Class Balloon Private x As Integer = 50 Private y As Integer = 50 Private diameter As Integer = 20 Private myPen As Pen = New Pen(Color.Black) Public Sub MoveRight(ByVal xStep As Integer) x = x + xStep End Sub Public Sub ChangeSize(ByVal change As Integer) diameter = diameter + change End Sub Public Sub Display(ByVal drawArea As Graphics) drawArea.DrawEllipse(myPen, x, y, diameter, diameter) End Sub End Class Standpunt van de ontwerper van de klasse

Hoofdstuk 10 Visual Basic.NET voor studenten13 Inkapseling Public Class Balloon Private x As Integer = 50 Private y As Integer = 50 Private diameter As Integer = 20 Private myPen As Pen = New Pen(Color.Black) Public Sub MoveRight(ByVal xStep As Integer) x = x + xStep End Sub Public Sub ChangeSize(ByVal change As Integer) diameter = diameter + change End Sub Public Sub Display(ByVal drawArea As Graphics) drawArea.DrawEllipse(myPen, x, y, diameter, diameter) End Sub End Class Standpunt van de gebruiker van de klasse

Hoofdstuk 10 Visual Basic.NET voor studenten14 Properties Zorgen voor een gecontroleerde toegang tot member variabelen  Lezen: get access  Schrijven: set access Dit lijkt alsof je rechtstreeks member variabelen verandert, maar je doet dit via (property-)methoden! name = TextBox1.Text TextBox1.Visible = False

Hoofdstuk 10 Visual Basic.NET voor studenten15 Voorbeeld Private Sub DisplayXButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles DisplayXButton.Click TextBox1.Text = CStr(myBalloon.XCoord) End Sub Private Sub ChangeXButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles ChangeXButton.Click myBalloon.XCoord = CInt(TextBox1.Text) myBalloon.Display(drawArea) End Sub

Hoofdstuk 10 Visual Basic.NET voor studenten16 Property definitie Properties verschijnen in UML op dezelfde locatie als de methoden Public Property XCoord() As Integer Get Return x End Get Set(ByVal value As Integer) x = value End Set End Property

Hoofdstuk 10 Visual Basic.NET voor studenten17 ReadOnly of WriteOnly Property Public ReadOnly Property XCoord() As Integer Get Return x End Get End Property Public WriteOnly Property XCoord() As Integer Set(ByVal value As Integer) x = value End Set End Property

Hoofdstuk 10 Visual Basic.NET voor studenten18 Waarom properties? De interne voorstelling wordt verborgen  Bv: stel dat je ipv met een (x,y) stelsel met een polair assenstelsel (r,θ) zou werken, dan moeten de property methods de omrekening doen naar x en y  Onderscheid tussen get en set is mogelijk  Toegangscontrole is mogelijk, bv enkel x en y tussen -100 en 100 is toegestaan (x,y) r θ

Hoofdstuk 10 Visual Basic.NET voor studenten19 Methode of property? Methode = actie, gedrag, vaardigheid, …  Naam = werkwoord Property = toestand, informatie, eigenschap, …  Naam = zelfstandig naamwoord Soms is het onderscheid een kwestie van smaak en/of stijl  ChangeColor() in plaats van Color

Hoofdstuk 10 Visual Basic.NET voor studenten20 Constructor Speciale methode om een object te creëren Deze methode heeft de naam New Parameters zijn mogelijk Als je geen constructor definieert, dan is er toch (impliciet) een default constructor zonder parameters. Deze initialiseert alle member variabelen op hun default waarde Van zodra je zelf één (of meer) constructors schrijft, dan vervalt deze default constructor

Hoofdstuk 10 Visual Basic.NET voor studenten21 Constructor: voorbeeld Public Sub New (ByVal initialX as Integer, _ ByVal initialY as Integer, _ ByVal initialDiameter as Integer) x = initialX y = initialY diameter = initialDiameter End Sub Dim balloon1 As Balloon = New Balloon(10, 10, 50) ' wanneer compileert dit niet? Dim balloon2 As Balloon = New Balloon()

Hoofdstuk 10 Visual Basic.NET voor studenten22 Private methoden Interne hulpfuncties (binnen het object) Als je deze methodes binnen andere methodes van het object gebruikt, hoef je geen object ervoor te zetten. Eventueel mag het woord Me Public Sub SomeMethod() Dim area As Integer... area = CalcArea()... area = Me.CalcArea() End Sub

Hoofdstuk 10 Visual Basic.NET voor studenten23 Bewerkingen op objecten De bewerkingen op Primitieve types liggen vast De bewerkingen op Objecten worden bepaald door de Methodes die op deze objecten bestaan

Hoofdstuk 10 Visual Basic.NET voor studenten24 Objecten vernietigen Garbage collection is een proces dat uitgevoerd wordt door de “Common Language Runtime” van.NET Het zorgt ervoor dat niet meer gebruikte objecten worden verwijderd, zodat het geheugen weer vrijkomt voor nieuwe objecten Je kan als programmeur een hint geven dat je een object niet meer nodig hebt door aan de variabele de waarde Nothing toe te kennen Dim myBalloon as Balloon myBalloon = New Balloon(10,10,10) … myBalloon = New Balloon(20,10,30) Dit maakt het eerste object niet meer toegankelijk, dus kan verwijderd worden

Hoofdstuk 10 Visual Basic.NET voor studenten25 Shared methoden en properties Soms heeft het logisch gezien geen nut om van een klasse objecten te maken Typische voorbeelden zijn bibliotheken van functies De methoden en properties spelen dan op klasse niveau ipv op object niveau Sleutelwoord: Shared

Hoofdstuk 10 Visual Basic.NET voor studenten26 Shared methoden en properties Hoe zou je zelf de kleuren Black en White definiëren in de klasse Color? Public Class Math Public Shared Function Sqrt(ByVal value As Double) As Double... End Function End Class... x = Math.Sqrt(64)... Imports System.Math... x = Sqrt(64)...