Bonjour
alors déjà mettons les points sur les i la programmation est surtout un hobby et aussi un moyen d'ameliorer ma logique pour m'améliorer en maths etc ...
Donc je débute Java
Mais le probleme c'est que je ne comprend pas vraiment les instances si vous pouvez m'éclairer ce serait sympa merci
AnimalFamilier monAnimal = new AnimalFamilier();
je ne comprend pas cette syntaxe
et par ailleurs je n'ai pas vraiment compris le return il renvoie le resultat final d'une methode a une class qui l'appelle ?
merci de m'éclairer si par ailleurs vous avez des conseils des guides
PS : je suis le tutoriel java enfant
non je ne suis pas le tutoriel java enfant mais je le suiT
Il faudrait que tu résumes où tu en es, tu es à l'aise avec les notions de variables, méthodes etc...?
Déjà il faut bien identifier le vocabulaire pour éviter de s'emmêler les pinceaux.
AnimalFamilier c'est une classe.
monAnimal c'est une instance de la classe AnimalFamilier, aussi appelé un objet de type AnimalFamilier
Dans ton code on crée un exemplaire de AnimalFamilier et on enregistre sa référence dans monAnimal.
Et oui, return ça retourne le résultat d'une méthode à celui qui y fait l'appel.
Le 04 janvier 2016 à 20:24:36 _skip a écrit :
Il faudrait que tu résumes où tu en es, tu es à l'aise avec les notions de variables, méthodes etc...?
Déjà il faut bien identifier le vocabulaire pour éviter de s'emmêler les pinceaux.AnimalFamilier c'est une classe.
monAnimal c'est une instance de la classe AnimalFamilier, aussi appelé un objet de type AnimalFamilierDans ton code on crée un exemplaire de AnimalFamilier et on enregistre sa référence dans monAnimal.
Et oui, return ça retourne le résultat d'une méthode à celui qui y fait l'appel.
Oui les méthodes et variables j'ai parfaitement compris selon moi en tout cas la ça ma beaucoup aidé merci de ton explication
et sinon une autre sintaxe que je comprend pas c'est le this
Le 04 janvier 2016 à 20:32:09 heliosx a écrit :
Le 04 janvier 2016 à 20:24:36 _skip a écrit :
Il faudrait que tu résumes où tu en es, tu es à l'aise avec les notions de variables, méthodes etc...?
Déjà il faut bien identifier le vocabulaire pour éviter de s'emmêler les pinceaux.AnimalFamilier c'est une classe.
monAnimal c'est une instance de la classe AnimalFamilier, aussi appelé un objet de type AnimalFamilierDans ton code on crée un exemplaire de AnimalFamilier et on enregistre sa référence dans monAnimal.
Et oui, return ça retourne le résultat d'une méthode à celui qui y fait l'appel.
Oui les méthodes et variables j'ai parfaitement compris selon moi en tout cas la ça ma beaucoup aidé merci de ton explication
et sinon une autre sintaxe que je comprend pas c'est le this
'this' fait référence à l'instance de la classe.
C'est le "contexte".
Le 04 janvier 2016 à 20:37:31 Grabugelelion a écrit :
Le 04 janvier 2016 à 20:32:09 heliosx a écrit :
Le 04 janvier 2016 à 20:24:36 _skip a écrit :
Il faudrait que tu résumes où tu en es, tu es à l'aise avec les notions de variables, méthodes etc...?
Déjà il faut bien identifier le vocabulaire pour éviter de s'emmêler les pinceaux.AnimalFamilier c'est une classe.
monAnimal c'est une instance de la classe AnimalFamilier, aussi appelé un objet de type AnimalFamilierDans ton code on crée un exemplaire de AnimalFamilier et on enregistre sa référence dans monAnimal.
Et oui, return ça retourne le résultat d'une méthode à celui qui y fait l'appel.
Oui les méthodes et variables j'ai parfaitement compris selon moi en tout cas la ça ma beaucoup aidé merci de ton explication
et sinon une autre sintaxe que je comprend pas c'est le this
'this' fait référence à l'instance de la classe.
C'est le "contexte".
Donc imaginons j'ai une classe peugeot concept et une instance peugeot usine comment dois je employer this ?
et je ne comprend pas aussi
AnimalFamilier monAnimal = new AnimalFamilier();
Le premier et le dernier AnimalFamilier représente quoi
Skynet afin d'annihiler la race humaine va créer des terminators, les T-101. Skynet ne sait pas encore comment créer un terminator donc avant de fondre l'acier elle a besoin de faire ses plans; ses dimensions, sa résistance, sa vitesse et aussi les fonctions qui lui permettent d'identifier un ennemi, comment courir, comment parler
Maintenant que c'est prêt, Skynet commence la production des terminators à partir de ces plans là, elle fait introduire la matière première tel que l'or et le fer à l'usine de fabrication qui va les transformer et créer un terminator prêt à combattre 
Donc pour résumer la classe c'est les plans et les instances c'est les terminators
Chaque terminator a une conscience de lui même, représenté par le mot "this"
Ok je comprend mieux je te remercie mais je ne comprend toujours pas la syntaxe
AnimalFamilier monAnimal = new AnimalFamilier();
J'ai compris que monAnimal est une instance de AnimalFamilier mais pourquoi avoir mis AnimakFamilier avant l'instance pourquoi ne pas avoir fait simplement
monAnimal = new AnimalFamilier(); ?
Parce que Java et de typage statique fort, donc chaque variable quand elle est déclarée doit avoir son type avec, contrairement aux langages dits dynamique comme python qui ne demandent pas à préciser le type
Le 04 janvier 2016 à 21:00:18 heliosx a écrit :
Ok je comprend mieux je te remercie mais je ne comprend toujours pas la syntaxeAnimalFamilier monAnimal = new AnimalFamilier();
J'ai compris que monAnimal est une instance de AnimalFamilier mais pourquoi avoir mis AnimakFamilier avant l'instance pourquoi ne pas avoir fait simplement
monAnimal = new AnimalFamilier(); ?
Java est un langage fortement typé. Tu dois donc indiquer au compilateur le type de ta variable monAnimal. Ici monAnimal est une instance de la classe AnimalFamilier, ta variable monAnimal sera donc de type AnimalFamilier.
exemple :
int monEntier = 7;tu indique au compilateur que ta variable monEntier contient un entier et uniquement un entier. C'est une contrainte sensée, que tu t'imposes pour permettre au compilateur par la suite de te gronder si tu fais quelque chose qui va pas.
Si tu veux un variable contenant un nombre d'enfant, tu ne veux que des nombres entiers un nombre décimal n'aurait pas de sens, tu déclares donc la variable comme entier. Si par la suite, tu assignes autre chose qu'un entier à cette variable, le compilateur va t'insulter et tu auras sûrement évité un bug bête et chiant à débusquer.
Merci
je vient de tout comprendre maintenant
si jamais j'ai d'autre question je vous les ferais parvenir
Bonjour
pourquoi ce code est faux ?
public class Avion {
int altitudeActuelle;
Avion(int altitudeDepart) {
altitudeActuelle = altitudeDepart + altitudeActuelle;
}
public void afficherAlt() {
System.out.println("Votre altitude actuelle est de " + altitudeActuelle);
}
Avion monAvion = new Avion(5000);
monAvion.afficherAlt();
}J'ai une erreur au dernier afficherAlt();
mon objectif avec ce code est de créer une instance qui a une altitude specifique est d'ensuite appeler l'afficheur pour savoir mon altitude
Parce que afficheralt() n'est pas dans ta class avion.
Ne fais pas attention , j'ai louper une accolade sur mobile ...
Le 06 janvier 2016 à 17:55:14 darkepsylon a écrit :
Ne fais pas attention , j'ai louper une accolade sur mobile ...
Ouais l'affichage est bizarre pas grave l'erreur c'est indentifier expected after this token
Essaye d'instantier ton Objet avion en dehors de ta class avion , Ça devrais resoudre ton problème
Et tu n' initialise jamais altitudeActuelle au passage .
Tu dis qu'elle est égal a elle même plus altitudebase sans jamais lui donner de valeur.
Ça peut poser problème je pense.
Le 06 janvier 2016 à 18:14:51 darkepsylon a écrit :
Essaye d'instantier ton Objet avion en dehors de ta class avion , Ça devrais resoudre ton problèmeEt tu n' initialise jamais altitudeActuelle au passage .
Tu dis qu'elle est égal a elle même plus altitudebase sans jamais lui donner de valeur.Ça peut poser problème je pense.
sauf erreur je crois avoir vu sur le guide java enfant que si on ne donnait pas de valeur a une variable de type int elle avait 0 par défaut mais en soit oui j'aurais pu mettre 0
C'est bon ça marche il fallait séparer les classes je ne comprend pas pourquoi surtout que j'ai vu du code ou on crée des instances dans une classe directement
monAvion.afficherAlt();Une expression comme ça ne peut pas se balader en dehors d'une fonction