Classes maken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je hier

Bekijk vacature »

Applicatieontwikkelaar Java EE

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving De afdeling IV –

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een ambitieuze werkgever in regio Tilburg waar jij volledig de mogelijkheid krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je gaat projecten gedurende het hele proces begeleiden. Je sluit aan bij afspraken met klanten om hun processen helder te krijgen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt aan nieuwe softwareoplossingen die de logistieke processen verbeteren of vernieuwen; Je houdt je bezig met het ontwikkelen van

Bekijk vacature »

Technical Asset Specialist Substations

TenneT is growing fast to realize its strategic ambitions. We play a leading role in driving the energy transition. We are looking for a passionate Technical Asset Specialist for substations (onshore and offshore) at our location in Arnhem who will contribute to this and that might be you? Your contribution to TenneT We are searching for a motivated and engaged colleague as a technical asset specialist (onshore and offshore) for instrument transformers and surge arresters, with preferably a strong background in the area of insulation coordination. As a specialist for insulation coordination you are responsible for overarching topics regarding insultation

Bekijk vacature »

Ambitieuze Junior/Medior Low-code Developers gezoc

Bedrijfsomschrijving Transformeer bedrijven met jouw expertise in innovatieve technologie Ben je een bedreven softwareontwikkelaar met ervaring in Low-code platformen, of sta je te popelen om je in deze baanbrekende oplossing te verdiepen? Wij zijn op zoek naar jou! Ons klantenbestand groeit en we willen ons team uitbreiden met deskundige en leergierige Low-code specialisten. Is het jouw passie om organisaties te ondersteunen in hun digitale transformatie en maatwerkoplossingen te bieden met behulp van geavanceerde software? Wij zijn een vooruitstrevend bedrijf dat dagelijks werkt aan het oplossen van complexe vraagstukken om de digitale ambities van onze klanten te realiseren. Functieomschrijving Ontwikkel op

Bekijk vacature »

C# developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als C# 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 »

Ontwikkelaar Centrale Monitoring

Ontwikkelaar centrale Monitoring Functieomschrijving Wil jij een bijdrage leveren aan het onderhoud, opzetten en ontwikkelingen van technologieën van SSC-ICT, een van de grootste ICT-dienstverleners van en voor de Rijksoverheid? Je komt als monitorspecialist te werken bij team Operations Management Services. Dit team werkt aan het stabiliseren en waarborgen van een betrouwbare monitoromgeving voor 7 ministeries. Jij begeleidt het implementatieproces van de te monitoren technologieën, onder andere via management packs, connectoren en API's. Je hebt hiervoor veel contact met interne en externe klanten, die hun wensen op het gebied van monitoring aan jou doorgeven. Je beoordeelt deze wensen en komt met

Bekijk vacature »

Freelance Fullstack Java Developer

Functieomschrijving Voor een opdrachtgever in omgeving Rotterdam zijn wij op zoek naar ervaren Fullstack JAVA Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid hebben

Bekijk vacature »

Software Programmeur PHP

Functie Ben jij op zoek naar een nieuwe uitdaging als PHP developer en zoek je een leuke platte organisatie? Lees dan snel verder! Voor een opdrachtgever in omgeving Capelle aan den IJssel dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

Backend Developer PHP Laravel SaaS

Dit ga je doen Het ontwikkelen van nieuwe features die bijdragen aan de groei van de klanten van de organisatie; Je denkt mee over nieuwe innovaties, features en verbeteringen in de applicatiearchitectuur; Je draagt bij aan de continue ontwikkeling van jouw team doordat je elke dag streeft naar het verbeteren van jouw eigen prestaties; Je neemt actief deel aan Scrum meetings en de Backend Guild. Hier ga je werken Voor een snel groeiend bedrijf, in de regio Nieuw Vennep, zijn wij opzoek naar een ervaren Backend Developer. De organisatie is actief in de e-commercebranche en ontzorgt haar klanten middels een

Bekijk vacature »

Front end developer

Functie Jij als ervaren Front end developer bent een expert het gebied van Javascript en React. Je wordt onderdeel van een multidisciplinair team bestaande uit een PO, twee Front end developers, een DevOps/Back end developer, een UX/UI designer en een projectmanager. Verder is er iemand verantwoordelijk voor de HR en is de algemeen directeur nauw betrokken bij alle projecten. Dagelijks hou jij je bezig met de verschillende projecten die zijn opgenomen in de sprint. Daarnaast denk je mee over mogelijke oplossingen om de behoefte van de klant op de beste manier in te vullen. Verder spar jij intern met collega’s

Bekijk vacature »

Als PHP developer bijdragen aan beter onderwijs?

Functie Momenteel zijn ze op zoek naar een PHP developer die mee gaat werken aan de (door)ontwikkeling van de producten en zo helpt aan de uitvoering van hun ontwikkelprojecten. Je komt te werken binnen hun development team bestaande uit 6 ontwikkelaars. Ze staan zowel open voor meer junior als medior/senior developers. Je kunt snel veel verantwoordelijkheid krijgen en doorgroeien binnen het bedrijf. Bovendien ben je betrokken bij het bepalen van de product roadmap en de inbreng van (nieuwe) technologieën. De applicaties waaraan je werk worden gebruikt op onderwijsinstellingen door heel Nederland. De tech-stack bestaat voornamelijk uit Laravel (PHP), Vue.js en

Bekijk vacature »

Front end developer React

Functie Wij zijn van origine een wordpress bureau, maar sinds 2006 zijn wij dit wel redelijk ontgroeid. Naar mate de jaren verstreken zijn we gegroeid in omvang, maar ook in de complexiteit van opdrachten waarin wij onze klanten kunnen bedienen. Momenteel bestaat onze organisatie uit 4 front end developers, 12 back end developer 3 projectmanagers en een 2 koppig management. Wij zijn een hele informele, bijna familiaire organisatie. Geen strak pak of overhemd, nee gewoon dragen waar jij je prettig bij voelt. De gemiddelde leeftijd ligt tussen de 25 en 30 en wij doen er veel aan om onze hechte

Bekijk vacature »

High level C++ QT Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13486 Introductie Would you like to be involved in every aspect of software development for our exceptional products, from specification and design to testing and integration? If you're passionate about software development and eager to apply your programming skills to create customer-focused deliverables, then this is the perfect chance for you to expand your expertise. You can become a member of our Machine Control department's data-driven development team, where you'll design and build software solutions that optimize machine productivity. As a senior software design engineer, you'll participate in all phases

Bekijk vacature »

Senior Front-end developer

Functie Als front-end developer ga je aan de slag voor verschillende klanten, waarbij veel rekening wordt gehouden met waar je woont (dit is altijd binnen het uur), en word er gezocht naar een organisatie die past bij jou. Zowel qua persoonlijke ambities als de technische aansluiting. De opdrachten duren gemiddeld 1 à 2 jaar maar dit hangt ook af van je wensen. Je werkt in een teamverband voor een klant en zult nauw samenwerken met zowel eigen collega’s als die bij de klant werkzaam zijn. Ze zijn op zoek naar een technische front-end developer die ruime ervaring heeft in één

Bekijk vacature »
Johan Rombouts

Johan Rombouts

20/02/2015 22:24:20
Quote Anchor link
Hoi iedereen,

Ik ben nu al een tijdje bezig met me te verdiepen in OOP en Classes maken e.d.
Ik heb al menig tutorial bekeken en ook al wat werkends in elkaar gezet.
Maar ik begrijp niet goed wanneer je nu een class maakt of een class extend.
Even een voorbeeld:
Ik heb de volgende objecten:
- Artikelen (in dit geval een product)
- Onderdelen (artikel bestaat uit 1 of meer onderdelen)
- Materialen (onderdeel bestaat uit een bepaald materiaal van een bepaalde lengte)
- Bewerkingen (aan een onderdeel moeten 1 of meerdere bewerkingen worden gedaan)
- Pakbonnen (in een pakbon zitten 1 of meerdere artikelen)
- Facturen (in een factuur zitten 1 of meerdere pakbonnen)
Ik heb nog wel meerdere objecten maar laten we het hier even bij laten.
Even voor mijn beeldvorming: Is het nu de bedoeling dat ik van de bovenstaande objecten aparte classes maak? Of is het beter om bijvoorbeeld te zeggen dat onderdeel een child (extend) is van artikel?

Kan mij iemand een aanzetje geven?
Alvast bedankt.
Gewijzigd op 20/02/2015 22:25:17 door Johan Rombouts
 
PHP hulp

PHP hulp

28/09/2023 06:01:21
 
Wouter J

Wouter J

20/02/2015 23:56:55
Quote Anchor link
Extend is geen child/parent relatie in de vorm van een boomdiagram.

Er zijn in OO 2 relaties die je goed moet onthouden:
* IS_EEN
* HEEFT_EEN

Bij bijv. een webshop van een boekenwinkel kun je zeggen "een Boek IS_EEN Artikel". Je kan ook zeggen "een Boekenwinkel HEEFT_EEN Boek" (meerdere boeken, maar ten minste 1 boek). Je kunt niet zeggen "Een Boekenwinkel IS_EEN Boek" of "een Boek HEEFT_EEN Artikel" (tenzij je Artikel een andere betekenis geeft).

De IS_EEN relatie is degene waar je extend gaat gebruiken. Dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
class Artikel
{
    // ... je kan je afvragen in hoeverre een artikel code heeft, een interface is wellicht beter
}

class Boek extends Artikel
{
}

?>


De HEEFT_EEN relatie duid een property aan die een andere class bevat:
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
<?php
class BoekenWinkel
{
    private $boeken = array();

    public function heeftBoek(Boek $boek)
    {

        $this->boeken[] = $boek;
    }
}


$hetWinkeltjeOpDeHoek = new BoekenWinkel();
$hetWinkeltjeOpDeHoek->heeftBoek(new Boek('Head First Design Patterns'));
$hetWinkeltjeOpDeHoek->heeftBoek(new Boek('Zomerhuis met Zwembad'));
?>


De meest gebruikte fout is het teveel gebruiken van extend. In heel veel gevallen kun je extend vervangen door een andere oplossing, die vaak veel flexibeler en correct is dan een extend. Je zou bijv. kunnen zeggen "een Admin IS_EEN User", maar als je echt naar het verschil tussen een Admin en een User kijkt dan zul je zien dat eigenlijk alleen zijn rechten anders zijn. Hetzelfde geld voor "een Moderator IS_EEN User". Daarom zou het in zo'n geval beter zijn om 1 User class te hebben, die een property "rechten" (roles) heeft, waarin staat wat ie mag en niet mag. Of beter, dat de user een groep krijgt en een andere class bepaald of die groep iets wel of niet mag.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/02/2015 00:54:50
Quote Anchor link
Wouter heeft het weer eens heel erg goed verwoordt en toch is het heel erg moeilijk om bij mensen die deze vraag stellen het kwartje te laten vallen dus waag ik nog een poging:

Als je een class schrijft die een andere class extend neem je in eerste instantie alle functionaliteiten over van de onderliggende class.

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
<?php
class A
{
    public function sayHello()
    {

        return 'Hello';
    }
}


class B extends class A
{
    // to do
}
?>


class B heeft nu EXACT dezelfde functionaliteit als class A.
Nu kunnen we deze gaan veranderen door methods (functies) te gaan overschrijven of door methods of properties (variabelen) er aan toe te voegen. We kunnen dus een 'uitgebreidere' versie van class A gaan maken:
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
<?php
class A
{
    public function sayHello()
    {

        return 'Hello';
    }
}


class B extends class A
{
    // uitbreiding op class A
    public function sayBye()
    {

        return 'Bye';
    }
}

?>


Vanaf nu heeft class B twee methods:
- sayHello() en
- sayBye()

Maar wanneer gebruik je dit nou? Eigenlijk alleen maar als je praat over soorten.
Ik kan zelf maar een paar voorbeeldjes noemen waarvan ik er hier één noem:

De validator
Als we een formulier maken en de gebruiker kan een aantal velden invullen dan willen we deze velden vaak valideren. Bijvoorbeeld als er een veld 'mailadres' in het formulier is dan willen we controleren of de ingevulde tekst wel voldoet aan een geldig mailadres. Een ander voorbeeld is een veld 'aantal'. Hier verwachten we uitsluitend een numerieke waarde. Hierop willen we dit veld tevens controleren (of valideren).

Zo zou je dan een basismodel validator kunnen maken. We noemen dit dan ook wel de baseclass. Daarnaast zou je van alle soorten validators een class kunnen aanmaken die de standaard functionaliteit van de baseclass overneemt door deze te extend-en:

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
<?php
class Validator
{
    public function validate($content)
    {

        return TRUE;
    }
}


class EmailValidator extends Validator
{
    // overschrijf de functie validate van de baseclass 'Validator'
    public function validate($content)
    {

        return filter_var($content, FILTER_VALIDATE_EMAIL);
    }
}


class NumericValidator extends Validator
{
    // overschrijf de functie validate van de baseclass 'Validator'
    public function validate($content)
    {

        return is_numeric($content);
    }
}

?>


In alle andere gevallen kun je beter de HEEFT-EEN gebruiken waar Wouter al over schreef. Voorbeeld:

Een klant heeft een postadres maar ook een afleveradres
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
<?php
class Address
{
    private $street;
    private $postcode;
    private $city;
    
    public function setAddress($street, $postcode, $city)
    {

        $this->street = $street;
        $this->postcode = $postcode;
        $this->city = $city;
    }
}


class Customer
{
    private $postaddress;
    private $deliveraddress;
    
    public function setPostaddress(Address $address)
    {

        $this->postaddress = $address;
    }

    
    public function setDeliveraddress(Address $address)
    {

        $this->deliveraddress = $address;
    }
}

?>
Gewijzigd op 21/02/2015 01:01:32 door Frank Nietbelangrijk
 



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.