OOP vragen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior .NET Ontwikkelaar

In het kort Als Senior .NET ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag met complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek (denk aan ECT) en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan

Bekijk vacature »

Senior .NET developer

Functie Als Senior .NET ontwikkelaar ga jij aan de slag in ons Research & development team. Ons team bestaat uit 17 collega’s! Wij zijn momenteel druk bezig met het opzetten van een geheel nieuwe architectuur voor een nieuw product. Hierbij maken wij o.a. gebruik van VS2022 en .NET 6.0. Jouw functie is dan ook voornamelijk backend georiënteerd bij ons. Aangezien wij meetapparatuur ontwikkelen voor de chemische industrie is het ook erg belangrijk om kwalitatief hoogwaardige software te ontwikkelen voor de besturing hiervan. Verder ben jij verantwoordelijk voor het designen, implementeren en testen van nieuwe features. Ook zorg jij voor toekomstbestendige

Bekijk vacature »

Lead developer

Functie Als lead developer wordt jij verantwoordelijk voor een van onze development teams. Samen met de Software Architect bewaak jij de kwaliteit en uitvoering van onze complexe vraagstukken. Daarnaast ben jij verantwoordelijk voor het inschatten, designen en ontwikkelen van middelgrote tot grote veranderingen in de software. Ook coördineer jij het proces rondom complexe technische vraagstukken. Verder bestaat jouw takenpakket uit het volgende: – Het aansturen van jouw development team; – Het begeleiden van Junior Software Engineers; – Het maken van technische analyses m.b.t. nieuwe aanvragen en het tijdsbestek inschatten voor de uitvoering hiervan; – Het uitvoeren van de ontwikkeling van

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 »

Front-end Developer

Do you want to work with the latest technologies on the development of new systems and applications? Create elegant interfaces using VueJS for thousands of users? Get moving and strengthen Nederlandse Loterij as a Front-end Developer. Thanks to your efforts, our services are always presented in style. As a Front-end Developer you are responsible for website development and improving customer experience based on data analyze. In this way, you directly contribute to a happy, healthy and sporty Netherlands. As a Front-end Developer you score by: Writing elegant, testable components without side-effects to provide functionality to the users Website development, adding

Bekijk vacature »

Database Developer

Functie omschrijving Voor een logistieke dienstverlener in omgeving Zuid Beijerland zijn wij op zoek naar versterking. Weet jij als geen ander systemen aan elkaar te koppelen en heb jij goede kennis van SQL en UML, lees dan snel verder! Jouw taken zien er als volgt uit: Je bent in deze rol voornamelijk verantwoordelijk voor het bouwen, implementeren en beheren van koppelingen tussen de bestaande systemen (zowel business 2 business als application 2 application). Daarnaast inventariseer je de wensen van in- en externe klanten, die je vervolgens samen met je collega's, vertaalt naar technische specificaties, die jullie zelf ontwikkelen en implementeren.

Bekijk vacature »

Back-end PHP Developer

Dit ga je doen Her- en uitbouwen van het inhouse softwareplatform dmv PHP; Onderhouden van bovengenoemd platform in PHP; Sparren met het team; Meedenken over nieuwe functionaliteiten, security etc; Jouw input leveren aan het proces door op de hoogte te blijven van nieuwe ontwikkelingen etc. Hier ga je werken Onze klant, gevestigd in de omgeving van Alkmaar, levert wereldwijd oplossingen op het gebied van IT. Dag in dag uit werken zij met veel passie aan hun product waarmee ze streven naar verbeteringen binnen zorg. Voor onze klant zijn we op zoek naar een medior PHP Developer. Je komt te werken

Bekijk vacature »

Ervaren PHP Developer

Functie omschrijving Jelling IT zoekt ervaren PHP developer! Voor een organisatie in de regio Rhenen zijn wij op zoek naar een ervaren PHP developer die gaat functioneren als een verlengstuk van de klant. Jij bent iemand die technisch complexe zaken met enthousiasme aanvliegt. Je bent in staat om aan meerdere projecten te werken en werkt graag met de nieuwste technieken. In deze functie werk je veel samen met front-end developers en stel je alles in het werk om grote verschillen voor de klanten teweeg te brengen. Verder ben jij iemand die graag zichzelf uitdaagt en die altijd de beste wilt

Bekijk vacature »

Network Engineer (f/m/d) in Heidelberg

Network Engineer (f/m/d) The IT Services team operates and supports the IT infrastructure and services at EMBL headquarters in Heidelberg and at the laboratory’s sites in Barcelona and Rome. As part of IT Services, the Network team is responsible for managing and developing the network infrastructure in our data centres, on campus, and to our external network providers. As a leading scientific institution with highly data-intensive research, extensive data flows at and between the laboratory’s six sites and to the Internet, EMBL is connected to national and international scientific networks using state-of-the-art technologies from vendors including Cisco, Extreme Networks and

Bekijk vacature »

React developer Inhouse cloudplatform

Functie De functie: Als front-end developer kom je te werken naast 2 andere front-end/React developers, waaronder één senior. Een hele mooie kans dus om in korte tijd veel nieuwe kennis en ervaring op te doen. Ze hebben momenteel veel werk hierin en daarom willen ze het team graag uitbreiden. Het is van belang dat je, zeker gezien het vele thuiswerken, in ieder geval al een aantal projecten hebt gedaan in React. Taken waar je aan kunt denken zijn het ontwikkelen van client-applicaties o.b.v. HTML5, React en andere open standaarden. Ook ben je nauw betrokken bij het implementeren van designs o.b.v.

Bekijk vacature »

Medior Java developer (fullstack)

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 »

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 »

Node.js developer looking for a challenging consul

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

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 »

Front-end Developer

Functie omschrijving Gezocht front-end developer! Voor een toffe organisatie in de regio Rhenen zij wij op zoek naar een front-end developer die de eindverantwoordelijkheid op zich neemt van alles wat met design te maken heeft. In deze functie heb je een adviserende rol en beschik je over een grote dosis vakinhoudelijke kennis. Samen met collega’s en klanten overleg je om aangeleverde designs om te zetten naar unieke concepten. Zo draag jij je steentje bij aan de groeiambities van de klant. Voor klanten wordt jij het vaste aanspreekpunt als het gaat over planningen hierin houdt je alle betrokkenen goed op de

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

24/11/2024 11:11:34
 
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.