De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 2: Zelf klassen maken © 2014, Gertjan Laan, versie 2.

Verwante presentaties


Presentatie over: "Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 2: Zelf klassen maken © 2014, Gertjan Laan, versie 2."— Transcript van de presentatie:

1 Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 2: Zelf klassen maken © 2014, Gertjan Laan, versie 2

2 2 Objectgeoriënteerde taal Java is een objectgeoriënteerde programmeertaal Objecten spelen een belangrijke rol In een objectgeoriënteerde taal probeer je dingen uit de werkelijkheid in software vorm te geven door middel van objecten

3 3 Objecten Een object kan een ding zijn dat je kunt vasthouden Een object kan een abstract begrip zijn Voorbeelden van objecten: Een persoon Een geboortedatum Een adres Een bankrekening

4 4 Klassen Je kunt pas objecten maken als je een klasse hebt Een klasse bestaat doorgaans uit drie gedeelten: 1. Een kop, met daarin de naam van de klasse 2. Attributen (zodat objecten gegevens kunnen onthouden) 3. Methoden (zodat je objecten iets kunt laten doen)

5 5 Waaruit bestaat een klasse? Naam van de klasse Attributen Methoden

6 6 Een klasse voor leerlingen Voorbeeld: Een klasse voor objecten waarin je de gegevens van een leerling kunt opslaan Welke gegevens behoren tot de klasse? Van elke leerling bijvoorbeeld: de naam de klas het geslacht en leerlingnummer Vraag: hoe maak je zo’n klasse?

7 7 1. Naam van de klasse Een voor de hand liggende naam voor de klasse is Leerling In Java komt de kop van de klasse er zo uit te zien: public class Leerling Het woord public duidt erop dat deze klasse voor algemeen gebruik is

8 8 Body van de klasse Behalve de kop bestaat elke klasse uit een body met accolades er omheen: public class Leerling {... }

9 9 2. Attributen van de klasse In de body komen de attributen en methoden Eerst de attributen Het zijn er 4 Ik geef ze de volgende namen: naam, klas, geslacht en nummer Voordat je de attributen in de klasse kunt plaatsen moet je eerst van elk attribuut het type vaststellen

10 10 Type String Java kent het type String voor een rijtje tekens En voor gehele getallen het type int naam, klas en geslacht zijn van het type String nummer is van het type int

11 11 Klasse met attributen public class Leerling { private String naam; private String klas; private String geslacht; private int nummer;... } Het woord private geeft aan dat deze gegevens niet openbaar zijn Je kunt ze niet zomaar opvragen of wijzigen

12 12 Broncode De klasse zoals die nu is kun je intikken in een editor (tekstverwerker) De tekst die je intikt heet de broncode van de klasse Deze broncode moet je naar bytecode laten vertalen (to compile - compileren) Broncode intikken en compileren kun je in BlueJ doen

13 13 Objecten maken Als je een klasse hebt ingetikt en deze gecompileerd is kun je er objecten van maken Zoveel je wilt Een nieuw object maak je met het woord new: new Leerling() In BlueJ doe je dit door uit een menu new Leerling() te kiezen

14 14 Namen van objecten Vaak is het handig elk object een eigen naam te geven, bijvoorbeeld: leerling1 = new Leerling() leerling2 = new Leerling() Met behulp van deze namen kun je de objecten uit elkaar houden De naam van een object heet ook wel een referentie naar dat object

15 15 Defaultwaarden van attributen De twee Leerling -objecten zijn nog leeg De attributen bevatten nog geen geschikte gegevens (waarden) Wel krijgen ze automatisch een defaultwaarde Een String krijgt null als defaultwaarde Een int krijgt 0 als defaultwaarde

16 16 De twee objecten naam=null klas=null geslacht=null nummer=0 naam=null klas=null geslacht=null nummer=0 leerling1 leerling2

17 17 Attributen een waarde geven Aan zulke objecten met alleen de waarden null en 0 erin heb je niet veel De attributen moeten een zinvolle waarde krijgen Dat kan op verschillende manieren Een veel gebruikte manier is: Geef de klasse een constructor

18 18 Een constructor Een constructor is een soort methode die een object levert van de klasse waar hij constructor van is Een constructor heeft altijd dezelfde naam als de klasse De constructor van de klasse Leerling heet Leerling() en levert een Leerling -object Constructor van de klasse Schildpad heet Schildpad() en levert een Schildpad - object

19 19 Argumenten Een constructor kan argumenten hebben Via de argumenten kun je de attributen een andere waarde dan de default- waarde geven

20 20 Zelf constructor maken public class Leerling { private String naam; private String klas; private String geslacht; private int nummer; // Constructor public Leerling( String nm, String kl, String gesl, int nr ) { naam = nm; klas = kl; geslacht = gesl; nummer = nr; }

21 21 De constructor (kop) // Constructor public Leerling( String nm, String kl, String gesl, int nr ) { naam = nm; klas = kl; geslacht = gesl; nummer = nr; }

22 22 De constructor (body) // Constructor public Leerling( String nm, String kl, String gesl, int nr ) { naam = nm; klas = kl; geslacht = gesl; nummer = nr; }

23 23 Aanroep van de constructor new Leerling( "Jaap","5B","m",101 ) Aanroep van constructor 4 actuele argumenten

24 24 Wat gebeurt bij aanroep? public class Leerling { private String naam ; private String klas ; private String geslacht ; private int nummer ; // Constructor public Leerling( String nm, String kl, String gesl, int nr ) { naam = nm; klas = kl; geslacht = gesl; nummer = nr; } " Jaap " " 5B " "m""m" formele argumenten

25 25 Meer objecten maken Op dezelfde manier kun je van deze klasse meer objecten maken leerling1 = new Leerling( “Filip","5B", “v",102 ) leerling2 = new Leerling( “Mathilde","5A, "v",104 )

26 26 De twee objecten naam= " Filip " klas= " 5B " geslacht= " v " nummer=102 naam = " Mathilde " klas= " 5A " geslacht= " v " nummer=104 leerling1 leerling2

27 27 Methoden Ik kan nu objecten maken … … en gegevens in de attributen opbergen Maar verder nog niets Als je wilt dat je iets met objecten kunt doen iets opvragen, iets wijzigen, een opdracht geven... dan moet je methoden maken

28 28 Getters Een getter is een methode waarmee je de waarde van een attribuut opvraagt De naam van een getter begint altijd met het woord get Gevolgd door de naam van het attribuut met een hoofdletter Bijvoorbeeld: getNaam() getKlas() getGeslacht() getNummer()

29 29 De methode getNaam() public String getNaam() { return naam; } De methode heeft als retourwaarde een String De retourwaarde is in dit geval de waarde van het attribuut naam

30 30 De methode getKlas() public String getKlas() { return klas; } De methode heeft als retourwaarde een String De retourwaarde is in dit geval de waarde van het attribuut klas

31 31 De methode getGeslacht() public String getGeslacht() { return geslacht; } De methode heeft als retourwaarde een String De retourwaarde is in dit geval de waarde van het attribuut geslacht

32 32 De methode getNummer() public int getNummer() { return nummer; } De methode heeft als retourwaarde een int De retourwaarde is de waarde van het attribuut nummer

33 33 De klasse tot nu toe Broncode van de klasse Leerling in Word-documentklasse Leerling Ik heb nu een klasse om gegevens van leerlingen op te bergen en deze gegevens op te vragen

34 34 Klassediagram van Leerling Leerling naam klas geslacht nummer getNaam() getKlas() getGeslacht() getNummer()

35 35 Sportweek Tijdens de sportweek doen teams van twee leerlingen mee Voor de leerlingen gebruik ik de klasse Leerling Voor de teams maken ik een nieuwe klasse met de naam Team TeamLeerling

36 36 Associatie Om aan te geven dat de klasse Team en de klasse Leerling iets met elkaar te maken hebben teken je een lijn tussen de klassen We zeggen dat er een associatie is tussen de klassen TeamLeerling

37 37 Naam van associatie Om duidelijk te maken wat de associatie inhoudt zet je een toelichting bij de lijn Een team bestaat uit leerlingen In dit geval bestaat een team uit precies twee leerlingen TeamLeerling bestaat uit TeamLeerling bestaat uit 2

38 38 De klasse Team Ik maak een klasse voor een team van twee leerlingen De klasse Team heeft twee attributen: de twee teamleden public class Team { private Leerling lid1 ; private Leerling lid2 ;... }

39 39 Constructor public class Team { private Leerling lid1 ; private Leerling lid2 ; public Team() { lid1 = new Leerling( “Filip","5B",“v",102 ) lid2 = new Leerling( “Mathilde","5A, "v",104 ) } }

41 41 Andere constructor public class Team { private Leerling lid1 ; private Leerling lid2 ; public Team( Leerling lid1, Leerling lid2 ) { this.lid1 = lid1; this.lid2 = lid2; } }

42 42 Een nieuw team maken leerling1 = new Leerling("Filip","5B",“v",102) leerling2 = new Leerling("Mathilde","5A, "v",104) team1 = new Team(leerling1, leerling2);

43 43 Nog een nieuw team maken leerling3 = new Leerling("Suske","5B","m",212) leerling4 = new Leerling("Wiske","5B,"v",213) team2 = new Team(leerling3, leerling4);

44 44 this public Team( Leerling lid1, Leerling lid2 ) { this.lid1 = lid1; this.lid2 = lid2; } In deze broncode staat this.lid1 en lid1 this.lid1 is het attribuut lid1 lid1 zonder this is het argument lid1

45 45 Attribuut en argument public class Team { private Leerling lid1 ; private Leerling lid2 ; public Team( Leerling lid1, Leerling lid2 ) { this.lid1 = lid1; this.lid2 = lid2; } }

46 46 Dit alles en meer In hoofdstuk 2 van OO-programmeren in Java met BlueJ

47 47 Einde


Download ppt "Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 2: Zelf klassen maken © 2014, Gertjan Laan, versie 2."

Verwante presentaties


Ads door Google