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

avec Java Discussion :

Fonction delete user dans liste User (passage reference parametres)


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2020
    Messages : 17
    Points : 17
    Points
    17
    Par défaut Fonction delete user dans liste User (passage reference parametres)
    Bonjour à tous, essayant de décortiquer une app qui liste des utilisateur en utilisant un FakeApiServiceGenerator je ne comprends pas la fonction deleteUser
    Ni d'ailleurs comment est déclaré la variable final apiservice de type ApiService

    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
    public class UserRepository {
     
        private final ApiService apiService; 
     
        public UserRepository(ApiService apiService) {
            this.apiService = apiService; // c'est ici qu'on déclare la variable "apiservice" ? je comprends pas ce qui se passe, comment je peux m'exprimer ce que je fais si je devais l'expliquer seul à voix haute à moi-même.
        }
     
        public List<User> getUsers() {
     
            return apiService.getUsers();
        }
     
        public void generateRandomUser() {
     
            apiService.generateRandomUser();
        }
     
        public void deleteUser(User user) {
           // Ici ici on passe la valeur objet user, le truc c'est que user est déclaré nulle part, comment savoir qu'on va delete UN item de liste User
     
          //corps de la méthode
            apiService.deleteUser(user);
     
     
    /* sachant qu'ils sont déclarés comme User ( ex new User("021", "Lea", "https://api.adorable.io/AVATARS/512/21.png"),
                                                    new User("022", "Geoffrey", "https://api.adorable.io/AVATARS/512/22.png"),) etc.. dans le FakeApiServiceGenerator */
     
        }
    }

  2. #2
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    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 : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Bonjour,


    Citation Envoyé par lanotic Voir le message
    [...] comment est déclaré la variable final apiservice de type ApiService

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class UserRepository {
    
        private final ApiService apiService;   // apiService est déclarée ICI ; elle est affectée dans le constructeur ci-dessous. Elle est forcément créée avant.
    
        public UserRepository(ApiService apiService) {
            this.apiService = apiService; // c'est ici qu'on déclare la variable "apiservice" ? je comprends pas ce qui se passe, comment je peux m'exprimer ce que je fais si je devais l'expliquer seul à voix haute à moi-même.
        }
    
    }


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public void deleteUser(User user) {
           // Ici ici on passe la valeur objet user, le truc c'est que user est déclaré nulle part, comment savoir qu'on va delete UN item de liste User
     
          //corps de la méthode
            apiService.deleteUser(user);
        }
    }
    [/QUOTE]

    La variable user est forcément déclarée quelque part. Mais pas dans ce code. L'objet user est déclaré dans le code appelant le UserRepository, le ApiService de même. Ces objets sont passés au UserRepository.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     User user = new User("022", "Geoffrey", "https://api.adorable.io/AVATARS/512/22.png");
      [ ... ]
     
     UserRepository repository = new UserRepository (apiService );
     repository.deleteUser( user );
    Et pour la fonction deleteUser, elle appelle simplement le apiService. L'action est déléguée, deleteUser ne sait pas ce qui est exécuté par apiService.

  3. #3
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    A l'intérieur d'une classe, les attributs sont généralement accessible directement sans les préfixer par "this.". Mais dans ton exemple, ça n'est pas le cas à l'intérieur du constructeur car le paramètre "apiService" porte le même nom que l'attribut. Dans ce cas, le paramètre masque l'attribut. L'utilisation directe du nom "apiService" fait référence au paramètre et non à l'attribut qui doit donc être préfixé par this pour le différencier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        public UserRepository(ApiService apiService) {
            this.apiService = apiService;
        }
    signifie que l'on initialise l'attribut apiService avec le paramètre du constructeur. C'est l'équivalent de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        public UserRepository(ApiService paramApiService) {
            apiService = paramApiService;
        }

Discussions similaires

  1. Images en fonction de choix dans listes déroulantes
    Par FCL31 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/03/2010, 17h27
  2. Images en fonction de choix dans liste déroulantes
    Par FCL31 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/03/2010, 16h08
  3. [AJAX] listes liées - passage de parametres
    Par dadal56 dans le forum AJAX
    Réponses: 8
    Dernier message: 07/04/2009, 21h38
  4. Réponses: 1
    Dernier message: 21/08/2008, 11h35
  5. [langage] Passage de paramètres dans une fonction
    Par And_the_problem_is dans le forum Langage
    Réponses: 11
    Dernier message: 28/06/2004, 08h20

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