Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

besoin d'aide pour comprendre les setters et getters en java




  1. #1
    herman2018

    besoin d'aide pour comprendre les setters et getters en java

    bonsoir ou bonjour , je suis un débutant en java et je je débute le concept orienté objet. actuellement au niveau des getters et des setters j'aimerais savoir s'il est possible de récupérer une valeur entrée au clavier et la stoker dans une variable déclare private si oui comment le faire
    Merci encore

    -----


  2. Publicité
  3. #2
    pm42

    Re : besion d'aide pour comprendre les setters et getters en java

    Si ta variable est private, tu ne peux l'accéder que par un setter. C'est justement tout le principe : on sépare la façon dont les données sont stockées de la façon dont elles sont accessibles.
    Cela permet plus tard par exemple de décider que tu veux n'accepter que certaines valeurs, ou de la réprésenter différemment.
    Par exemple, si tu stockes une date, tu peux décider d'utiliser le format standard java.util.Date. Mais plus tard, tu peux utiliser un autre format plus efficace.

    Mais ton setter lui ne changera pas et tous les programmes qui s'en servent n'auront pas à s'adapter. C'est le concept d'encapsulation en programmation objet, en général bien documenté et expliqué dans les cours et livres sur le sujet.

  4. #3
    herman2018

    Re : besoin d'aide pour comprendre les setters et getters en java

    j'aimerais savoir si je peux effectuer un traitement sur un setters
    par exemple


    Code:
    public void setAge(int age) {
      System.out.println("entrer la valeur de l'age");
         Scanner sc = new Scannner(System.in);
        age = sc.nextline();
    	if(age < 15) {
    		System.out.println("interdit au moins de 15 ans");
    	}
    	else {
    		this.age= age;
    	}
    	
    }
    c possible de faire sa ???
    Dernière modification par JPL ; 01/05/2018 à 00h10. Motif: Ajout de la balise Code (#) pour garder l'indentation


  5. #4
    pm42

    Re : besoin d'aide pour comprendre les setters et getters en java

    Citation Envoyé par herman2018 Voir le message
    j'aimerais savoir si je peux effectuer un traitement sur un setters
    ...
    c possible de faire sa ???
    Tu peux faire des traitements, c'est même pour ça qu'on met un setter.
    Par contre, là tu fais un truc idiot : tu passes la variable age et tu l'ignores pour la demander à l'utilisateur...

    Bref, ce n'est plus un setter. Mettre le contrôle de la date >= 15 par contre est logique.
    Si tu veux faire une méthode qui demande à l'utilisateur, tu l'appelle "askAge" et elle appelle le setter une fois qu'elle a sa réponse.

    Et si tu veux qu'elle vérifie que le résultat est correct, le setter lève une exception au lieu de faire un println quand l'age est < 15.
    La méthode "askAge" va attraper l'exception, afficher son message à l'utilisateur et lui demander de recommencer par exemple.
    Dernière modification par pm42 ; 01/05/2018 à 07h08.

  6. #5
    herman2018

    Re : besoin d'aide pour comprendre les setters et getters en java

    ok merci je vais essayer et je tiens au courant, en passant en déclarant la méthode private sa risque pas causse de problème ???

  7. A voir en vidéo sur Futura

Discussions similaires

  1. besoin d'aide pour comprendre les setters et getters en java
    Par herman2018 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 30/04/2018, 23h39
  2. Besoin d'aide pour comprendre un programme
    Par yagami271 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 10/01/2015, 15h27
  3. Besoin d'aide pour comprendre
    Par Tavernicole dans le forum Électronique
    Réponses: 7
    Dernier message: 05/08/2013, 00h10
  4. Besoin D'aide pour comprendre un schéma
    Par kosbor57 dans le forum Électronique
    Réponses: 6
    Dernier message: 23/06/2011, 20h51
  5. Besoin d'aide pour comprendre schema
    Par wOq dans le forum Électronique
    Réponses: 33
    Dernier message: 30/01/2009, 10h48