[Résolu][Basic] Private dans les variables de classe

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Xunor
NOOuvel adepte
NOOuvel adepte
Messages : 16
Inscription : 02 août 2018 11:02

[Résolu][Basic] Private dans les variables de classe

Message par Xunor »

Salut à tous
J'ai un problème avec la portée des éléments de classe.

En effet une variable Private ne devrait être accessibles que dans le module à l'intérieur duquel elles ont été définies.
Et c'est bien pratique quand on défini les classes de ne pouvoir avoir accès aux éléments directement (ça évite les bourde et les manipulations inappropriés
Mais a priori on peut faire absolument n'importe quoi avec les variables.
du genre dans la déclaration de variable de la classe Point

Code : Tout sélectionner

Private _X      As Double
Private _Y      As Double
puis modifier directement les valeurs "privées"

Code : Tout sélectionner

pt._X = 7
D'ailleurs on peut voir ceci dans l'explication de JPL à ce sujet
https://forum.openoffice.org/fr/forum/v ... hp?t=36492
Où il affiche directement la valeur :

Code : Tout sélectionner

 MsgBox a._X
Est il possible de rendre les éléments de classe réellement Privés, à quoi ça sert de déclarer des éléments de classe en privée.
Où en fait il ne s'agit pas vraiment de classes... Je ne vois pas bien la logique.

Merci pour vos éclairages ;)
Dernière modification par Xunor le 12 août 2018 09:25, modifié 2 fois.
Programmeur relativement expérimenté (on n'est jamais expert ;) )
Débutant Open Office (adieu Microsoft et ses incompatibilités)
principalement avec Apache OpenOffice 4.1.6 sous Windows 10 Famille
JPL
Membre lOOyal
Membre lOOyal
Messages : 33
Inscription : 17 mars 2012 10:16

Re: [Basic] Private dans les variables de classe

Message par JPL »

En effet, que le module soit de classe ou non, Basic (AOO comme LO) ne fait aucune distinction entre les attributs PRIVATE et PUBLIC.
Pour les variables comme pour les SUBs/FUNCTIONs/méthodes.

C'est regrettable mais c'est ainsi.

Ces attributs ne servent donc qu'à préciser au(x) programmeur(s) quelles sont les règles d'utilisation. Celles-ci ne sont cependant pas vérifiées par l'interpréteur.

JPL
Kubuntu 22.04 / LibO 7.6
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO) - Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: [Basic] Private dans les variables de classe

Message par martinbrait »

Bonjour Xunor,

Bravo,tu arrives exactement au constat regrettable de sbasic, à savoir,
aucune gestion des portées, c'est à dire, pas de programmation avancée sereine.
Il faut dès lors envisager java, ou python3 (objet).

Dans simploo (à télécharger sur source forge), tu trouveras, néanmoins des petits exemples d'organisation ou d'astuces, avec les classes, pour essayer d'isoler le moins mal possible, de la vue du programmeur, les variables de classes, afin de bien les distinguer du programmme principal.

Un travail collaboratif à ce sujet, avec toi, me semblerait très intéressant.

Bon courage !!
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Xunor
NOOuvel adepte
NOOuvel adepte
Messages : 16
Inscription : 02 août 2018 11:02

Re: [Basic] Private dans les variables de classe

Message par Xunor »

JPL a écrit :En effet, que le module soit de classe ou non, Basic (AOO comme LO) ne fait aucune distinction entre les attributs PRIVATE et PUBLIC.
Merci !
Voilà un problème qui peut être considéré comme résolu ;)
martinbrait a écrit : Un travail collaboratif à ce sujet, avec toi, me semblerait très intéressant.
Je ne vois pas bien de quel sujet tu parles :D, le passage en MP me semble plus adéquat pour m'expliquer
Programmeur relativement expérimenté (on n'est jamais expert ;) )
Débutant Open Office (adieu Microsoft et ses incompatibilités)
principalement avec Apache OpenOffice 4.1.6 sous Windows 10 Famille