CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Petite Question en java ( méthode...)

DutReseau
DutReseau
Niveau 10
19 février 2014 à 21:53:39

Bonjour, je suis en DUT r&t et dans notre module de java. on a vu les méthodes, constructeurs,l'héritage toussa... je sais l’appliquer en TP quand c'est demandé, j'ai des bonnes notes mais clairement, ça sert à quoi? en fait, déjà, je vois pas l’Intérêt d'une méthode. pourquoi ne pas tout mettre dans un main ?
Car par exemple, j'ai une variable dans mon main, eh bah, je ne peux pas l'utiliser dans ma méthode ( même avec public, ça marchait pas )
pour le constructeur, ça veut quoi le this.variable = variable;
donc voilà, je me pose plein de question et je voulais savoir, pourquoi on utilise tout ça.
merci d'avance, j'espère avoir été assez clair dans mon problème

Link_2408
Link_2408
Niveau 6
19 février 2014 à 22:00:03

En gros tu te poses des questions sur l'utilité de l'orienté objet c'est ça ??

DutReseau
DutReseau
Niveau 10
19 février 2014 à 22:08:14

oui voilà

Link_2408
Link_2408
Niveau 6
19 février 2014 à 22:19:41

Le but de l'orienté objet c'est pouvoir mieux organiser l'architecture du logiciel.

Au début c'est pas très évident à voir vu qu'en TP c'est juste pour appliquer des connaissances, mais quand on est amené à faire de gros projets, avec plein de classes, ça aide beaucoup. Ca aide parce que c'est plus facile à debugger, mais aussi parce que quand c'est bien fait, c'est plus facile d'ajouter des fonctionnalités, surtout quand on sait que le client veut tout le temps rajouter des trucs.

Si on met tout dans un même fichier c'est ultra bordélique et c'est dur à debugger.

Je sais pas si tu as vu le Modele Vue Controleur et l'UML, parce qu'en générale ça va ensemble, surtout pour l'UML.

DutReseau
DutReseau
Niveau 10
19 février 2014 à 22:21:31

c'est juste une question d'organisation du programme finalement . ok merci.

Link_2408
Link_2408
Niveau 6
19 février 2014 à 22:25:30

Oui voilà. De rien :)

DutReseau
DutReseau
Niveau 10
19 février 2014 à 22:27:55

mais c'est quoi la différence entre créer une méthode et une sousclasse avec l'héritage car les 2 divisent le main en portion?

Link_2408
Link_2408
Niveau 6
19 février 2014 à 22:44:22

La méthode c'est :

-une fonction ( elle renvoie quelque chose)
-ou une procédure (elle ne renvoie rien)

Quand tu fait public static void main(String args), le main c'est une méthode.

Une sous-classe ça reste une classe comme les autres, avec des attributs et des méthodes, la seule différence c'est qu'elle hérite des propriétés de la classe mère, les attributs de la classe mère sont aussi les attributs de la classe fille.

L'avantage d'avoir ça c'est pour ne pas avoir des classes qui ont des trucs en commun. Chaque doit avoir des caractéristiques qui lui sont propres. Si tu as au moins deux classes qui ont des attributs ou des méthodes en commun, alors il faut créer une classe mère qui aura ces attributs en commun.

Par exemple, tu as 3 classes. Une classe personne, une classe etudiant, et une classe prof.

L'etudiant et le prof ils ont en commun : un nom, un prénom, un age.
Ces 3 trois attributs tu les mets dans la classe mère, c'est-à-dire Personne. Donc quand tu va instancier la classe enfant, ben il aura les caractéristiques de la classe Personne, tous comme Prof, mais les objets crées sont distincts.

Link_2408
Link_2408
Niveau 6
19 février 2014 à 22:46:36

Normalement les méthodes applicable à une classe doivent être définie dans la classe qui a la responsabilité. Etpour les classe il faut avoir un truc du genre

-> une classe = un fichier

DrZ_Vinc3
DrZ_Vinc3
Niveau 6
20 février 2014 à 00:55:33

Juste pour savoir tu es en premiere ou 2eme année de DUT?

DutReseau
DutReseau
Niveau 10
20 février 2014 à 08:02:03

1ere année et merci, j'ai enfin compris !

DutReseau
DutReseau
Niveau 10
20 février 2014 à 22:30:46

désolé de vous déranger mais aujourd’hui j'ai fais un td de prog java et on a traité ce programme :d)
https://image.noelshack.com/fichiers/2014/08/1392931765-java.png
et je comprends pas pourquoi il affiche tel ou tel chose.

DutReseau
DutReseau
Niveau 10
20 février 2014 à 22:31:40

donc si vous pourriez me donner un coup de pouce, merci ;)

Bunyan
Bunyan
Niveau 17
20 février 2014 à 22:58:53

La prochaine fois, fourni plutôt le code via pastebin ou un service du même tonneau, c'est plus pratique :)

Vous êtes en train de voir l'héritage, non ?

a1 est déclarée A et est de type A.
a2 est déclarée A et est de type B.
b est déclarée B et est de type B.

Toute la difficulté ici est de déterminer quelle méthode est appelée suivant le type.

a1.f(a1) => A et A. Les deux sont des A, pas besoin d'aller plus loin.

a1.f(a2) => a1 est déclarée A et est A, a2 est déclarée A et est B. La méthode f appelée est celle de A. Nous avons ici pour seule certitude que a2 est A donc "A et A".

a2.f(a1) => a2 est déclarée A et est B, a1 est déclarée A et est A. a2 est B, donc c'est la méthode f de B qui est appelée. a1 étant A => "B et A".

a2.f(a2) => même explication que pour a1.f(a2), sauf que la méthode appelée est celle de B.

a2.f(b) => a2 est déclarée A et est B, b est déclarée B et est B. a2 est B, donc c'est la méthode f de B qui est utilisée. b est B donc => "B et B".

b.f(a2) => même explication que pour a1.f(a2), sauf que c'est la méthode f de B qui est invoquée.

Si tu comptes passer un jour les certifications Java, ce type de question (en plus complexe) est fréquent.

vive_cod4
vive_cod4
Niveau 9
20 février 2014 à 22:59:14

Tout d'abord il faut distinguer 2 choses : le type local de la variable (à gauche du =) et le type dynamique (à droite du =)

Donc quand tu passes un type local dans une fonction, il va prendre le type local. Typiquement pour a1.f(a2) ça donne A et A parce que le type local de a2 est "A" et le type dynamique de a1 est A.

Pour le type dynamique, il va s'appliquer quand tu appelles une méthode depuis celui-ci. Donc faire a2.f(a1) fera B et A car le type dynamique de a2 et "B" et a1 le type local "A". Même raisonnement pour a2.f2(a2). Le premier a2, son type dynamique et B mais son type local et A !

Pour le reste, c'est plus évident.

Link_2408
Link_2408
Niveau 6
20 février 2014 à 23:02:18

Si je prend l'exemple "B et A", en fait le but de ce tp c'est de comprendre exactement comment se passe l'appel d'une fonction défini dans tel classe avec en paramètre un objet de type d'une classe désignée.

Dans "B et A" ,B est la classe de l'objet qui appel la fonction, et A est le type de l'objet qui passe en paramètre.

DutReseau
DutReseau
Niveau 10
20 février 2014 à 23:24:46

ok merci les gars, je pars lire plus attentivement les réponses

Bunyan
Bunyan
Niveau 17
21 février 2014 à 08:07:47

Trois réponses à 4 minutes d'intervalle, c'est beau :)

DutReseau
DutReseau
Niveau 10
21 février 2014 à 12:45:37

oui c'est vrai, je les remercie mais quand tu dis:
a2 est déclarée A et est de type B.
je comprends pas la différence entre le type et le fait qu'elle soit déclarée A.

DutReseau
DutReseau
Niveau 10
21 février 2014 à 15:29:19

désolé de vous déranger encore une fois mais je m'entrainais au niveau de l'héritage toussa et pourquoi j'ai une erreur ici?

https://image.noelshack.com/fichiers/2014/08/1392992888-erreur-un-peu-wtf.png

:snif:

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment