Partage
  • Partager sur Facebook
  • Partager sur Twitter

Variable private dans une classe

14 janvier 2015 à 15:30:35

Bonsoir,

Je commence à apprendre le java mais des petites questions se posent dans ma tête ^^

Déjà pourquoi il est dangereux de déclarer des variables d'instances d'une classe en public ? Enfin ça fait quoi que l'on puisse les modifier ces variables à partir de la classe main ?

Merci d'avance :p

  • Partager sur Facebook
  • Partager sur Twitter
14 janvier 2015 à 15:35:02

Bonjour.

L'intérêt des attributs privés est effectivement de ne pas pouvoir modifier les attributs en dehors de la classe.
Il s'agit d'un des concepts de la POO, que je t'invite à aller étudier car sinon en Java tu vas vite te poser des questions.

  • Partager sur Facebook
  • Partager sur Twitter
Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
14 janvier 2015 à 15:39:52

Merci de ta réponse !

Justement j'ai commencé et je suis à la page 107 du livre... mais je me demandais si c'était pas plutôt une histoire de sécurité ou autre.. mais NON !

Sinon, j'apprends en fait le Java pour me lancer dans les applications Android. J'ai vu qu'il y avait également un tutoriel que je commencerai ensuite... mais je voudrais qu'elle utilise le Matérial Design de Google, et ceci n'est pas spécifié dans le tuto. Comment pourrais-je faire ?

  • Partager sur Facebook
  • Partager sur Twitter
14 janvier 2015 à 16:32:05

Sécurité entre autres oui :
- La POO impose d'utiliser les méthodes (donc interdiction d'accès aux attributs), et la compilation permet de vérifier cela
- En Python les règles de POO s'"imposent" aussi mais il n'y a pas de mot clé privé/public, donc c'est au développeur de bien développer

Pour Matérial Design de Google désolé je ne sais pas.

  • Partager sur Facebook
  • Partager sur Twitter
Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
14 janvier 2015 à 16:40:15

Concernant : " La POO impose d'utiliser les méthodes (donc interdiction d'accès aux attributs), et la compilation permet de vérifier cela"

Concretement, si je veux juste accéder à l'attribut, pourquoi je ne pourrait pas faire monInstance.attribut sans avoir à passer par une méthode qui ne ferait rien d'autre que renvoyer l'attribut ? 

  • Partager sur Facebook
  • Partager sur Twitter
14 janvier 2015 à 18:45:21

tu peux le faire mais il est préférable au niveau sécurité de mettre des attributs en private dans une classe et de faire des accesseurs pour les modifier ou les récupérer regarde un cours sur l'encapsulation ca t'expliquera plus jpense que c'est pour pas modifier l'attribut dans une autre classe par exemple si tu fais ton truc tu ferais toto.nom="albert" dans un main par exemple

-
Edité par jonathanD 14 janvier 2015 à 18:45:56

  • Partager sur Facebook
  • Partager sur Twitter
14 janvier 2015 à 18:51:12

Maxime00 a écrit:

Concernant : " La POO impose d'utiliser les méthodes (donc interdiction d'accès aux attributs), et la compilation permet de vérifier cela"

Concretement, si je veux juste accéder à l'attribut, pourquoi je ne pourrait pas faire monInstance.attribut sans avoir à passer par une méthode qui ne ferait rien d'autre que renvoyer l'attribut ? 

Parce qu'en POO tu ne manipules pas les attributs mais tu effectues actions via les méthodes.

Parfois il est nécessaire de connaitre ou définir une valeur, c'est pour cela qu'il y a des accesseurs (getter/setter).
Mais cela ne doit pas être systématique, bien au contraire : on devrait pouvoir se passer des setters (se pencher sur le constructeur), et il ne faut des getter que pour ce dont on a besoin.

  • Partager sur Facebook
  • Partager sur Twitter
Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
27 novembre 2023 à 10:54:45

bonjour svp comment accéder a un attribut peotected dans une autre classe en PHP?
  • Partager sur Facebook
  • Partager sur Twitter
27 novembre 2023 à 11:12:32

@CabrelJuniorSimo Bonjour,  merci de ne pas squatter le sujet des autres pur une nouvelle question, créer votre propre sujet dans le respect des règles du forum il nous faut la description de votre problème et le code que vous avez écrit inséré sur le forum à l'aide de l'outil d'intégration de code soit le bouton code </>.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ici.

  • Partager sur Facebook
  • Partager sur Twitter