Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdAdriaan Mertens Laatst gewijzigd meer dan 9 jaar geleden
1
studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid. De ingenieur is autodidactisch en kan zelf zijn weg vinden. De ingenieur heeft eigen intellect en is geen naprater.
2
Leren programmeren De taal Schrijfwijze (syntax) Grammatica (flow of control) Algoritmiek Hoe doe je iets? Algoritme is onafhankelijk van de taal waarin je dat uitdrukt (wiskunde )
3
Een goede programmeur Precies werken Stelselmatig denken Kent zijn eigen grenzen betreffende: Bevattingsvermogen Abstractievermogen Behouden van overzicht Het overzien van complexiteit
4
Programmeren leren Leren programmeren is onafhankelijk van de taal, waarin je dat leert. De manier van denken telt! Dus niet de taal, waarin dat denken wordt uitgedrukt (wiskunde ). Oefenen, oefenen, oefenen!!!
5
Ik beheers Java…en dan? Binnen een maand C & C++. Binnen een maand Javascript. Binnen een maand iedere procedurele taal. Scripttalen. Echte programmeertalen (gecompileerd). Geïnterpreteerde talen. (bijv. Prolog) Grafische gebruikersinterfaces Databases Netwerken Embedded systems (Mobieltje, robots, enz.)
6
Elementaire taalconstructies: variabelen Variabelen: Int: geheel getal Char: letter Float: gebroken getal: 2.523534535 Double: gebroken getal met meer precisie Array: lijstje van variabelen Final variabelen: onveranderlijk. Static variabelen: straks
7
Werken met variabelen Voorbeeld: Declaratie: int i; Initialisatie: i=5; Of in één keer: int i=5;
8
Arrays Lijstje van variabelen Arrays van char, int, float, enz. Schrijfwijze: Declaratie: int[] anArray; Initialisatie: anArray=new int[10]; Of in één keer: int[] anArray=new int[10];
9
Arrays Array element 5 vullen met het getal 28: anArray[4]=28; Pas op! Arrays zijn Zero based!
10
Arrays in het geheugen anArray[0]anArray[1]anArray[2]… 5345334664…
11
Flow of control: If / Else if(x==5) {opdracht 1;} Else { opdracht 2; } if else Opdracht 1 Opdracht 2 Verder met programma
12
Flow of control: for loop for(int i=0;i<10;i++) { opdracht 1; opdracht 2; } ja nee Opdracht 2; Opdracht 1; Verder met programma i<10? i=i+1;
13
Flow of control: while loop while(i<10) { opdracht 1; opdracht 2; i++; } ja nee Opdracht 2; Opdracht 1; Verder met programma i<10? i++;
14
Methodes Op zichzelf staand stukje code dat uitgevoerd kan worden door het aan te roepen. Algemene schrijfwijze: returntype naam(parameters) {…….body…….. Return iets; }
15
Methodes Voorbeeld: int telOp(int x,int y) { return (x+y); } Aanroep: telOp(3,4); telOp(80,1);
16
Methodes Voorbeeld: int absolute(int x) { if(x<0) {x*=-1;} return (x); } Aanroep: absolute(3); absolute(-80);
17
Zelf uitzoeken Do while loops. If constructies zonder else blok. Switch statement. Bereik van variabelen (overflow!) Boek Internet Medestudenten Leraren
18
OOP: algemene structuur In de jaren ’80… Programma’ s bestonden uit één bestand. Eén programma = 8000 regels code. Foutgevoelig: Veel onderlinge afhankelijkheid. Moeilijk te beheersen / overzien. “Spaghetticode”. Vijftig personen wroeten in één bestand.
19
Object georiënteerd programmeren 1980: C (B. Kerningham, D.M. Richie) Unix 1986: C++ (B. Stroustrup) 1993: Java
20
OO v.s. klassiek programma Klassiek Geheugen Objectgeorienteerd
21
OO: een programma starten Geheugen Intoetsen in prompt: C:>java mijnapp Object mijnapp wordt aangemaakt. Main methode wordt uitgevoerd. main
22
OO: Werking Geheugen Het ene object creëert het andere… main Object 2
23
OO: Werking Geheugen Object 2 maakt object 3 aan. Object 1 maakt object 4 aan.. Enz. enz. main Object 2 Object 3 Object 4
24
OO: Werking Geheugen Object 3 heeft gedaan wat het moest doen en wordt vernietigd… Enz. enz. main Object 2 Object 4
25
OO: inhoud van een object Object: Wessel Constructoren: Wessel() Wessel(int a,float b) Methodes: void PrintVariablesToScreen() int Calculate(int a, int b) Variabelen: int x, float y, enz.
26
OO: constructor Is een methode met dezelfde naam als de klasse. Wordt aangeroepen wanneer een object wordt gemaakt. Heeft geen return waarde (impliciet dus void) Details later
27
OO: variabelen en methodes Methodes kunnen alle variabelen binnen het object direct aanspreken en wijzigen. Constructoren: Wessel() Wessel(int a,float b) Methodes: void PrintVariablesToScreen() int Calculate(int a, int b) Variabelen: int x, float y, enz.
28
OO: variabelen en constructoren Constructoren kunnen alle variabelen binnen Het object direct aanspreken en wijzigen. Constructoren: Wessel() Wessel(int a,float b) Methodes: void PrintVariablesToScreen() int Calculate(int a, int b) Variabelen: int x, float y, enz.
29
OO: methodes en constructoren Constructoren kunnen alle methodes binnen Het object direct Aanroepen. Constructoren: Wessel() Wessel(int a,float b) Methodes: void PrintVariablesToScreen() int Calculate(int a, int b) Variabelen: int x, float y, enz.
30
OO: methodes en methodes Methodes kunnen elkaar aanroepen Constructoren: Wessel() Wessel(int a,float b) Methodes: void PrintVariablesToScreen() int Calculate(int a, int b) Variabelen: int x, float y, enz.
31
OO: Stijl en overzicht public class wessel { /***************VARIABLES*********************/ int x; int y; /***************CONSTRUCTORS****************/ public wessel() { x=10; y=20; } /***************METHODS*********************/ Public void printiets(int a) { x+=a; system.out.println(“ ”+x); }
32
Objecten, classes, en meer... Een klasse Is NIET een object. Zit dus ook niet in het geheugen tijdens de uitvoering van het programma. Definieert “slechts” hoe het object in elkaar zit. Is het “recept” voor een object. Van 1 klasse kan men meerdere objecten aanmaken.
33
Objecten, classes, en meer... recept Taart 1 Taart 2 Taart 3 Taart 4 Klasse (broncode) Object(en) in geheugen
34
Het pointer concept... geheugen Object 1 Object2 x; Object2 y; Object2 z; Int a; Int b; Object2 Variabelen uit object 1 verwijzen naar geheugenlocaties van object2 objecten.
35
Arrays van objecten... geheugen Object 1 Int a; Int b; Object2 Object2[0] Object2[1] Object2[2] Een array in object 1 met pointers naar object2 objecten.
36
OO: een programma starten Geheugen Intoetsen in prompt: C:>java myApp Mijnapp.class wordt door vm gelezen. Object myApp wordt aangemaakt op basis van de klasse mijnapp.java Main methode wordt uitgevoerd. Object:myApp Variabelen constructoren Methodes: main()
37
Voorbeeld: een bedrijf met auto’s Een bedrijf handelt in auto’ s: Auto’s worden ingekocht. Auto’s worden verkocht. Van iedere auto wordt bijgehouden: Inkoopsprijs Verkoopprijs Kleur Type Aantal deuren
38
Voorbeeld: een bedrijf met auto’s Het bedrijf zal maximaal 80 auto’s in beheer hebben. Auto’ s kunnen overgespoten worden. Auto’ s kunnen een zwaardere motor krijgen.
39
De gedachte… geheugen bedrijf Auto 1 Auto 2 Auto 3 Auto 4 Object met Main methode
40
Benodigde objecten Bedrijf Auto Een of ander object met een main methode om de boel op te starten en te laten draaien. Naam: myApp.
41
De klasse bedrijf Bedrijf: Variabelen: Array met auto’ s, grootte: 80 stuks. Methodes: Koop auto (== maak pointer naar een nieuw auto object!!) Verkoop auto (== delete pointer naar auto object in array!!)
42
De klasse auto Auto Variabelen: Inkoopsprijs, Verkoopsprijs, kleur, type, aantal deuren. Methodes: Wijzig kleur Wijzig inkoopsprijs Wijzig verkoopsprijs Wijzig motor Enz.
43
De klasse myApp Variabelen: 1x bedrijf (==Een pointer naar het bedrijf object!!) Methodes: main In main maken we het bedrijf object aan en gaan we auto’s kopen, opknappen en verkopen.
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.