Java : constructeurs, help !

Résolu
Wenzel Messages postés 254 Statut Membre -  
 danimo -
Bonjour,
Je suis en train d'apprendre le et je ne comprend pas comment fonctionnent les constructeurs, je m'explique dans un exemple :

nous avons définis en cours une UnPoint suivie d'une classe Unrectangle comme suit :

class UnPoint {
int abscisse,ordonnee;

UnPoint () {
this.abscisse = 0;
this.ordonnee = 0;
}

void translation (int dx ,int dy) {
this.abscisse = this.abscisse + dx;
this.ordonnee = this.ordonnee + dy;
}

}
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
class Unrectangle {
UnPoint coin;
int largeur;
int hauteur;

Unectangle () {
coin = new UnPoint();
largeur = 1;
hauteur = 1;
}
}

seulement que se passe-t-il si je met un nouveau constructeur UnRectangle comme ceci ?

UnRectangle () {
coin = new UnPoint (13);
largeur = 1;
hauteur = 1;
}
Configuration: Windows 7 Professionnel x64 bits
Q6600 2,4 GHz
4Go RAM Kingston
Nvidia geforce 9800 GX2
ASUS P5K

7 réponses

  1. Marco la baraque Messages postés 1030 Statut Contributeur 329
     
    Bonjour,
    Tu vas avoir une erreur de compilation car tu n'as pas défini de constructeur
    public Point(int i) {
    //Do something
    }
    


    Par contre, si tu définis ce constructeur dans Point, ça va fonctionner.

    Cordialement,
    0
  2. danimo
     
    Salut,

    Un constructeur (ou des constructeurs) doit (doivent) avoir LE MÊME NON QUE LA CLASS.

    S'il y a plusieurs constructeurs (surcharge):

    Le compilateur distingue les constructeurs en fonction
    - de la position des arguments
    - de leur nombre
    - de leur type

    Cordialement,

    Dan
    0
  3. Wenzel Messages postés 254 Statut Membre 14
     
    merci, ca va dejà mieux ^^
    0
  4. nabil07 Messages postés 161 Statut Membre 64
     
    KONNICHIWA,

    tu ne peux pas ajouter deux constructeur de meme structure
    il faut mettre au moins un sans parametres et l'autre paramétré " UnRectangle(int arg){..}.
    sinon tu auras une erreur de compilation.
    0
    1. danimo
       
      Salut,

      On peut avoir autant de constructeurs que nécessaire tous de même non (celui de la classe), avec ou sans paramètres, pour autant il est vrai que la structure soit différente (nombre de param., type, position)...

      Cordialement,

      Dan
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Wenzel Messages postés 254 Statut Membre 14
     
    Voilà que le java est plus clair pour moi au niveau des constructeurs, j'ai reussi a comprendre sa structure, avec ses classes en privées ou publiques, qui agissent entre ellesz avec des méthodes...

    Merci a tous pour vos réponses !

    la seule matière qui me fasse encore peur est l'algorithmie:
    je n'arrive a faire aucun exo du cours et le devoir est dans une semaine...

    Quelles sont vos méthodes pour créer un algorithme a partir d'un sujet ? Comment faisiez vous lorsque vous étiez étudiant en informatique (comme moi ^^) pour résoudre un problème en faisant un algorithme ?
    0
  7. Wenzel Messages postés 254 Statut Membre 14
     
    Voilà que le java est plus clair pour moi au niveau des constructeurs, j'ai réussi a comprendre sa structure, avec ses classes en privées ou publiques, qui agissent entre elles avec des méthodes...

    Merci a tous pour vos réponses !

    la seule matière qui me fasse encore peur est l'algorithmique:
    je n'arrive a faire aucun exo du cours et le devoir est dans une semaine...

    Quelles sont vos méthodes pour créer un algorithme a partir d'un sujet ? Comment faisiez vous lorsque vous étiez étudiant en informatique (comme moi ^^) pour résoudre un problème en faisant un algorithme ?
    0
    1. pacorabanix
       
      je n'ai pas été étudiant en informatique, mais, la première choses à faire, maintenant que tu vois un peu ce qu'un programme peut faire, c'est essayer de faire toi-même (devant une feuille de papier) ce que tu demandes à l'ordinateur.

      Une fois que tu as bien compris toi-même comment faire les choses tu peux traduire ça en des boucles, if, etc...


      NOTE : un très bon cours de Java (de bon niveau, mais destiné à ceux qui n'y ont jamais touché) est : Data Structures de l'université de Berkeley sur Youtube. Cherche la "Chaîne" Berkeley University, là ils ont une playlist "Data Structures fall" (fall = automne). Si tu comprends un peu l'anglais tu verras je trouve que le gars explique très bien, et il écrit plein de choses au tableau.
      0
  8. danimo
     
    Re,

    À propos des constructeurs. il faut savoir que toute classe possède au moins un constructeur même si la classe ne dédéfinit pas explicitement de constructeur: c'est le constructeur par défaut sans arguments et qui n’effectue aucune initialisation particulière qui sera invoqué.
    Exemple:

    LaClasse monObjet; // déclaration
    monObjet = new LaClasse(); // création et allocation mémoire

    On peut dire que les constructeurs sont des méthodes particulières implicitement void et qui portent le même nom que la classe.
    On les distingue immédiatement dans les listes des programmes SI ON À RESPECTÉ LA RÈGLE DE NOMMAGE DES CLASSES (le nom des classes commence par une MAJUSCULE) alors que les méthodes ont un nom qui commence par une minuscule Ex : maMethode() ou mieux le nom commence par un verbe à l'infinitif et en minusclues Ex. faireLecalculDe...(...)

    Ici nom de la classe LaClasse et nom du constructeur LaClasse()

    Dan
    0