JeuWeb - Crée ton jeu par navigateur
POO, gestion et utilisation - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : POO, gestion et utilisation (/showthread.php?tid=2859)

Pages : 1 2 3 4 5 6 7 8 9 10 11


RE: POO, gestion et utilisation - christouphe - 29-11-2010

la balilse: [spoiler] + sa fermeture

Et __construct() n'est pas une fonction en soi. C'est un constructeur, il te renvois l'instance d'une classe lorsque tu fais "new toto();"

Erff, la malédiction frappe encore
* christouphe sort son crucifix


RE: POO, gestion et utilisation - Dexyne - 29-11-2010

Pour la spoiler je m'en serais douter mais sait-on jamais, imagine qu'elle ce serait fait appeler [jespoile] ou [hide] :o ou autre par un délire de Sephi ou je ne sais quel admin :lol:.

'Fin bref, pour le __construct() ok parce qu'il est spécial mais bon si je défini quand même ma valeur à l'intérieur du __construct () { $this->nom = 'toto'; } ça marche quand même donc pour le moment je vois pas la différence, quand j'aurais lu de la POO peut-être que oui Big Grin.


RE: POO, gestion et utilisation - christouphe - 29-11-2010

la différence avec / entre quoi et quoi ...je te suis pas là...


RE: POO, gestion et utilisation - Dexyne - 29-11-2010

Bah si je défini ma variable dans les parenthèses de __construct ou dans __construct lui même (entre { et } ).

->Dans parenthèses :



__construct ($nomInitial='toto') {
$this -> monNom = $nomInitial;
}


->Dans accolades :



__construct () {
$this -> monNom = 'toto';
}


Je sais je suis chiant mais bon (en plus on est maintenant en fin de journée alors là c'fini pour toi XD)


RE: POO, gestion et utilisation - christouphe - 29-11-2010

* christouphe prend sa baguette d'instit'
Dans le premier cas,

__construct ($nomInitial='toto') {
$this -> monNom = $nomInitial;
}

tu peux construire ton objet de 2 façons différentes:

$oMaClasse = new maClasse(); //oMaClasse aura toto dans $monNom

$oMaClasse = new maClasse("tutu"); //oMaClasse aura tutu dans $monNom

avec le tiens, tu traduit seulement le premier cas Wink


RE: POO, gestion et utilisation - Dexyne - 29-11-2010

Bah voilà c'est tout de suite plus claire là XD.

Fallait me le dire plus tôt :p.

C'est mieux de définir toutes les variables dans ma class "principale" ou je rajoute via des extends de ma classe.

Par exemple mes unités d'infanteries auraient un valeur de réflexe qui servirait à esquiver les attaques (ou même d'augmenter leur capacité réactif, attaque plus vite par exemple).
Le truc c'est qu'un véhicule ne possède pas de réflexes, toutefois les unités à bords on pourrait dire que oui (temps de réagir face à une situation).
De même pour le blindage, une infanterie n'en aura pas.

Mais si par exemple j'ai un genre de mecha (style mangas hein) ils ressemblent à des humains (donc des infanteries mais sont des véhicules donc leur cas serait un peu des 2).

Enfin bon je sais pas trop comment je vais gérer ça. Je me dis "autant tout mettre dans la classe" parce qu'actuellement c'pas gênant mais qui sait par la suite.
Après j'ai que 2 valeurs qui diffèrent entre mais bon.


RE: POO, gestion et utilisation - niahoo - 29-11-2010

(29-11-2010, 05:22 PM)Dexyne a écrit : Bah si je défini ma variable dans les parenthèses de __construct ou dans __construct lui même (entre { et } ).

->Dans parenthèses :



__construct ($nomInitial='toto') {
$this -> monNom = $nomInitial;
}


->Dans accolades :



__construct () {
$this -> monNom = 'toto';
}


Je sais je suis chiant mais bon (en plus on est maintenant en fin de journée alors là c'fini pour toi XD)

les parenthèses ça s'appelle la liste des paramètres d'une fonction ...

et sinon, pour les

$this->monNom; // cette ligne ne sert à rien

Ben tu peux faire pareil en procédural*
$salut = 'hello';
$salut;
142;
'bonjour';

*fin bon c'est pasque t'es à l'intérieur d'une classe ou d'une fonction qu'il y a une quelconque différence avec le procédural.. Le seul endroit où tu peux pas coder c'est « entre les fonctions » dans un corps de classe.


RE: POO, gestion et utilisation - Argorate - 29-11-2010

(28-11-2010, 03:53 AM)niahoo a écrit : Tu n'a pas lu. C'est une interface qui permet à ta classe d'avoir le comportement d'un tableau.
dans mon exemple bidon au dessus,

je fais par exemple « $armes[] = new Weapon($weapon_id, $myplayer->weaponBonuses()); »
mais n'oublions pas que $armes est une instance d'une classe perso,
donc tu as tous les
$armes->getCeQueTuVeux(),
$armes->getBestDPSWeaponID(),
$armes-><obtenir les armes pour lesquelles les bonus donnés n'auront plus d'effet en s'améliorant>()

etc..

Fin bon c'est pas un tableau quoi.

J'ai pas lu?
(28-11-2010, 03:53 AM)niahoo a écrit : non plus précisément, l'arrayobject est une classe qui se comporte comme un tableau.

Tu es sur? Smile


Dexyne : pour ta fonction fait attention, effectivement, la fonction que tu donnes n'est pas dynamique, tu met la valeur "'toto'" a chaque fois dans ton objet, alors que l'autre version te permet de mettre se que tu veux, et que par DEFAUT elle aura une valeur si toi tu n'en met pas lors de l'appel (c'est juste un cas particulier) ^^


RE: POO, gestion et utilisation - niahoo - 29-11-2010

argorate, relis tout simplement, in a assez expliqué.. disons plutot que cette classe adopte le comportement d'un tableau _en plus_ de ceux que tu lui donnes


RE: POO, gestion et utilisation - Dexyne - 30-11-2010