IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Classe abstrait, classe et retourner deux variables


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 6
    Par défaut Classe abstrait, classe et retourner deux variables
    Bonjours, pour un travail de type pédagogique.
    Je suis étudiant et j'ai un problème pour me retourner deux variables.
    J'ai une classe deux classe qui hérite d'une classe abstraite.
    Je veux pouvoir retourner deux variables a partir d'une instance:
    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    public class Forme{
        public class abstract Paramettre();
     
    }
     
    public class Rectangle{
        private int hauteur;
        private int base;
     
        public class Rectangle(int h, int b){
            base=b;
            hauteur=h;        
        }
     
        public int getHauteur(){
            return hauteur;
        }
     
        public int getBase(){
            return base;
        }
     
     
        public class Paramettre(){
            return new Rectangle(getHauteur(), getBase());
        }
    }
     
    public class Carree{
        private int base;
     
        public class Carree(int b){
            base=b;       
        }
     
        public int getBase(){
            return base;
        }
     
     
        public class Paramettre(){
            return new Carree( getBase());
        }
    }
     
    public class Principale(){
        public class void main(String[] args){
            Forme F1 = new Carree(5);
            Forme F2 = new Rectangle(2,6);
     
            SOP("base du rectangle est: "+F1.Forme.getBase()+" la hauteur du rectangle est: "+F1.Forme.getHauteur());
            SOP("base du carée est: "+F1.Forme.getBase()+);
        }
     
    }
    je voudrais savoir pourquoi je ne peux pas récupéré les getBase et getHauteur?

    Merci

  2. #2
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Citation Envoyé par jerome38920;10750933
    public class Principale(){
    public class void main(String[
    args){
    Forme F1 = new Carree(5);
    Forme F2 = new Rectangle(2,6);

    SOP("base du rectangle est: "+F1.Forme.getBase()+" la hauteur du rectangle est: "+F1.Forme.getHauteur());
    SOP("base du carée est: "+F1.Forme.getBase()+);
    }

    }

    [/CODE]

    je voudrais savoir pourquoi je ne peux pas récupéré les getBase et getHauteur?

    Merci
    Peut-être parce que ces getters ne sont pas définis dans Forme ? Un transtypage pourrait aider si on connaît la classe concrète.
    Mais j'ai une autre question : Que signifie F1.Forme.getBase() ? Sachant que le getBase() est censé s'appliquer à une instance de "Carree".

  3. #3
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    ça se compile ça?
    Chaque classe a une méthode de même nom que la classe et qui a comme type de retour "class" ... le compilateur accepte ça?
    chaque type n'est pas une Forme ...
    etc.

  4. #4
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Citation Envoyé par professeur shadoko Voir le message
    ça se compile ça?
    Chaque classe a une méthode de même nom que la classe et qui a comme type de retour "class" ... le compilateur accepte ça?
    chaque type n'est pas une Forme ...
    etc.
    Bien vu ! J'avais dû corriger automatiquement, ça m'avait échappé.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 6
    Par défaut
    Excusez moi, en effet j'ai fais beaucoup d'erreur dans mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    public abstract class Forme {
        public abstract Forme Paramettre(); 
    }
     
     
     
     
     
    public class Rectangle extends Forme{
        private int hauteur;
        private int base;
     
        public Rectangle(int h, int b){
            base=b;
            hauteur=h;        
        }
     
        public int getHauteur(){
            return hauteur;
        }
     
        public int getBase(){
            return base;
        }
     
     
        public Rectangle Paramettre(){
            return new Rectangle(getHauteur(), getBase());
        }
    }
     
     
     
     
    public class Carre extends Forme{
        private int base;
     
        public Carre(int b){
            base=b;       
        }
     
        public int getBase(){
            return base;
        }
     
     
        public Carre Paramettre(){
            return new Carre( getBase());
        }
    }
     
     
     
    public class principal{
        public static void main(String[] args){
            Forme F1 = new Carre(5);
            Forme F2 = new Rectangle(2,6);
     
            SOP("base du rectangle est: "+F1.Paramettre().getBase()+" la hauteur du rectangle est: "+F1.Paramettre().getHauteur());
            SOP("base du carée est: "+F1.Paramettre().getBase());
        }
     
    }
    F1.Paramettre().getBase()
    et
    F1.Paramettre().getHauteur()

    Me permette de récupéré les deux variables qui sont la base et la hauteur.

    Le compilateur ne compile pas a cause de F1.Paramettre().getBase() et F1.Paramettre().getHauteur().

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 6
    Par défaut
    Merci , ça marche.

    Comme Cincinnatus me l'a fait remarquer, c'est parce que j'avais oublier de créer les méthodes getter dans la classe mère et de faire un super dans le constructeur des classes filles.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 06/10/2015, 02h13
  2. Réponses: 9
    Dernier message: 19/02/2014, 15h10
  3. Réponses: 2
    Dernier message: 15/06/2006, 15h23
  4. Réponses: 4
    Dernier message: 22/03/2006, 16h42
  5. Réponses: 6
    Dernier message: 28/09/2005, 12h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo