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

MATLAB Discussion :

erreur déclaration méthodes [Débutant]


Sujet :

MATLAB

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2011
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 221
    Points : 62
    Points
    62
    Par défaut erreur déclaration méthodes
    Bonjour,
    Je ne sais pas que signifie l'erreur suivante ?
    " ??? No appropriate method, property, or field SetNomOrig for class Origine. "
    Sachant que "Origine.m" est une classe définie comme suit :
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    % class definition
    % ------------------------------------------------------------------------
    % Origine: implementation et interface de la classe Origine
    % ------------------------------------------------------------------------
    classdef Origine
       % définition des propriétés
       % ----------------------------------------------------------------------
      properties (SetAccess = public, GetAccess = public)
        nom_orig = {};  % nom d'origine
        long_orig = {}; % longueur d'origine
        NbVoies_orig = {}; % nombre de voies d'origine
        Vit_lib_orig = {}; % vitesse maximale d'origine
        Debit_max_orig = {}; % debit maximum de generation des vehicules en veh/heure
        nom_jonc_destination = {}; % jonction de destination pour l'origine
        index_orig = {};
     
      end
     
      % les méthodes publiques de la classe
      % ----------------------------------------------------------------------
      methods  
        % Constructeurs
        %----------------------------------------------------------------------
        function Origine = node(nom_orig, long_orig, NbVoies_orig, Vit_lib_orig, Debit_max_orig, nom_jonc_destination, index_orig)
          Origine.nom_orig = nom_orig;
          Origine.long_orig = long_orig;
          Origine.NbVoies_orig = NbVoies_orig;
          Origine.Vit_lib_orig = Vit_lib_orig;
          Origine.Debit_max_orig = Debit_max_orig;
          Origine.nom_jonc_destination = nom_jonc_destination;
          Origine.index_orig = index_orig;
        end
     
        % les méthodes "get" d'accès aux propriétés
        % ---------------------------------------------------------------------
        function nom_orig = GetNomOrig.nom_orig(Origine)
            nom_orig = Origine.nom_orig;
        end
     
        function long_orig = GetLongueurOrig.long_orig(Origine)
          long_orig = Origine.long_orig;
        end
     
        function NbVoies_orig = GetNbVoiesOrig.NbVoies_orig(Origine)
          NbVoies_orig = Origine.NbVoies_orig;
        end
     
        function Vit_lib_orig = GetVitesseLibreOrig.Vit_lib_orig(Origine)
          Vit_lib_orig = Origine.Vit_lib_orig;
        end
     
        function Debit_max_orig = GetDebitMaxOrig.Debit_max_orig(Origine)
          Debit_max_orig = Origine.Debit_max_orig;
        end
     
        function nom_jonc_destination = GetNomJonctionDestination.nom_jonc_destination(Origine)
          nom_jonc_destination = Origine.nom_jonc_destination;
        end
     
        % les méthodes "set" d'accès aux propriétés
        % --------------------------------------------------------------------
     
        function Origine = SetNomOrig.nom_orig(Origine,nom) 
            Origine.nom_orig = nom;
        end
     
        function Origine = SetLongueurOrig.long_orig(Origine, lg)
            Origine.long_orig = lg;
        end
     
        function Origine = SetNbrVoiesOrig.NbVoies_orig(Origine, nbv)
            Origine.NbVoies_orig = nbv;
        end
     
        function Origine = SetVitesseLibreOrig.Vit_lib_orig(Origine, vl)
            Origine.Vit_lib_orig = vl;
        end
     
        function Origine = SetDebitMaxOrig.Debit_max_orig(Origine, dem)
            Origine.Debit_max_orig = dem;
        end
     
        function Origine = SetNomJonctionDestination.nom_jonc_destination(Origine, JD)
            Origine.nom_jonc_destination = JD;
        end
     
      end  % end of public methods
     
    end  % end of class definition
    L'erreur survient lorsque je fais appel à une méthode de ma classe "Origine.m" par exemple en faisant dan un autre fichier "main.m":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    nom_orig = str2num(char(mots(1)));
    orig = Origine();
    orig.SetNomOrig(nom_orig);
    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    La syntaxe pour les getteurs et accesseurs est normalement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function valeur = get.nom_propriete(obj)
       valeur= ...
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function obj = set.nom_propriete(obj,valeur)
        obj.nom_propriete= valeur;
    end
    qui s'utilise ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    valeur = maClasse.nom_propriete
    maClasse.nom_propriete = valeur
    Voir Property Access Methods

    Si tu souhaites par contre utiliser explicitement une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function obj = nomSetter(obj,valeur) % sans le .nom_propriete 
        obj.nom_propriete = valeur;
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function valeur = nomGetter(obj) % sans le .nom_propriete 
        valeur = obj.nom_propriete;
    end
    utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    valeur = maClasse.nomGetter();
    maClasse.nomSetter(valeur)
    Remarque :
    Ces fonction se révèlent ici inutiles vu que tu as mis un accès GetAccess = public à tes propriétés. Tu peux donc directement faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    valeur = maClasse.nom_propriete
    maClasse.nom_propriete = valeur
    sans avoir besoin de ces fonctions (sauf si tu dois effectuer d'autres actions lors du set/get, ce qui ne semble pas (encore ?) être le cas ici).

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2011
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 221
    Points : 62
    Points
    62
    Par défaut
    Merci infiniment

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

Discussions similaires

  1. Erreur "La méthode ~ de l'objet ~ a échoué"
    Par aiffly dans le forum VB 6 et antérieur
    Réponses: 39
    Dernier message: 31/05/2007, 13h14
  2. erreur La méthode 'Range' de l'objet '_Global' a échoué
    Par mahboub dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/11/2006, 20h46
  3. [VBA-E]Erreur sur méthode de classeur
    Par vanima dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 20/02/2006, 12h32
  4. C erreur déclaration
    Par Yanmeunier dans le forum C
    Réponses: 24
    Dernier message: 27/10/2005, 17h24
  5. erreur déclaration variables
    Par bobic dans le forum ASP
    Réponses: 4
    Dernier message: 13/09/2005, 10h11

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