OOP vragen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back-end Software Developer

Functie omschrijving Ben jij op zoek naar een uitdagende development functie bij een klein gespecialiseerd softwarebedrijf? Wil jij graag hybride werken (combi tussen thuis + kantoor), loop jij warm voor maatwerk software en voel jij je prettig in een informele cultuur? Zoek dan niet verder! Reageer direct! Voor een gewilde werkgever in omgeving Tilburg zoeken wij een back-end software developer met een aantal jaar werkervaring. Je gaat werken voor een klein softwarebedrijf dat gespecialiseerd is in de ontwikkeling van integratiesoftware. Jouw werkzaamheden zien er als volgt uit: In een klein team met 4 ontwikkelaars houd jij je bezig met afwisselende

Bekijk vacature »

PHP Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij op zoek naar een nieuwe uitdaging? Lees dan snel verder! Voor een organisatie in de regio Utrecht die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in

Bekijk vacature »

Medior Java developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Software Ontwikkelaar

Functie omschrijving Voor een echt familiebedrijf in de omgeving van 's-Hertogenbosch ben ik op zoek naar een Software Developer. Jij gaat in de functie van Software Developer werken met C# en .NET framework Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Deze organisatie is

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Intern - Junior PHP ontwikkelaar in fris en jong t

Bedrijfsomschrijving Werk jij graag een in fris, flexibel en jong team? Bij ons ben jij vrij om te bepalen waar jij het liefst werkt en op de vrijdag komen wij gezellig bij elkaar op kantoor. Flexibiliteit en vrijheid zijn bij ons de norm en dat geeft jou de ruimte en energie om het beste uit jezelf te halen! Ons team bestaat uit vijf enthousiaste collega's die jou graag ondersteunen in zowel je persoonlijke als professionele ontwikkeling. Met twee ervaren Senior Developers als mentoren ben jij in goede handen. Wij zien onszelf als een vriendengroep die gezamenlijk werken aan iets moois

Bekijk vacature »

Senior PHP developer/ Software Architect

Functie Momenteel zijn ze op zoek naar een ervaren PHP developer die zichzelf graag bezighoudt met zaken als architectuur en de algehele verbetering van structuren en standaarden. Het is eigenlijk meer operationeel als uitvoerend omdat je bezig gaat met zaken als het verder uitrollen en verbeteren van testautomatisering, codereviews, tickets en de doorloop hiervan en architectuurkeuzes. Mocht je hiernaast ook wat DevOps kennis meenemen is dit mooi meegenomen! Vanwege het kleine team maar de wereldwijde impact die zij leveren is er veel focus op kwaliteit. In deze functie werk je aan één van hun belangrijkste applicaties. Hierin werk je nauw

Bekijk vacature »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun

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 »

Lead Webdeveloper

As Lead Web Developer at KUBUS you are responsible for the implementation design of requirements and the software architecture of the web application and services of BIMcollab. In your role as lead developer you will naturally search for the optimum between the required implementation time, the performance of the application and a fast go-to-market of features, in line with our automated test and release train. Together with the other senior developers in your team you monitor the architecture of the application and you advise the product owner about necessary refactoring to improve the maintainability of the platform. Our development team

Bekijk vacature »

Front end ontwikkelaar

Functie Het huidige team bestaat uit momenteel uit 5 back end developers verdeeld van senior tot junior. Omdat de gehele front end van applicaties anders gaan insteken zijn ze op zoek naar een ervaren Front end developer die hen kan helpen de juiste keuzes te maken. Je krijgt veel vrijheid om te bepalen hoe je dit wilt ontwikkelen en vrijheid in welke techniek je hiervoor wilt gebruiken. Je zult je dus bezighouden met architectuur, documentatie en natuurlijk ontwikkeling van nieuwe functionaliteiten binnen de verschillende applicaties. natuurlijk heb jij ook mogelijkheden om te sparren binnen het team, maar ze gaan uit

Bekijk vacature »

Junior PHP Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

Medior/Senior Front-end Developers gezocht (Utrech

Functie Het team bestaat uit 10+ gespecialiseerde (veel senior) front-end ontwikkelaars en ontwerpers die werken aan projecten voor klanten van verschillende groottes (kan twee jaar bezig zijn met 1 klant). Je helpt klanten met ingewikkelde front-end vraagstukken, hierbij kun je denken aan: UX/UI design, CI/CD, architectuur en integratie met back-end systemen. De werkzaamheden verricht je op locatie bij de klant, dit is vaak in de Randstad. De organisatiestructuur is plat en er heerst een informele sfeer, zo kun je met vragen dus terecht bij de directie. Er wordt veel nadruk gelegd op het bevorderen van persoonlijke ontwikkeling door middel van

Bekijk vacature »

Java Developer

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »
Zim Zim

Zim Zim

30/12/2006 11:36:00
Quote Anchor link
Zo eindelijk gebruik maken vanhet OOP topic.
Ik ben bezig met OOP leren met het PHP Superboek, alleen ik kom een paar vraagjes tegen die niet staan uitgelegd (of ik snap de uitleg niet).
Mijn eerste vraag staat op blz 72 en 73 van het hierboven genoemde boek.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
class clsBD {
   var
$M_conDB;
   const dbName = "MyDB";
   //constructor
   function __construct($_p_sHost, $p_sUser, $p_sPassword) {
     // Open a regular connection
     $this->m_conDB = mysql_connect($p_sHost, $p_sUser, $p_sPassword);
     mysql_select_db(clsDB::dbName);
   }

?>

Maar eerste vraag is over: var en const. Ik heb mensen horen praten dat de variabele in een class niet meer aangemaakt moet worden, en wat is 'const dbName' verschil tussen $dbName?
Verder vind ik de regel met $this raar (of ik snap het niet helemaal). Wat doet hij presies met de regel? de regel uitvoeren of opslaan in m_conDB? en waarom moet de regel eronder niet ook met $this->m_conDB staan?

Mijn andere vraag gaat over iets wat verder staat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if($this->m_conDB){
?>

Wat betekend dat? als de waarde niet leeg is?
 
PHP hulp

PHP hulp

20/04/2024 15:08:48
 
Martijn B

Martijn B

30/12/2006 11:52:00
Quote Anchor link
vraag 1:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
var $blaat; //(PHP4)
public $blaat; //(PHP5)
?>

$blaat is een attribuut van de klasse en is variabel. En is public of wel voor alles en iedereen te gebruiken. Alle atributen van een klasse zouden private moeten zijn als je PHP5 gebruik.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
const blaat = 'blaat';
?>

blaat is een constante en kan dus niet meer worden veranderd.

vraag 2:

$this is het object van de klasse. $this zou je kunnen vergelijken met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$this
= new MijnKlasse;
?>


Alleen kun je met de $this in de klasse alle attributen en methodes benaderen ook al zijn ze private.
In PHP4 is de $this (van de code hierboven) een kopie en in PHP5 is dit een referentie.

vraag 3:

We gaan niet in de if als $this->m_conDB gelijk is aan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$this
->m_conDB = false; //of
$this->m_conDB = ''; //of
$this->m_conDB = array(); //of
$this->m_conDB = null; //of
$this->m_conDB = 0; //of
?>


Alle waardes zijn leeg ofwel hebben hetzelfde gedrag als boolean false in een expressie.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Jan Koehoorn

Jan Koehoorn

30/12/2006 11:56:00
Quote Anchor link
Hoi Zim. Je vragen:

1) var en const
Je kunt een variabele in een class prima aanmaken, waarom niet? Met const definieer je een klasse-constante. Vergelijk hem maar met een define in PHP.

2) die regel met $this is ook raar, want er staat een spelfout in. De hoofdletter M is ineens een kleine letter m geworden. Het keyword this verwijst altijd naar het huidige object, in dit geval de klasse zelf. De functie __construct wordt automatisch uitgevoerd als je een nieuwe klasse aanmaakt. In dit geval maakt hij dus verbinding met je DB.

3) Je kunt de Scope Resolution Operator (dat zijn die dubbele dubbele puntjes) gewoon binnen een klasse gebruiken, dus met regel 9 is er niets aan de hand.

4) $this->m_conDB bevat de returnwaarde van mysql_connect (regel 8)
Als die connectie fout gaat, retourneert mysql_connect de waarde false. Daar is die if dus voor.
 
Martijn B

Martijn B

30/12/2006 12:02:00
Quote Anchor link
Quote:
3) Je kunt de Scope Resolution Operator (dat zijn die dubbele dubbele puntjes) gewoon binnen een klasse gebruiken, dus met regel 9 is er niets aan de hand.

Paamayim Nekudotayim veel betere naam :D
 
Jan Koehoorn

Jan Koehoorn

30/12/2006 12:05:00
Quote Anchor link
Ja, die kan ik nooit onthouden. Die Hebreeuwse jongens praten veel te moeilijk :-)
 
Zim Zim

Zim Zim

30/12/2006 12:06:00
Quote Anchor link
Ok, ik ben weer heel wat duidelijker, alleen mijn derde vraag snap ik nog niet helemaal, want Jan ik snap wat de :: betekenen (stond wel uitgelegd), maar ik snap niet waarom je die functie 'los' uitvoer, terwijl je die regel erboven nog $this->m_conDB... staat.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
     $this
->m_conDB = mysql_connect($p_sHost, $p_sUser, $p_sPassword);
     mysql_select_db(clsDB::dbName);
?>

waarom niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
     mysql_connect($p_sHost, $p_sUser, $p_sPassword);
     mysql_select_db(clsDB::dbName);
?>

of
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
     $this
->m_conDB = mysql_connect($p_sHost, $p_sUser, $p_sPassword);
     $this->m_conDB =  mysql_select_db(clsDB::dbName);
?>

Ik zie het nu zo, de eerste regel wordt een 'nieuwe' connectie gemaakt (door $this->), en de database wordt in de regel onder geopend, maar waarom moet je ook niet een 'nieuwe' database selecteren?
 
Jelmer -

Jelmer -

30/12/2006 14:15:00
Quote Anchor link
mysql_connect geeft een resource-identifier terug. Of false waneer het is mislukt. Deze resource-identifier hoor je eigenlijk in de volgende functies zoals mysql_select_db & mysql_query te gebruiken. Waarom ze dat in het boek niet snap ik ook niet helemaal.

mysql_select_db geeft alleen maar terug of het gelukt is of niet. Dus om de resource-identifier die je net hebt opgeslagen te vervangen met deze boolean, beetje nutteloos.
 
Zim Zim

Zim Zim

30/12/2006 14:26:00
Quote Anchor link
Ik begin te begrijpen wat je bedoelt.
Ik vond nog een eigennaardigheid in het boek (of dat lijkt mij):
Dit voorbeeld staat op blz 90 van het Superboek.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
public funtion __construct() {
  $this->m_sTitle= "Titel";
  $this->m_sText= "text van het bericht";
}

?>

Het rare vind ik dat als je een class aanroept, hij eerst de constructor aanroept, en dan worden de variabele m_sTitle gedefinieerde waardes, maar het lijkt mij dat die waardes variabel moeten zijn, anders heeft elk artikel de titel: Titel en tekst "text van het bericht".

Hetzelfde doen ze op blz 75, en dat is eigenlijk nog raardes (lijkt mij):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
class clsCalendar {
  var
$m_nDay;
  var
$m_nMonth;
  var
$m_nYear;

  function
__construct() {
      $this->m_nDay = -1;
      $this->m_nMonth = -1;
      $this->m_nYear = -1;
   }

?>

Hierzo worden eerste variabele gedefineerd, en daarna word de contructor aangeroepen en worden de variabele een vaste waarde (-1), of zie ik dat verkeerd?
Gewijzigd op 01/01/1970 01:00:00 door Zim Zim
 
Jelmer -

Jelmer -

30/12/2006 14:32:00
Quote Anchor link
In dat laatste voorbeeld zou het kunnen dat hij later in andere functies die daarna worden aangeroepen die variabelen nog herdefinieert.

In veel talen kan je namelijk niet bij de declaratie van een variabele (regel 2/3/4) al een waarde opgeven, dus moet dat in de constructor. En waarschijnlijk zet hij die 3 eigenschappen op -1 omdat 0 een mogelijk antwoord is, en -1 later herkenbaar is als een fout antwoord waar eventueel makkelijk op gecontroleerd kan worden en waarna een foutmelding kan volgen.

Wat ik dan weer raar vind: Waarom prefixt dat boek al zijn klassen met 'cls'. Wat kan het anders zijn dan een klasse :/
 
Willem vp

Willem vp

30/12/2006 22:17:00
Quote Anchor link
Jelmer schreef op 30.12.2006 14:32:
Wat ik dan weer raar vind: Waarom prefixt dat boek al zijn klassen met 'cls'. Wat kan het anders zijn dan een klasse :/
Met het gevaar dat ik hier antwoord geef op een retorische vraag: waarschijnlijk heeft de auteur ooit eens gehoord van "Hungarian Notation" en probeert hij dat nu toe te passen.

Hij ziet daarbij over het hoofd dat HN voor OO-omgevingen nutteloos is, omdat variabelen in een OO-taal type-loos zijn; ze bevatten objecten, en het type daarvan hangt af van het object en niet van de variabele.
 
Winston Smith

Winston Smith

31/12/2006 00:11:00
Quote Anchor link
Quote:
Hij ziet daarbij over het hoofd dat HN voor OO-omgevingen nutteloos is, omdat variabelen in een OO-taal type-loos zijn; ze bevatten objecten, en het type daarvan hangt af van het object en niet van de variabele.
afgezien daarvan zou uit de naamgeving van variabelen of properties al duidelijk moeten zijn wat voor type het is, en je kan natuurlijk ook nog templates hebben :)
 
Maarten de Boer

Maarten de Boer

02/01/2007 01:22:00
Quote Anchor link
Toch is het wel makkelijk om bijvoorbeeld zulke namen te hebben "classTest" etc. Voor functies in een class is dit niet nodig natuurlijk :)

Ook voor variabelen kan het handig zijn, zo kunt u bijvoorbeeld als u een bestand aan het doorbladeren bent met fopen "$result = fopen(" etc ... en je wilt ook nog tegelijkertijd wat uit de database halen "$result1 = mysql_query" etc .. dan kan dat behoorlijk verwarrend zijn. Gebruik bijvoorbeeld gewoon "$fileResult = fopen(" en "$sqlResult = mysql_query" etc ... dan weet u meteen waar het van is, WAt het is dat is niet zo heel erg belangrijk.
 
Pim Vernooij

Pim Vernooij

02/01/2007 09:13:00
Quote Anchor link
Voor class namen is het gebruik van dit soort prefixes af te raden imo. Een object steld 'iets' voor. Bijvoorbeeld: $oUser = new User(); Het is duidelijk dat dit een nieuw user object is. Maak je er "new clsUser();" van, dan is die denkwijze meteen weg.
 
Jelmer -

Jelmer -

02/01/2007 09:41:00
Quote Anchor link
Het zieltje van Kasper had ik al eerder op het IRC-kanaal gewonnen, waar ik al jaren het gebruik en de misopvatting dat de HN beter/de beste is bestrijd. ^^,

Maar het was inderdaad een vraag die moest aanzetten tot nadenken. Het antwoord op de vraag zelf wist ik al, heb ik al vaak genoeg moeten aanhoren :)
 
Willem vp

Willem vp

02/01/2007 11:19:00
Quote Anchor link
Quote:
$result = fopen(" etc

Tsja, wat moet ik hierop zeggen? Zelf vind ik $result hier sowieso een verkeerd gekozen naam, omdat je van fopen geen resultaat terugkrijgt, maar een filehandle. Ik zou dan ook eerder kiezen voor $fh, maar omdat ik ooit ben opgegroeid in een C-omgeving, gebruik ik in de praktijk $fp (file pointer).

Bij gebruik van meerdere file pointers tegelijk komt daar dan nog de functie achter te staan: $fpIn, $fpOut, $fpErr, $fpLog, etc. Kort en (m.i.) duidelijk.

Quote:
dan weet u meteen waar het van is, WAt het is dat is niet zo heel erg belangrijk.


Ook hierover verschillen we van mening ;-)

Om terug te komen op je query: stel dat je even later gaat fetchen. Het is dan niet belangrijk om te weten waar je data vandaan komt (database, csv-file, watdanook) maar je wilt wel weten of het bijvoorbeeld een array of een object is.

En nee, $mysqlFetchObjectResult = mysql_fetch_object($sqlResult) vind ik geen goed voorbeeld van een duidelijke naamgeving :)
 



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.