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

[JAVA] Problème avec les constructeurs.

iShonan
iShonan
Niveau 15
20 décembre 2010 à 04:06:23

Bonsoir,

J'apprends le langage Java et je n'arrive pas à comprendre la partie sur les constructeurs.
Quelqu'un pourrait me montrer un exemple ? (avec par exemple l'age, le nom et le prénom d'une personne).

Signé quelqu'un de complétement paumé.
Merci d'avance.

tbop2
tbop2
Niveau 10
20 décembre 2010 à 09:37:06

Peut-être devrais tu commencer par un langage plus bas-niveau comme le C par exemple si tu es paumé sur des concepts pourtant simples comme un constructeur (parce qu'honnêtement je ne vois pas trop où est le trick en fait :) ). C'est ma réponse !

String[]args
String[]args
Niveau 23
20 décembre 2010 à 09:39:37

Les constructeurs, c'est ce qui va te permettre de créer des objets de la classe correspondante dans ton programme principal. :o)) Autrement dit, dans ton main, de pouvoir écrire :

Personne p = new Personne("Super", "Man", 45);

...pour créer un homme qui s'appelle Super Man et qui a 45 ans. :o))
Dans ta classe Personne, t'auras alors un constructeur qui ressemble à :

public Personne(String n, String p, int a) {
this.nom = n;
this.prenom = p;
this.age = a;
}

Le 'public' et les 'this.' sont pas obligatoires, c'est surtout pour te montrer que nom, prenom et age sont les attributs de classe et n, p, a les paramètres (qui prendront les valeurs "Super", "Man" et 45 pour initialiser ta personne). :o))

Voilà, expliqué grossièrement c'est ça. :p

String[]args
String[]args
Niveau 23
20 décembre 2010 à 09:41:59

Euh nom, prenom et age sont des attributs d'instance, pas de classe. :noel:
Mais bon voilà le principe est le même. :o))

tbop2
tbop2
Niveau 10
20 décembre 2010 à 11:10:31

En fait j'ai oublié de te demander sur quel site ? livre tu apprenais actuellement le JAVA ?

Normalement si tu trouves un bon site il devrait t'expliquer exactement ce que String[]args a pris le temps de t'expliquer, en mieux d'ailleurs très certainement (sans vouloir t'offenser).

iShonan
iShonan
Niveau 15
20 décembre 2010 à 13:33:40
  1. Tbop2 Voir le profil de Tbop2
  2. Posté le 20 décembre 2010 à 09:37:06 Avertir un administrateur
  3. Peut-être devrais tu commencer par un langage plus bas-niveau comme le C par exemple si tu es paumé sur des concepts pourtant simples comme un constructeur (parce qu'honnêtement je ne vois pas trop où est le trick en fait :) ). C'est ma réponse !

:d) J'apprends le C aussi étant donné que je fais une Licence Informatique. :-)))

String[]args :d) Ok je vais essayer heureusement que "this" n'est pas obligatoire vu que nous l'avons pas encore vu. :-p

iShonan
iShonan
Niveau 15
20 décembre 2010 à 15:05:03

Bon je n'arrive décidément pas à comprendre ces constructeurs. :hum:

Voila ce qu'il y a dans mon premier fichier Info.java :
Il y contient le constructeur :

import java.util.Info.*;
public class InfoMain {
public static void main(String[] args) {
Info p = new Info();
System.out.println(p);
}
}

Dans un seconde fichier InfoMain.java :

import java.util.Info.*;
public class InfoMain {
public static void main(String[] args) {
Info p = new Info();
System.out.println(p);
}
}

Comme vous pouvez le voir j'essaie d'afficher le nom, prénom et âge mais je comprends toujours pas comment fonctionne le constructeur...

iShonan
iShonan
Niveau 15
20 décembre 2010 à 15:08:59

Me suis emmêler les pinceaux ! C'est l'inverse pour les programmes. :-p

String[]args
String[]args
Niveau 23
20 décembre 2010 à 18:05:22

Ouh lalala ! xD
Pourquoi t'as deux fichiers identiques déjà ? Un seul suffit amplement... :o))
Et si ton code est tel que tu l'as posté (et même en inversant les deux programmes, ce qui change rien puisqu'ils sont identiques d'ailleurs), t'as même pas programmé la classe Info tout court, donc c'est normal que ça marche pas. :o))

D'un côté, tu dois avoir un fichier Info.java avec :
- Déclaration de la classe
- Déclaration des attributs
- Constructeur
- Méthode d'affichage ( oui parce qu'on imprime pas les attributs d'un objet en passant par un simple println, du moins pas celles que t'attends... :o)) )

Ton importation à la première ligne est inutile aussi, le package java.util.Info n'existe pas et il n'a rien à faire là. :o)) Si tu veux utiliser ta propre classe Info, t'as rien à importer, ça marche tout seul à partir du moment où tes fichiers Info.java et InfoMain.java sont dans le même dossier. :p

Donc dans ton fichier Info.java tu devrais avoir quelque chose qui ressemble à mon message précédent (un constructeur quoi). x)
Et dans ton main, il faut remplir ton constructeur, sinon il peut pas deviner tout seul les infos de ta personne p.

Et si tu veux pouvoir afficher les informations de p pour vérifier si ça marche, il faut programmer toi-même une méthode d'affichage, sinon c'est l'adresse mémoire de p qu'il va afficher en console (ce qui, a priori, ne t'intéresse pas plus que ça). :o))

Donc dans ton fichier Info.java, tu devrais avoir une méthode (l'affichage sera affreux mais c'est pour le principe) :
// Le nom de la méthode est primordial sinon ça marche pas
public String toString() {
return "Nom : " + nom + "Prenom : " + prenom + "Age : " + age;
}

Voilà, et là ton println appellera cette méthode et affichera les informations correctement. :fou:
Voilà, ça fait pas mal de trucs à changer du coup, si t'as pas compris je peux réexpliquer. :noel:

iShonan
iShonan
Niveau 15
20 décembre 2010 à 18:24:38

OMG. :rire:
J'ai copier/coller 2 fois le même programme, je suis désolé. :)

Pourrais-tu me donner ton adresse mail ?

String[]args
String[]args
Niveau 23
20 décembre 2010 à 18:27:43

Je pourrais oui, mais certainement pas ici. :o))

iShonan
iShonan
Niveau 15
20 décembre 2010 à 18:30:13

Ok ajoute moi alors :d) Tidus95_alchimiste@msn.com (oui drôle d'adresse je sais. :hap: ).

En espérant pouvoir te parler sous peu.

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