OOP oefen opdrachten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

VB.NET developer

Functie Het development team waar jij in terecht komt bestaat uit twee ervaren software developers. De directeur/eigenaar is tevens één van deze developers. Jij werkt direct samen met jouw werkgever en kan dan ook veel kennis en ervaring bij dit bedrijf op doen. Als team zijn jullie verantwoordelijk voor de kantoorapplicatie die deze organisatie aanbied in een niche markt. Het team is op dit moment actief bezig met een migratie waarbij het eindstation eindigt in een C# .NET omgeving. Echter is een deel van de software al geschreven in C# .NET. Hierbij is gebruik gemaakt van C# .NET, CSS, HTML,

Bekijk vacature »

PHP Web Developer

Functie omschrijving Voor een klein softwarebedrijf in de omgeving Roosendaal, zijn wij op zoek naar een PHP web developer met een aantal jaar werkervaring. Wil jij graag werken aan in-house software projecten voor diverse klanten? Voel jij je prettige in een klein team developers, waar jouw inbreng enorm gewaardeerd wordt? Lees dan snel verder! Jouw werkzaamheden zien er als volgt uit: Je wordt verantwoordelijk voor de ontwikkeling van diverse applicaties. Dit kan de ene keer een online platform voor aanbiedingen zijn, en de andere keer een software pakket dat gebruikt wordt om interne processen te automatiseren. Het zijn stuk voor

Bekijk vacature »

Senior SQR Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13333 Introductie Are you passionate about contributing to the world's most advanced machines. Do you thrive in a challenging environment working with highly motivated and skilled teams? If so, we have the perfect opportunity for you! We are seeking a Senior Software Design Engineer for Sequence Tooling to play a critical role in creating and maintaining mission-critical software applications. In this role, you will focus on achieving maintainable software architecture that is transparent and easy to extend while maintaining a strong focus on software quality. You will work closely with

Bekijk vacature »

Front-End Developer

Als Front-End Developer bij Coolblue verbeter je de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Wat doe je als Front-End Developer bij Coolblue? Als Front-end Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Je krijgt energie van het bedenken van creatieve oplossingen en presenteert dit graag binnen het team. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Front-end Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te

Bekijk vacature »

PHP Developer

Functie omschrijving Als PHP / Laravel developer zal je in een klein team terecht komen. Wij zijn op zoek naar een echte specialist, iemand die de balans weet te vinden tussen techniek en perfectie. In de aankomende jaren wilt dit bedrijf flink groeien en daarom zijn ze op zoek naar jou! Wat ga je doen? Je draagt bij aan het ontwikkelen en onderhouden van bestaande webapplicaties die boordevol functionaliteit zitten. Deze applicaties worden gebruikt door de organisatie zelf en ook door de klanten. Inmiddels wordt er gewerkt met Laravel 8 en zijn er diverse koppelingen naar externe leveranciers. Verder zal

Bekijk vacature »

Java developer

Functie Je gaat aan de slag als Tester voor een aantal mooie projecten. Je komt terecht in een DevOps team waar jij aan de slag gaat om de kwaliteit te waarborgen omtrent de maatwerk software voor de klanten. Je draait je hand er niet voor om de adviserende rol te bekleden op het gebied van testautomatisering en het opzetten van testframeworks. Zoals aangegeven ga je daadwerkelijk in het eigen team aan de slag en is het daarnaast ook gebruikelijk bij de klanten op locatie te komen om te werken aan de opdrachten. Je krijgt zodoende echt een mooie kijk in

Bekijk vacature »

Database developer - SQL

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je sluit aan bij meetings en brengt het gehele logistieke proces in kaart. Vervolgens ga je als lead developer aan de slag om de klus te klaren. Je stuurt het junior developer team en helpt, zo nodig,

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Senior .NET Developer I goed salaris en deels thui

Bedrijfsomschrijving Mijn opdrachtgever is al ruim 20 jaar een gevestigde naam in de wereld van software ontwikkeling, met drie kantoren in de Randstad, waaronder Alphen aan den Rijn. Zij richten zich op het bouwen van IT-oplossingen die ervoor zorgen dat de productiviteit van klanten te allen tijden optimaal is. Hiervoor neemt jouw nieuwe werkgever het volledige ontwikkelproces tot haar rekening; van het eerste gesprek om de klantwensen in kaart te brengen, tot aan het uiteindelijke onderhoud van de opgeleverde oplossing. In totaal werken er inmiddels bijna 200 gemotiveerde IT-ers binnen deze organisatie. De gemiddelde leeftijd ligt rond de 35. Het

Bekijk vacature »

Front-end developer Supply Chain Angular, ReactJS,

Functie Het development team bestaat momenteel uit 9 fullstack (Python en .NET) developers. Binnen het team ga jij je toespitsen op het creëren van de optimale toegankelijkheid en user experience. Om dit voor elkaar te krijgen zul je ontwerpen, programmeren, testen en implementeren. Het hele proces dus! Maar ook bijvoorbeeld meedenken over strategie en design. Hierin krijg je veel vrijheid om de functie naar eigen inzicht in te vullen en te pionieren. Alle data die wordt gebruikt is zichtbaar in een webapplicatie, geschreven in Angular en React. Momenteel zijn ze bezig om de dashboards anders vorm te geven en de

Bekijk vacature »

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

PHP ontwikkelaar

Functie Jij komt te werken in een development team van 9 man. Het grootste deel doet back end development en daarnaast is er 1 teamlead en 1 tester in het team. Dit Agile team is van groots belang voor de organisatie omdat zij voornamelijk alle eigen systemen in-house ontwikkelen. Naast het door ontwikkelen van het bestaande platform en de software die daarbij komt kijken, zul jij je ook bezighouden met het realiseren en opzetten van nieuwe projecten binnen het bedrijf. Je staat nauw met de klant in contact om zo hun wensen zo goed mogelijk te kunnen realiseren. Daarnaast ontwikkel

Bekijk vacature »

Software Developer / .NET / Azure

Dit ga je doen Als Lead .NET Software Developer zal je je bezig houden met: Het vertalen van bedrijfswensen naar een technische roadmap; Uitwerken van nieuwe architectuur / designs; Het team aansturen en motiveren; Toezien op de kwaliteit van de code; Mee ontwikkelen van nieuwe features en applicaties. Hier ga je werken Deze organisatie is op dit momenteel marktleider in het ontwikkelen van productielijnen voor de voedselindustrie en heeft een wereldwijd klantnetwerk. Binnen deze organisatie is het team van software developers dagelijks bezig met het ontwikkelen van maatwerk oplossingen om alle productiemachines aan te sturen, maar ook bedrijf kritische applicaties

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

C# Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Wil jij graag aan de slag als C# ontwikkelaar en jouw skills verder ontwikkelen? Zoek niet verder! Als C# ontwikkelaar ga je aan de slag met de volgende taken: (verdere) ontwikkeling van de software voor de interne processen binnen een .net omgeving; optimaliseren van de dataprocessing; ontwerpen en implementeren van zowel desktop- als web-programmatuur; ontwikkeling van tools ten behoeve van consultants en klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Den Bosch. Zij ontwikkelen business intelligence software voor een specifieke branche. Dit houdt in dat zij dashboards ontwikkelen

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

13/05/2024 07:39:42
 
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.