De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid.

Verwante presentaties


Presentatie over: "Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid."— Transcript van de presentatie:

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: 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]… …

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.


Download ppt "Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid."

Verwante presentaties


Ads door Google