OOP oefen opdrachten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fullstack developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie werken? Voor een mooi softwarebedrijf in omgeving Gouda zijn wij op zoek naar versterking op de afdeling Software Development! Als Fullstack react.js developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Onderdelen van jouw functie: Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook

Bekijk vacature »

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET Developer start jij in een team met 15 developers. In het team is er genoeg senioriteit om ervoor te zorgen dat jij de juiste begeleiding krijgt. Jij begint als eerst alle software pakketten en processen eigen te maken. Vervolgens ga jij deze software programmeren, onderhouden en testen. Ook ga jij research doen naar nieuwe mogelijkheden en zoek jij uit hoe je dit kan implementeren. Jullie werken intern op project basis en afhankelijk van het project werken jullie wel of niet iedere ochtend met een standup. Je gaat als Full stack developer aan de slag en gaat

Bekijk vacature »

Front end developer Zorgplatform

Functie Jij als Front end ontwikkelen zult komen te werken samen met 1 PHP ontwikkelaar, 1 Python developer en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De Marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult als Front ender dus voornamelijk bezig zijn met het verbeteren van onze interfaces op onze verschillende producten. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere

Bekijk vacature »

Junior Software developer

Functie Als junior .NET ontwikkelaar start jij in een compact team met drie ervaren .NET ontwikkelaars. Wij werken op projectbasis en begeleiden zelf het hele traject van A tot Z. Wij bieden jou dan ook een brede functie aan met veel technische uitdaging! Ons traject ziet er als volgt uit: 1) Wij analyseren de behoefte van onze klant 2) Wij werken de behoefte uit en vertalen dit naar technische werkzaamheden en maken een uren/kosten schatting; 3) Wij gaan aan de slag met het ontwikkelen van het product met directe feedback van de klant, zodat datgene gerealiseerd wordt, wat gewenst is;

Bekijk vacature »

Software developer - C Sharp

Functie omschrijving Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Wij zijn voor een leuke opdrachtgever in omgeving Naaldwijk op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Wij zoeken iemand die breed inzetbaar is en die aan veel verschillende applicaties wilt werken. Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind

Bekijk vacature »

Full-stack Developer

As a Full-stack developer at KUBUS, you will develop the (web)applications and services of BIMcollab. You will work on both the front- and back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual developer you can have an impact and really make a difference. Our development team consists of over 40 developers, testers, scrum masters and product owners, divided over

Bekijk vacature »

SQL developer

Functieomschrijving Voor een erkende werkgever in de omgeving van Tilburg zijn wij op zoek naar een ervaren SQL ontwikkelaar. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt er als volgt uit te zien: Het ontwerpen en implementeren van databaseschema's: Je bent in staat om een database te ontwerpen en de structuur van tabellen, relaties, indexen en andere objecten te definiëren; Het schrijven van complexe SQL-query's: Je kunt complexe query's schrijven om gegevens uit de database

Bekijk vacature »

Software Developer

Longship.io gaat de wereld veroveren met baanbrekende software en legendarische... pizza-avonden! Lees hier de vacature van Software Developer! Bij Longship werken we met een team van 5 mensen aan software voor laadpaal operators. Longship is ontstaan in 2020 met als doel om de elektrische mobiliteitstransitie aan te jagen. We zijn nu al een wereldwijde speler doordat we continu voorop lopen in innovatie. Ons platform helpt het versneld elektrificeren van wagenparken, internationaal! Wij zijn een startup met grote ambities die we willen bereiken met een relatief klein en efficiënt team. Je krijg de kans om ontzettend veel te leren van ervaren

Bekijk vacature »

C++ Developer

Functieomschrijving Ben jij als software engineer toe aan een nieuwe uitdaging? Dan zijn wij op zoek naar jou! Voor het maken van de procesbesturingsoftware gebruiken onze projectteams een in C++ en C# geschreven tool. Dit is een gedistribueerd object framework wat alle kernfuncties biedt voor een procesautomatisering. Verder zullen jouw werkzaamheden o.a. bestaan uit: Analyseren van vragen en wensen van gebruikers en deze vertalen naar een functioneel ontwerp; Ontwerpen, programmeren en testen van productaanpassingen; Implementeren van nieuwe productreleases in de projectteams; Continu toetsen van het effect van nieuwe releases op andere tools en processen; Inzichtelijk maken van voortgang omtrent softwarewerkzaamheden,

Bekijk vacature »

Software Developer PHP JavaScript Python HBO SQL

Samengevat: Wij zijn een softwarebedrijf voor Autodealers. Ben jij een Medior of Senior Software Developer? Heb je ervaring met PHP, JavaScript of Python? Vaste baan: Java.Developer Software HBO €3.000 - €5.200 Bij ons op de werkvloer is er een positieve en informele sfeer. Naast een goede begeleiding en een enthousiaste klantenkring biedt deze werkgever een prettige omgeving met zeer afwisselende werkzaamheden. Houd jij van aanpakken en denk je dat je deze uitdaging aankunt? Dan zoeken wij jou! Zij werken voor grote klanten. Zij doen omvangrijke projecten die we bij deze werkgever op kantoor realiseren (geen detachering). Zij werken met state-of-the-art

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Ontwikkelen van herbruikbare componenten; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als junior .NET Developer kom je terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als junior .NET Developer werk je aan het ontwikkelen van verbeterde

Bekijk vacature »

.NET developer

Functie The position we have for you As a .NET developer you will work for one of our customers active in the High Tech Industry. Our customers are mainly located in the Eindhoven area. We are very selective when it comes to the projects we accept and therefore only focus on innovative and complex projects. Because our customers are mainly specialized in machine construction, you often work close to the machines. Our team currently consists of Embedded engineers, IOT developers and Cloud engineers. We mainly work on Microsoft projects where WPF, UWP, .NET Core and Microsoft Azure are used. Eisen

Bekijk vacature »

C++ Ontwikkelaar

Functieomschrijving Ben jij toe aan een nieuwe uitdaging en werk je graag en goed in C++ en C#? Dan zijn we op zoek naar jou! Dit bedrijf is dé specialist op het gebied van automatiseringssoftware voor een specifieke branche en ze zijn per direct op zoek naar versterking in hun development team. Wat jij gaat doen binnen jouw rol als C++ ontwikkelaar; Je vertaalt de wensen van gebruikers naar een functioneel ontwerp. Je houdt je bezig met het ontwerpen, programmeren en testen van product aanpassingen. Je gaat nieuwe product releases implementeren in de projectteams. Je gaat de effecten van nieuwe

Bekijk vacature »

C#.NET ontwikkelaar

Functie omschrijving Voor een softwarebedrijf in de omgeving van Veghel zijn we op zoek naar een C# developer. Word jij blij van ontwikkelen in C# en .NET? Lees dan snel verder! Jouw werkzaamheden zullen er als volgt uit gaan zien: Op basis van de wensen van de klant ga je samen met je collega's ga je op zoek naar de juiste oplossingen en je gaat dit uitwerken tot een mooi eindproduct. Je bouwt webshops, webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Framework en C#. Je zorgt voor de optimalisering van bestaande software en de automatisering van

Bekijk vacature »

Pagina: 1 2 volgende »

Mr Beronne

Mr Beronne

21/10/2012 15:41:35
Quote Anchor link
Beste Lezers

Ik heb een complete tutorial gevoeld over OOP via http://www.killerphp.com.
Ik heb filmpjes bekeken een pdf gelezen en heb mee
geprogrammeerd met de voorbeelden en begin het nu eindelijk te snappen.

Aan het eind zegt de maker van de tutorial dat je nu oefen opdrachten
moet maken om het nu verder te leren.

Mijn vraag aan jullie is: weten jullie leuke en leerzame oefen opdrachten die ik kan maken
waarbij ik eerst nog niks met een datebase hoef te doen.
Als ik de basis echt goed snap en geen moeite meer mee hebt wou ik verder gegaan
om met OOP opdrachten te maken waarbij een database om de hoekt komt kijken.

Alvast bedankt.
 
PHP hulp

PHP hulp

27/05/2026 09:40:48
 
Andy V

Andy V

21/10/2012 15:44:53
Quote Anchor link
Doe maar een login systeem in OOP daar leer je wel wat uit, of een formulier met controle op fouten

Toevoeging op 21/10/2012 15:46:37:

Maak een formulier waarbij je in de php pagina alleen het formulier ziet en als je het formulier goed invult krijg je een mailtje dat het gelukt is, als het formulier niet goed ingevuld is krijg je geen mailtje maar een foutmelding op je scherm
 
Bas de jong

Bas de jong

21/10/2012 15:47:18
Quote Anchor link
maak een simpele rekenmachine
formulier met textvelden,optievelden,meerkeuzelijst berekenknop,wisknop
zo kun je lekker aan de gang met variabelen

wat betreft het objectgeorienteerde zou je een class kunnen schrijven die verschillende rekenmethoden heeft
de uitdaging is om dan de verschillende formuliervariabelen toe te passen in je classmethoden

mvg bas
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/10/2012 16:10:01
Quote Anchor link
of maak een eigen datum class met functies als setdate, getdate, firstdayofthemonth() met nederlandse namen voor de dagen van de week en maanden etc etc

of maak een class die een <select> maakt met een constructor en een functie addoption()

of maak een class elements om html elements als <p> en <h1> uit te spugen en maak daarna een 'class
table extends elements' die elements dus gebruikt om een table uit te spugen
 
Wouter J

Wouter J

21/10/2012 16:14:18
Quote Anchor link
Zomaar wat ideeën:
- Maak een menu op een OO methode. Zorg dat je makkelijk en snel een menu kunt aanpassen, met subitem's ect. Je denkt dat dit heel makkelijk is, maar het kan flink ingewikkeld worden (http://github.com/knplabs/knpmenu )
- Maak een form applicatie, hierin kun je een formulier maken en hem ook nog eens afhandelen (ook dit kan moeilijk worden, http://github.com/symfony/Form )
- Maak een hele DOM applicatie. Zorg dat je doormiddel van OO een hele HTML pagina kunt maken.

PS: Inlogsystemen zou ik nog even mee wachten, is een behoorlijk ingewikkeld project.
Gewijzigd op 21/10/2012 16:15:17 door Wouter J
 
Andy V

Andy V

21/10/2012 16:14:58
Quote Anchor link
of maak een class die geld op mijn bankrekening zet
 
Bas de jong

Bas de jong

21/10/2012 16:47:14
Quote Anchor link
Andy V op 21/10/2012 16:14:58:
of maak een class die geld op mijn bankrekening zet

gniffelgniffel
 
Mr Beronne

Mr Beronne

21/10/2012 18:54:24
Quote Anchor link
Mensen bedankt voor de reacties ik ga denk ik de volgende dingen
proberen te maken:

- simpele rekenmachine
- datum class
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/10/2012 19:23:51
Quote Anchor link
Mr Bham, we zouden het leuk vinden als je ons op de hoogte wil houden.

Het is fijn om te zien dat er mensen zijn die bereid zijn om te leren, Hoe vaak hoor je hier niet 'mensen ik kwam dit script op internet tegen, bla bla en nu kom ik er niet uit...'

Nee eindelijk iemand die het serieus oppakt. Succes met je studie!

Frank
 
Bas de jong

Bas de jong

21/10/2012 20:11:25
Quote Anchor link
succes!
 
Wouter J

Wouter J

21/10/2012 20:12:47
Quote Anchor link
Het lijken me niet echt OO opdrachten. Meer het maken van een klasse die dient als houder van een paar functies ipv als object.
 
Andy V

Andy V

21/10/2012 21:56:59
Quote Anchor link
Inderdaad wouter, vandaar dat ik hier een suggestie doe:

Je maakt een databaseclass, registreerclass, loginclass, rekenmachineclass en een datum class.

als je geregistreerd bent kan je inloggen en als je ingelogd bent kan je het rekenmachine gebruiken

lijkt veel en moeilijk maar dit is eigenlijk nog heel eenvoudig.
Gewijzigd op 21/10/2012 21:57:55 door Andy V
 
Wouter J

Wouter J

21/10/2012 22:06:48
Quote Anchor link
Andy, eenvoudig? Een gebruikerssysteem??? Nou, dan hebben we andere ervaringen...
 
Mr Beronne

Mr Beronne

21/10/2012 23:20:53
Quote Anchor link
Beste mensen,

Ik heb aan de hand van jullie oefen opdrachten de eerste af: Rekenmachine.

Ik heb eerst in html een formulier gemaakt mat daarin 2 input text fields.
Met daaronder 4 radio types: +,-,:,*. en een bereken knop en wis knop.Met de wisknop heb ik nog niks gedaan omdat ik niet weet of ik het wissen in de index.php moet doen of in de class??

Verderop kunt mijn index.php en class_rekenen.php zien maar heb nog enkele vragen.

Als eerst:
Stuur ik alle $_POST variablen naar SetValues die ik afhandel in de class.
Ik heb in mijn index.php allemaal if, eleif statements gemaakt om undefinde errors tegen te gaan en
om te kijken welke operator is geset om hierbij de juiste functie uit de class te halen.

Mijn vraag is:
1: is de class hoe ik hem gemaakt goed (Tips/op en aanmerkingen).
2: kijk ik op de juiste manier welke operator is gepost en daarbij de juiste functie uit mijn klas haal.
3: Hoe ik nu bezig ben is dat wel helemaal OOP gericht.

Mijn index.php file
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>Untitled Document</title>
    <?php include_once("classes/class_rekenen.php"); ?>
</head>

<body>
<?php
    // nieuwe class aanmaken
    $rekenmachine = new Rekenen();
    // Stuur post values
    $rekenmachine->setValues($_POST["waarde1"], $_POST["waarde2"], $_POST["operators"]);    
    
    // functies ophalen uit class maar
    // eerst een vergelijkt voor de operators

    if(isset($_POST["bereken"]) and (isset($_POST["operators"]) == "+")){
        echo "Antwoord: ".$rekenmachine->optellen();
    }
elseif(isset($_POST["bereken"]) and (isset($_POST["operators"]) == "-")){
        echo "Antwoord: ".$rekenmachine->aftrekken();
    }
elseif(isset($_POST["bereken"]) and (isset($_POST["operators"]) == ":")){
        echo "Antwoord: ".$rekenmachine->delen();
    }
elseif(isset($_POST["bereken"]) and (isset($_POST["operators"]) == "x")){
        echo "Antwoord: ".$rekenmachine->keer();
    }

?>

    <h1>Class Rekenmachine</h1>
    <hr />
    <form method="post" action="">
        <table border="0" cellspacing="0">
            <tr>
                <td>Inputfield</td>
                <td><input type="text" name="waarde1" /></td>
                <td><input type="text" name="waarde2" /></td>
            </tr>
            <tr>
                <td>Operators</td>
                <td><input type="radio" name="operators" value="+" />+</td>
                <td><input type="radio" name="operators" value=":" />:</td>
            </tr>
            <tr>
                <td></td>
                <td><input type="radio" name="operators" value="-" />-</td>
                <td><input type="radio" name="operators" value="x" />x</td>
            </tr>
            <tr>
                <td></td>
                <td><input type="submit" name="bereken" value="Bereken" /></td>
                <td><input type="submit" name="wis" value="Wis" /></td>
            </tr>                                                            
        </table>
    </form>
</body>
</html>


Mijn class reken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
class Rekenen {
            
    public $waarde1;
    public $waarde2;
    public $operator;
    
    /*
    * $waarde 1: input waarde field 1
    * $waarde 2: input waarde field 2
    * $operator: +,-, x, :
    */

    public function setValues($waarde1, $waarde2, $operator){
        $this->waarde1 = $waarde1;
        $this->waarde2 = $waarde2;
        $this->operator = $operator;    
    }

    
    public function optellen(){
        $totaal = $this->waarde1 + $this->waarde2;
        return $totaal;
    }

    
    public function aftrekken(){
        $totaal = $this->waarde1 - $this->waarde2;
        return $totaal;
    }

    
    public function delen(){
        $totaal = $this->waarde1 / $this->waarde2;
        return $totaal;
    }
    
    
    public function keer(){
        $totaal = $this->waarde1 * $this->waarde2;
        return $totaal;
    }    
}

?>
Gewijzigd op 21/10/2012 23:22:35 door Mr Beronne
 
Frank Nietbelangrijk

Frank Nietbelangrijk

22/10/2012 00:28:56
Quote Anchor link
hmm wel netjes, alleen de operator in de class wordt niet gebruikt. Je had deze weg kunnen laten of je had de vier laatste functies weg kunnen halen en daarvoor in de plaats één functie met de naam rekenen(). in die functie had je dan met if else aan de hand van operator kunnen delen, vermenigvuldigen, optellen en aftrekken.
Maar verder is dit blijkbaar niet al te moeilijk voor je. Misschien kun je een tweede class schrijven die deze herbruikt? (zoiets als class Worteltrekken extends Rekenen)
 
Andy V

Andy V

22/10/2012 03:03:28
Quote Anchor link
Wouter J op 21/10/2012 22:06:48:
Andy, eenvoudig? Een gebruikerssysteem??? Nou, dan hebben we andere ervaringen...


Volgens mij zie je het wel wat te groot, ik dacht eerder aan een simpel systeempje, account maken met login,wachtwoord,email en zorgen dat je kan inloggen dat is vrij simpel te maken en eigenlijk zelfs een standaard waar je heel vaak mee te maken hebt als je aan verschillende sites werkt, zo ben ik trouwens ook begonnen in het begin is het inderdaad moeilijk maar uit moeilijke dingen daar leer je pas echt iets uit.

Toevoeging op 22/10/2012 03:17:34:

Mr Bham op 21/10/2012 23:20:53:
Beste mensen,

Ik heb aan de hand van jullie oefen opdrachten de eerste af: Rekenmachine.

Ik heb eerst in html een formulier gemaakt mat daarin 2 input text fields.
Met daaronder 4 radio types: +,-,:,*. en een bereken knop en wis knop.Met de wisknop heb ik nog niks gedaan omdat ik niet weet of ik het wissen in de index.php moet doen of in de class??

Verderop kunt mijn index.php en class_rekenen.php zien maar heb nog enkele vragen.

Als eerst:
Stuur ik alle $_POST variablen naar SetValues die ik afhandel in de class.
Ik heb in mijn index.php allemaal if, eleif statements gemaakt om undefinde errors tegen te gaan en
om te kijken welke operator is geset om hierbij de juiste functie uit de class te halen.

Mijn vraag is:
1: is de class hoe ik hem gemaakt goed (Tips/op en aanmerkingen).
2: kijk ik op de juiste manier welke operator is gepost en daarbij de juiste functie uit mijn klas haal.
3: Hoe ik nu bezig ben is dat wel helemaal OOP gericht.

Mijn index.php file
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>Untitled Document</title>
    <?php include_once("classes/class_rekenen.php"); ?>
</head>

<body>
<?php
    // nieuwe class aanmaken
    $rekenmachine = new Rekenen();
    // Stuur post values
    $rekenmachine->setValues($_POST["waarde1"], $_POST["waarde2"], $_POST["operators"]);    

?>

    <h1>Class Rekenmachine</h1>
    <hr />
    <form method="post" action="">
        <table border="0" cellspacing="0">
            <tr>
                <td>Inputfield</td>
                <td><input type="text" name="waarde1" /></td>
                <td><input type="text" name="waarde2" /></td>
            </tr>
            <tr>
                <td>Operators</td>
                <td><input type="radio" name="operators" value="+" />+</td>
                <td><input type="radio" name="operators" value=":" />:</td>
            </tr>
            <tr>
                <td></td>
                <td><input type="radio" name="operators" value="-" />-</td>
                <td><input type="radio" name="operators" value="x" />x</td>
            </tr>
            <tr>
                <td></td>
                <td><input type="submit" name="bereken" value="Bereken" /></td>
                <td><input type="submit" name="wis" value="Wis" /></td>
            </tr>                                                            
        </table>
    </form>
</body>
</html>


Mijn class reken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
class Rekenen {
            
    public $waarde1;
    public $waarde2;
    public $operator;
    
    /*
    * $waarde 1: input waarde field 1
    * $waarde 2: input waarde field 2
    * $operator: +,-, x, :
    */

    public function setValues($waarde1, $waarde2, $operator){
        $this->waarde1 = $waarde1;
        $this->waarde2 = $waarde2;
        $this->operator = $operator;    
    }

    
    public function optellen(){
        $totaal = $this->waarde1 + $this->waarde2;
        return $totaal;
    }

    
    public function aftrekken(){
        $totaal = $this->waarde1 - $this->waarde2;
        return $totaal;
    }

    
    public function delen(){
        $totaal = $this->waarde1 / $this->waarde2;
        return $totaal;
    }
    
    
    public function keer(){
        $totaal = $this->waarde1 * $this->waarde2;
        return $totaal;
    }    
}

?>


Sorry dat ik dit moet zeggen maar dit is echt veeeel te eenvoudig gemaakt om het OOP te noemen, je kan bij wijze van spreken gewoon de class weglaten en alleen de functies gebruiken veel verschil ga je niet zien in de pagina waar je rekenmachine op staat.

Wat je kan proberen is om het een beetje uitgebreider te maken en dit stukje kan je ook wel kwijt in je class:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
    
    // functies ophalen uit class maar
    // eerst een vergelijkt voor de operators
    if(isset($_POST["bereken"]) and (isset($_POST["operators"]) == "+")){
        echo "Antwoord: ".$rekenmachine->optellen();
    } elseif(isset($_POST["bereken"]) and (isset($_POST["operators"]) == "-")){
        echo "Antwoord: ".$rekenmachine->aftrekken();
    } elseif(isset($_POST["bereken"]) and (isset($_POST["operators"]) == ":")){
        echo "Antwoord: ".$rekenmachine->delen();
    } elseif(isset($_POST["bereken"]) and (isset($_POST["operators"]) == "x")){
        echo "Antwoord: ".$rekenmachine->keer();
    }

dan maak je een extra variabele in je class namelijk: $totaal

en die waarde roep je dan op in je pagina met $rekenmachine->totaal.

je zou eigenlijk alles qua verwerken kunnen doen in je class zelf en proberen met zo weinig mogelijk php code in jou index.php te werken.

bijvoorbeeld alleen met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
    $rekenmachine = new Rekenen();
    // Stuur post values en verwerk en return het resultaat
    $uitkomst = $rekenmachine->uitkomst($_POST["waarde1"], $_POST["waarde2"], $_POST["operators"]);

        echo $uitkomst;


Toevoeging op 22/10/2012 03:52:24:

hier heb je dan mijn versie heb de class er even onder gezet omdat het toch maar 1 class is hopelijk leer je er iets uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
        <title>OOP Rekenmachine</title>
    </head>

    <body>
        <?php
        // nieuwe class aanmaken

        if (isset($_POST["bereken"])) {
            $rekenmachine = new Rekenen();
            // Stuur post values en verwerk alles
            $uitkomst = $rekenmachine->totaal($_POST["waarde1"], $_POST["waarde2"], $_POST["operators"]);
        }

            //ook handig om te weten is de korte tag voor echo namelijk: <?= heel erg handig als je een nette template wil.
            //en de korte if/else ( controle ? juist : fout ) ? staat voor if, : staat voor else

            ?>

        
        <p><?= (isset($uitkomst)? 'Antwoord: '.$uitkomst : '') ?></p>
        
        <h1>Class Rekenmachine</h1>
        <hr />
        <form method="post" action="">
            <table border="0" cellspacing="0">
                <tr>
                    <td>Inputfield</td>
                    <td><input type="text" name="waarde1" /></td>
                    <td><input type="text" name="waarde2" /></td>
                </tr>
                <tr>
                    <td>Operators</td>
                    <td><input type="radio" name="operators" value="+" />+</td>
                    <td><input type="radio" name="operators" value=":" />:</td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="radio" name="operators" value="-" />-</td>
                    <td><input type="radio" name="operators" value="x" />x</td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit" name="bereken" value="Bereken" /></td>
                    <td><input type="submit" name="wis" value="Wis" /></td>
                </tr>                                                            
            </table>
        </form>
    </body>
</html>


<?php

class Rekenen {

    public $waarde1;
    public $waarde2;
    public $operator;
    
    /*
     * $waarde 1: input waarde field 1
     * $waarde 2: input waarde field 2
     * $operator: +,-, x, :
     */


    public function totaal($waarde1, $waarde2, $operator) {
        self::setValues($waarde1, $waarde2, $operator);
        return self::bereken();
    }


    public function bereken() {
        switch ($this->operator) {
            case
'+':
                return self::optellen();
            case
'-':
                return self::aftrekken();
            case
':':
                return self::delen();
            case
'x':
                return self::keer();
        }
    }


    public function setValues($waarde1, $waarde2, $operator) {
        $this->waarde1 = $waarde1;
        $this->waarde2 = $waarde2;
        $this->operator = $operator;
    }


    public function optellen() {
        $totaal = $this->waarde1 + $this->waarde2;
        return $totaal;
    }


    public function aftrekken() {
        $totaal = $this->waarde1 - $this->waarde2;
        return $totaal;
    }


    public function delen() {
        $totaal = $this->waarde1 / $this->waarde2;
        return $totaal;
    }


    public function keer() {
        $totaal = $this->waarde1 * $this->waarde2;
        return $totaal;
    }

}

?>

 
Wouter J

Wouter J

22/10/2012 10:11:54
Quote Anchor link
Kijk leuk zo'n rekenklasse en hij zal vast goed werken, alleen je ziet nu ook dat het moeilijk is OOP toe te passen bij zoiets kleins.

De reken klasse is nu gewoon een verzameling functies geworden, een echt object kun je het niet noemen.

Quote:
Volgens mij zie je het wel wat te groot, ik dacht eerder aan een simpel systeempje, account maken met login,wachtwoord,email en zorgen dat je kan inloggen dat is vrij simpel te maken en eigenlijk zelfs een standaard waar je heel vaak mee te maken hebt als je aan verschillende sites werkt, zo ben ik trouwens ook begonnen in het begin is het inderdaad moeilijk maar uit moeilijke dingen daar leer je pas echt iets uit.

Hmm, vrij simpel even de klassen die je dan zo'n beetje nodig hebt: User, UserMapper, MapperInterface, DatabaseInterface, PDODatabase, PDOMySQLDatabase, PDOOracleDatabase, MySQLIDatabase, ...
 
Andy V

Andy V

22/10/2012 11:20:27
Quote Anchor link
Wouter J op 22/10/2012 10:11:54:
Hmm, vrij simpel even de klassen die je dan zo'n beetje nodig hebt: User, UserMapper, MapperInterface, DatabaseInterface, PDODatabase, PDOMySQLDatabase, PDOOracleDatabase, MySQLIDatabase, ...


voor 1 tabelletje met users heb je al die classes helemaal niet nodig, gewoon een class die verbinding maakt met de db en dat je query's ermee kan maken is meer dan genoeg voor een eenvoudig login systeempje. Je ziet het dus idd veel te groot maar ja dat mag ook wel als programmeur, maar omdat dit dan een simpele oefening is om een beetje basis OOP te leren zeg ik het nogmaals dat al die classes niet nodig zijn om een simpele verbinding te maken met een database.
Gewijzigd op 22/10/2012 11:21:31 door Andy V
 
Wouter J

Wouter J

22/10/2012 11:37:27
Quote Anchor link
Andy, je moet als je oefent met OO juist doorhebben dat je je systeem zo flexibel mogelijk kunt maken. Hierdoor moet je doorhebben dat je een verbinding kan maken door het Adapter pattern toe te passen.

En ook moet je doorhebben dat je tussen die Database klasse en de User klasse nog een klasse nodig hebt, een DataMapper of Active Record of een ORM ect.
 
Andy V

Andy V

22/10/2012 11:44:51
Quote Anchor link
Wouter J op 22/10/2012 11:37:27:
Andy, je moet als je oefent met OO juist doorhebben dat je je systeem zo flexibel mogelijk kunt maken. Hierdoor moet je doorhebben dat je een verbinding kan maken door het Adapter pattern toe te passen.

En ook moet je doorhebben dat je tussen die Database klasse en de User klasse nog een klasse nodig hebt, een DataMapper of Active Record of een ORM ect.


dat is in het begin veel te moeilijk als je niet eens weet hoe classes werken, dus ik blijf bij mijn punt. Wat hij net gemaakt heeft is gewoon een class met functies, dus ik neem aan dat hij nog niet helemaal weet hoe dat allemaal in elkaar zit vandaar dat je best eerst iets eenvoudig kan doen, even experimenteren met classes niet meteen groot denken maar gewoon de code leren kennen al is dat niet zo moeilijk maar in het begin kan dat toch best verwarrend zijn allemaal.
 
Wouter J

Wouter J

22/10/2012 11:55:46
Quote Anchor link
Ik zie de code leren kennen meer als stap 2 in het OO leren proces. Ik begrijp daarom ook 95% van alle OO tutorials niet, die hebben maar 1 hoofdstuk over het 'moeilijke OO denken' en daarna 101 hoofdstukken over de syntax van OO. Het nadenken in objecten is juist stap 1, je moet leren dat het niet om de code draait maar om de gedachte erachter (vandaar met slogan 'Een script is meer dan code alleen').
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.